A lightweight, keyboard-centric terminal player for streaming YouTube music.
Project description
๐ต MyTunes Pro (Korean)
ํ๋์ ์ธ CLI ์ ํ๋ธ ๋ฎค์ง ํ๋ ์ด์ด (v1.4.4)
ํฐ๋ฏธ๋ ํ๊ฒฝ์์ YouTube ์์
์ ๊ฒ์ํ์ฌ ๋ฃ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ํค๋ณด๋ ์ค์ฌ์ ํ๋ ์ด์ด์
๋๋ค.
ํ๊ตญ์ด ์
๋ ฅ ํ๊ฒฝ์์๋ **์ซ์ ํค(1~5)**๋ฅผ ํตํด ์ง์ฐ ์๋ ์พ์ ํ ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ
์ด ํ๋ก๊ทธ๋จ์ ํ๋ฃจ ์ข ์ผ ํฐ๋ฏธ๋์ ๋ณด๋ ๊ฐ๋ฐ์๋ค์ด ์์ ํ๋ฆ์ ๋์ง ์๊ณ ํธํ๊ฒ ์์ ์ ๋ฃ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
ํนํ **๋ชจ๋ํฐ๊ฐ ์๋(Headless) ๋ฏธ๋ PC (Debian Server)**๋ฅผ ๊ฑฐ์ค์ด๋ ์ฑ ์์ '๋ฎค์ง ์คํ ์ด์ '์ผ๋ก ํ์ฉํ๊ณ ์ ํ๋ ๊ฐ์ธ์ ์ธ ํ์์์ ์์๋์์ต๋๋ค.
๋ณต์กํ ์ค์ ์์ด, ํฐ๋ฏธ๋ ํ๋๋ง ์์ผ๋ฉด ์ด๋์๋ ๋น์ ๋ง์ ์ค๋์ค ํ๋ ์ด์ด๊ฐ ๋ฉ๋๋ค.
๐ธ Screenshots
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๊ฐ๋ ฅํ ๊ฒ์:
yt-dlp์์ง์ ์ฌ์ฉํ์ฌ ๊ด๊ณ ์๋ ๊ณ ์์ง ์ค๋์ค ์คํธ๋ฆฌ๋ฐ. - ์พ์ ํ ์กฐ์:
curses๊ธฐ๋ฐ TUI๋ก ๋น ๋ฅด๊ณ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค. - ์ฐ์ ์ฌ์: ํ ๊ณก์ด ๋๋๋ฉด ๋ฆฌ์คํธ์ ๋ค์ ๊ณก์ ์๋์ผ๋ก ์ฌ์ํฉ๋๋ค.
- ์ด์ด๋ฃ๊ธฐ: ์ค๋จ๋ ์์น๋ถํฐ ์ด์ด์ ์ฌ์ํ ์ง ์ ํํ ์ ์์ต๋๋ค.
- ํ๊ธ ์ต์ ํ: ํ๊ธ ์์ ์กฐํฉ ๋๊ธฐ ์๊ฐ ์์ด ์ฆ์ ๋ฐ์ํ๋ ์ซ์ ๋จ์ถํค ์ง์.
- ์ค๋งํธ ๊ธฐ๋ฅ: ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ฌ์ ๊ธฐ๋ก(์ต๋ 100๊ณก), ์๋ ์์ ํํฐ๋ง ๊ฒ์.
- ๋น์ฃผ์ผ: ํ๋์ ์ธ ์ฌ๋ณผ ์์ด์ฝ(โ, โ , โท)๊ณผ ๊น๋ํ ๋์์ธ.
์ด ํ๋ก๊ทธ๋จ์ ์ค๋์ค ์ฌ์์ ์ํด mpv๊ฐ ์์คํ
์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. (๊ฒ์ ์์ง yt-dlp๋ ์๋ ์ค์น๋ฉ๋๋ค.)
๐ ๋น ๋ฅธ ์ค์น (Quick Install)
ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ฆ์ ์ค์นํ์ธ์:
pip install mytunes-pro
์ค์น ํ ํฐ๋ฏธ๋ ์ด๋์๋ **mytunes**๋ฅผ ์
๋ ฅํ๋ฉด ์คํ๋ฉ๋๋ค!
๐ ์์ธ ์ค์น ๊ฐ์ด๋
macOS
Homebrew๋ฅผ ํตํด ํ์ ๋๊ตฌ๋ฅผ ์ค์นํ๊ณ ์๋ ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅด์ธ์.
-
ํ์ ๋๊ตฌ ์ค์น:
brew install mpv yt-dlp python3
-
ํ๋ก๊ทธ๋จ ๋ค์ด๋ก๋ ๋ฐ ์ค์ :
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes python3 -m venv venv venv/bin/pip install -r requirements.txt
-
๋จ์ถ์ถ ์์ด์ฝ ๋ง๋ค๊ธฐ (zsh ๊ธฐ์ค):
echo "alias mp='~/mytunes/venv/bin/python3 ~/mytunes/mytune.py'" >> ~/.zshrc source ~/.zshrc
-
์คํ: ํฐ๋ฏธ๋ ์ด๋์๋ **
mp**๋ฅผ ์ ๋ ฅํ์ธ์!
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install mpv python3 python3-pip python3-venv
Windows (WSL) - ์ด๋ณด์์ฉ ์์ ์ ๋ณต ๊ฐ์ด๋
Windows ์ฌ์ฉ์๋ผ๋ฉด ์ด ๊ฐ์ด๋๋ง ๋ฐ๋ผํ์ธ์. (๋ณต์ฌ & ๋ถ์ฌ๋ฃ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค!)
1๋จ๊ณ: WSL ๋ฐ Debian ์ค์น
Windowsํค +X-> Windows PowerShell (๊ด๋ฆฌ์) ์คํ.- ์๋ ๋ช
๋ น์ด ๋ณต์ฌ & ๋ถ์ฌ๋ฃ๊ธฐ ํ ์ํฐ:
wsl --install -d Debian
- ์ค์น ์๋ฃ ๋ฉ์์ง๊ฐ ๋จ๋ฉด ์ฌ๋ถํ ํฉ๋๋ค.
2๋จ๊ณ: ์๋์ฐ ํฐ๋ฏธ๋ ์ค์ (ํ์) ๊ธฐ๋ณธ ํฐ๋ฏธ๋๋ณด๋ค ํจ์ฌ ํธ๋ฆฌํ Windows Terminal ์ฌ์ฉ์ ๊ฐ๋ ฅ ์ถ์ฒํฉ๋๋ค.
- ์ค์น ๋ฐ ์คํ:
Win+X-> ํฐ๋ฏธ๋ ์คํ (์๋ค๋ฉด Microsoft Store์์ ์ค์น).- ์์ด์ฝ ์ฐํด๋ฆญ -> ์์ ํ์์ค์ ๊ณ ์ .
- ๊ธฐ๋ณธ๊ฐ ์ค์ (ํธ์์ฑ UP):
- ํฐ๋ฏธ๋ ์ค์ (
Ctrl+,) -> [์์] ํญ -> ๊ธฐ๋ณธ ํ๋กํ์ Debian์ผ๋ก ๋ณ๊ฒฝ ํ ์ ์ฅ. - ์ด์ ํฐ๋ฏธ๋์ ์ผ๋ฉด Debian์ด ๋ฐ๋ก ์ด๋ฆฝ๋๋ค!
- ํฐ๋ฏธ๋ ์ค์ (
- ํฐํธ ์ค์ (์ ํ):
- ํ๋ฉด์ด ๊นจ์ง๋ค๋ฉด D2Coding ํฐํธ ์ค์น๋ฅผ ๊ถ์ฅํฉ๋๋ค.
- ์ค์ -> Debian ํ๋กํ -> [๋ชจ์] -> ๊ธ๊ผด์์ D2Coding ์ ํ.
3๋จ๊ณ: ๊ณ์ ์ค์ ๋ฐ ํ์ ๋๊ตฌ ์ค์น
- Debian ์ฐฝ์ด ์ด๋ฆฌ๋ฉด User Name(์๋ฌธ), Password ์ค์ .
- ์ค์ ์๋ฃ ํ, ์๋ ๋ฐ์ค ๋ด์ฉ์ ํ ๋ฒ์ ๋ณต์ฌํด์ ํฐ๋ฏธ๋์ ๋ถ์ฌ๋ฃ๊ณ ์ํฐ! (๋น๋ฐ๋ฒํธ ์
๋ ฅ)
sudo apt update && sudo apt install git curl wget unzip mpv python3 python3-venv -y
4๋จ๊ณ: MyTunes ์ค์น ๋ฐ ์คํ ์ด์ ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ก๋ํ๊ณ ์คํํฉ๋๋ค. ์๋ ๋ด์ฉ์ ํ ์ค์ฉ ์ ๋ ฅํ์ธ์.
-
์ค์นํ๊ธฐ:
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes python3 -m venv venv venv/bin/pip install -r requirements.txt
-
๋จ์ถ ์์ด์ฝ ๋ง๋ค๊ธฐ (ํ ๋ฒ๋ง ์คํ):
echo "alias mp='~/mytunes/venv/bin/python3 ~/mytunes/mytune.py'" >> ~/.bashrc source ~/.bashrc
-
์คํ: ์ฐธ ์ฝ์ฃ ? ์ด์ ์ธ์ ๋ ์ง
mp์ ๋ ฅํ๋ฉด ์คํ๋ฉ๋๋ค!mp
-
์ต์ ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ: ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ๋ฒ๊ทธ ์์ ์ด ์์ ๋ ์๋ ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
cd ~/mytunes git pull
โจ๏ธ ์กฐ์ ๋ฐฉ๋ฒ (Controls)
MyTunes Pro๋ ํค๋ณด๋๋ง์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ์ดํฉ๋๋ค.
ํ๊ธ ์
๋ ฅ ์ํ์์๋ ๋๊น ์๋ ์กฐ์์ ์ํด ์ซ์ ๋จ์ถํค ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
(ํ๊ธ ์
๋ ฅ ์ค์๋ ์ํ๋ฒณ ๋จ์ถํค๊ฐ ์ฆ์ ์ธ์๋์ง ์์ ์ ์์ผ๋ฏ๋ก, ์ซ์ํค๋ Enter๋ฅผ ํ์ฉํ์ธ์.)
โก๏ธ ์ฆ์ ๋ฐ์ ๋จ์ถํค (์ซ์ํค)
ํ์ ์ ํ ์์ด ์ธ์ ๋ ๋๋ฅด๋ฉด ์ฆ์ ์คํ๋ฉ๋๋ค.
| ํค | ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|---|
1 |
๊ฒ์ (Search) | ์์
๊ฒ์์ฐฝ ์ด๊ธฐ (๋จ์ถํค S์ ๋์ผ) |
2 |
์ฆ๊ฒจ์ฐพ๊ธฐ (Fav) | ์ ์ฅ๋ ์ฆ๊ฒจ์ฐพ๊ธฐ ๋ชฉ๋ก ๋ณด๊ธฐ (๋จ์ถํค F์ ๋์ผ) |
3 |
๊ธฐ๋ก (History) | ์ต๊ทผ ์ฌ์ํ 100๊ณก ๋ณด๊ธฐ (๋จ์ถํค R์ ๋์ผ) |
4 |
๋ฉ์ธ (Main) | ๋ฉ์ธ ํ๋ฉด์ผ๋ก ๋์๊ฐ๊ธฐ (๋จ์ถํค M์ ๋์ผ) |
5 |
์ถ๊ฐ/์ญ์ | ์ ํํ ๊ณก ์ฆ๊ฒจ์ฐพ๊ธฐ ํ ๊ธ (๋จ์ถํค A์ ๋์ผ) |
+ |
๋ณผ๋ฅจ UP | ๋ณผ๋ฅจ +5% (๋จ์ถํค =์ ๋์ผ) |
- |
๋ณผ๋ฅจ DOWN | ๋ณผ๋ฅจ -5% (๋จ์ถํค _์ ๋์ผ) |
6 |
๋ค๋ก๊ฐ๊ธฐ | ์ด์ ํ๋ฉด์ผ๋ก ์ด๋ (๋จ์ถํค Q, H์ ๋์ผ) |
ESC |
๋ฐฐ๊ฒฝ์ฌ์ | ์์ ๋์ง ์๊ณ ๋๊ฐ๊ธฐ (๋ฐฑ๊ทธ๋ผ์ด๋ ์ฌ์) |
๐งญ ๊ธฐ๋ณธ ํ์
| ํค | ๋์ |
|---|---|
โ / โ / k / j |
๋ฆฌ์คํธ ์/์๋ ์ด๋ (Vim ํค ์ง์) |
Enter / l |
์ ํ / ์ฌ์ (ํ๊ธ ใ
ฃ๋ ์ง์) |
Space |
์ฌ์ / ์ผ์์ ์ง (Play/Pause) |
- / + |
๋ณผ๋ฅจ ์กฐ์ (- / +) |
, / . |
10์ด ๋ค๋ก / ์์ผ๋ก ๊ฐ๊ธฐ |
< / > |
30์ด ๋ค๋ก / ์์ผ๋ก ๊ฐ๊ธฐ (Shift) |
Backspace / h / q |
๋ค๋ก ๊ฐ๊ธฐ / ๊ฒ์์ด ์ง์ฐ๊ธฐ |
/ |
๊ฒ์ (Vim Style) |
๐ ๋ฐ์ดํฐ ์ ์ฅ
- ์ฆ๊ฒจ์ฐพ๊ธฐ์ ์ฌ์ ๊ธฐ๋ก์ ํ ๋๋ ํ ๋ฆฌ์
~/.pymusic_data.jsonํ์ผ์ ์๊ตฌ ์ ์ฅ๋ฉ๋๋ค. - ํ๋ก๊ทธ๋จ ์ข ๋ฃ ํ ๋ค์ ์คํํด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋ฉ๋๋ค.
๐ต MyTunes Pro (English)
Modern CLI YouTube Music Player (v1.4.4)
A lightweight, keyboard-centric terminal player for streaming YouTube music.
Designed for speed and efficiency, with optimized controls for international keyboard imports.
๐ก Preface
This project was created to give developers a seamless way to enjoy music without leaving their terminal environment.
It basically started from a personal need to turn a headless mini-PC running Debian Server into a dedicated living room music station (with no monitor or GUI).
Just bring your terminal, and you have a full-featured audio player.
โจ Key Features
- Powerful Search: High-quality audio streaming via
yt-dlp. - Pagination: Explicit [ Load Next 20... ] button to load more results.
- Sequential Play: Automatically plays the next song in the list.
- Smart Resume: Option to resume playback from where you left off.
- Fast TUI: Responsive
cursesinterface. - Smart Shortcuts: Instant number keys (1-5) for quick navigation.
- Visuals: Clean aesthetic with system-style glyphs (โ, โ , โท).
๐ Prerequisites
macOS
Follow these steps to set up everything on your Mac.
-
Install Prerequisites:
brew install mpv yt-dlp python3
-
Clone & Setup:
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes python3 -m venv venv venv/bin/pip install -r requirements.txt
-
Create Alias (zsh):
echo "alias mp='~/mytunes/venv/bin/python3 ~/mytunes/mytune.py'" >> ~/.zshrc source ~/.zshrc
-
Run: Just type
mpanywhere!
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install mpv python3 python3-pip python3-venv
Windows (WSL) - Complete Beginner's Guide
Follow these steps to install everything from scratch. Just copy & paste!
Step 1: Install WSL & Debian
- Press
Windows+X-> Select PowerShell (Admin). - Copy & paste this command and Enter:
wsl --install -d Debian
- Restart computer.
Step 2: Windows Terminal Setup (Recommended) Use Windows Terminal for the best experience.
- Install & Run:
- Press
Win+X-> Open Terminal (Or install from Microsoft Store). - Right-click icon -> Pin to Taskbar.
- Press
- Set Default Profile:
- Open Settings (
Ctrl+,) -> Startup -> Change Default profile to Debian. - Save. Now Debian opens automatically when you launch Terminal!
- Open Settings (
- Font Setup (Optional):
- If icons look weird, install a Nerd Font (e.g., Cascadia Code NF).
- Go to Settings -> Debian -> Appearance -> Font face.
Step 3: Account & Tool Setup
- After restart (or in new Debian tab), set User Name and Password.
- Copy & paste this block to install tools (Type password when asked):
sudo apt update && sudo apt install git curl wget unzip mpv python3 python3-venv -y
Step 4: Download & Install Run these commands one by one:
-
Install App:
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes python3 -m venv venv venv/bin/pip install -r requirements.txt
-
Create Shortcut (One-time setup):
echo "alias mp='~/mytunes/venv/bin/python3 ~/mytunes/mytune.py'" >> ~/.bashrc source ~/.bashrc
-
Run: Just type
mpanytime!mp
-
How to Update: You can easily update to the latest version with new features or bug fixes.
cd ~/mytunes git pull
โจ๏ธ English Controls
โก๏ธ Instant Shortcuts (Number Keys)
Works instantly even with non-English keyboard layouts.
| Key | Function | Description |
|---|---|---|
1 |
Search | Open search bar (Same as S) |
2 |
Favs | View favorites list (Same as F) |
3 |
Hist | View history (Same as R) |
4 |
Main | Go to Main Menu (Same as M) |
5 |
Add/Del | Toggle Favorite (Same as A) |
+ |
Vol Up | Volume +5% (Same as =) |
- |
Vol Down | Volume -5% (Same as _) |
6 |
Back | Go back (Same as Q, H) |
ESC |
Bg Play | Exit app but keep music playing |
๐งญ Navigation
| Key | Action |
|---|---|
โ / โ / k / j |
Move selection (Vim style supported) |
Enter / l |
Select / Play (Includes L) |
Space |
Play / Pause |
Space |
Play / Pause |
- / + |
Volume (- / +) |
, / . |
Seek -10s / +10s |
< / > |
Seek -30s / +30s (Shift) |
Backspace / h / q |
Go back |
/ |
Search (Vim Style) |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mytunes_pro-1.4.4.tar.gz.
File metadata
- Download URL: mytunes_pro-1.4.4.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77deedcb75ea1875df789a7a20dfbbfbf431c1e6dbecae3e0ec0a6ee665073c5
|
|
| MD5 |
7ef76595d620a4429f8f42e1828353c8
|
|
| BLAKE2b-256 |
6ddecb592f4eb0e982ff6bdc0fa8e95cee6edcb941a17591d1307594a3494a2b
|
Provenance
The following attestation bundles were made for mytunes_pro-1.4.4.tar.gz:
Publisher:
pypi.yml on postgresql-co-kr/mytunes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mytunes_pro-1.4.4.tar.gz -
Subject digest:
77deedcb75ea1875df789a7a20dfbbfbf431c1e6dbecae3e0ec0a6ee665073c5 - Sigstore transparency entry: 849881598
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@3bbed916fef4cd8c864c80f34af02ba2df80aeff -
Branch / Tag:
refs/tags/v1.4.4 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@3bbed916fef4cd8c864c80f34af02ba2df80aeff -
Trigger Event:
push
-
Statement type:
File details
Details for the file mytunes_pro-1.4.4-py3-none-any.whl.
File metadata
- Download URL: mytunes_pro-1.4.4-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e22f320291e25cf47b76bb797642c35d59da6648ad94a5a836ebb73a115c795
|
|
| MD5 |
0d8fd712c7f256fbba3b55b587255866
|
|
| BLAKE2b-256 |
e05464a0c65b093b057c461b07b59131e6f1a67744482c7ec5953704cab8c5d2
|
Provenance
The following attestation bundles were made for mytunes_pro-1.4.4-py3-none-any.whl:
Publisher:
pypi.yml on postgresql-co-kr/mytunes
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mytunes_pro-1.4.4-py3-none-any.whl -
Subject digest:
2e22f320291e25cf47b76bb797642c35d59da6648ad94a5a836ebb73a115c795 - Sigstore transparency entry: 849881611
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@3bbed916fef4cd8c864c80f34af02ba2df80aeff -
Branch / Tag:
refs/tags/v1.4.4 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@3bbed916fef4cd8c864c80f34af02ba2df80aeff -
Trigger Event:
push
-
Statement type: