A lightweight, keyboard-centric terminal player for streaming YouTube music.
Project description
๐ต MyTunes Pro (Korean)
ํ๋์ ์ธ CLI ์ ํ๋ธ ๋ฎค์ง ํ๋ ์ด์ด (v1.5.2)
ํฐ๋ฏธ๋ ํ๊ฒฝ์์ YouTube ์์
์ ๊ฒ์ํ์ฌ ๋ฃ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ํค๋ณด๋ ์ค์ฌ์ ํ๋ ์ด์ด์
๋๋ค.
ํ๊ตญ์ด ์
๋ ฅ ํ๊ฒฝ์์๋ **์ซ์ ํค(1~5)**๋ฅผ ํตํด ์ง์ฐ ์๋ ์พ์ ํ ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ
์ด ํ๋ก๊ทธ๋จ์ ํ๋ฃจ ์ข ์ผ ํฐ๋ฏธ๋์ ๋ณด๋ ๊ฐ๋ฐ์๋ค์ด ์์ ํ๋ฆ์ ๋์ง ์๊ณ ํธํ๊ฒ ์์ ์ ๋ฃ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
ํนํ **๋ชจ๋ํฐ๊ฐ ์๋(Headless) ๋ฏธ๋ PC (Debian Server)**๋ฅผ ๊ฑฐ์ค์ด๋ ์ฑ ์์ '๋ฎค์ง ์คํ ์ด์ '์ผ๋ก ํ์ฉํ๊ณ ์ ํ๋ ๊ฐ์ธ์ ์ธ ํ์์์ ์์๋์์ต๋๋ค.
๋ณต์กํ ์ค์ ์์ด, ํฐ๋ฏธ๋ ํ๋๋ง ์์ผ๋ฉด ์ด๋์๋ ๋น์ ๋ง์ ์ค๋์ค ํ๋ ์ด์ด๊ฐ ๋ฉ๋๋ค.
๐ธ Screenshots
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๊ฐ๋ ฅํ ๊ฒ์:
yt-dlp์์ง์ ์ฌ์ฉํ์ฌ ๊ด๊ณ ์๋ ๊ณ ์์ง ์ค๋์ค ์คํธ๋ฆฌ๋ฐ. - ์พ์ ํ ์กฐ์:
curses๊ธฐ๋ฐ TUI๋ก ๋น ๋ฅด๊ณ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค. - ์ฐ์ ์ฌ์: ํ ๊ณก์ด ๋๋๋ฉด ๋ฆฌ์คํธ์ ๋ค์ ๊ณก์ ์๋์ผ๋ก ์ฌ์ํฉ๋๋ค.
- ์ด์ด๋ฃ๊ธฐ: ์ค๋จ๋ ์์น๋ถํฐ ์ด์ด์ ์ฌ์ํ ์ง ์ ํํ ์ ์์ต๋๋ค.
- ํ๊ธ ์ต์ ํ: ํ๊ธ ์์ ์กฐํฉ ๋๊ธฐ ์๊ฐ ์์ด ์ฆ์ ๋ฐ์ํ๋ ์ซ์ ๋จ์ถํค ์ง์.
- ์ค๋งํธ ๊ธฐ๋ฅ: ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ฌ์ ๊ธฐ๋ก(์ต๋ 100๊ณก), ์๋ ์์ ํํฐ๋ง ๊ฒ์.
- ๋น์ฃผ์ผ: ํ๋์ ์ธ ์ฌ๋ณผ ์์ด์ฝ(โ, โ , โท)๊ณผ ๊น๋ํ ๋์์ธ.
๐ป ๊ตฌ๋ ํ๊ฒฝ ์๋ด
MyTunes Pro๋ ํฐ๋ฏธ๋(CLI) ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค. ๊ฐ ์ด์์ฒด์ ์์ ๊ณ ์์ง ์ค๋์ค๋ฅผ ์ฌ์ํ๊ธฐ ์ํด **mpv**๋ผ๋ ์์ง์ ์ฌ์ฉํฉ๋๋ค.
- macOS: ํฐ๋ฏธ๋(iTerm2, Warp ์ถ์ฒ)์์ ์ฆ์ ์คํ ๊ฐ๋ฅ.
- Linux: ์ฐ๋ถํฌ, ๋ฐ๋น์ ๋ฑ ๋ชจ๋ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ ์ง์.
- Windows: WSL(Windows Subsystem for Linux) ํ๊ฒฝ์ด ํ์ํฉ๋๋ค. (์๋ ๊ฐ์ด๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.)
๐ ๋น ๋ฅธ ์ค์น (Quick Install)
์ต์ macOS/Linux ์์คํ
(PEP 668)์์๋ pipx ์ฌ์ฉ์ ๊ฐ๋ ฅํ ๊ถ์ฅํฉ๋๋ค.
1. ์ถ์ฒ ๋ฐฉ์ (pipx)
์๋์ผ๋ก ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์ ๋ง๋ค๊ณ ๋ช ๋ น์ด๋ฅผ ๋ฑ๋กํด์ค๋๋ค.
brew install pipx # macOS (์ค์น ์ ๋ ๊ฒฝ์ฐ)
pipx install mytunes-pro
pipx ensurepath # ํฐ๋ฏธ๋ ๋ช
๋ น์ด ๊ฒฝ๋ก ๋ฑ๋ก (์ต์ด 1ํ ํ์)
2. ์ผ๋ฐ pip ๋ฐฉ์
๋ง์ฝ externally-managed-environment ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์๋ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ธ์:
pip install mytunes-pro --break-system-packages
์ค์น ํ ํฐ๋ฏธ๋ ์ด๋์๋ **mp**๋ฅผ ์
๋ ฅํ๋ฉด ์คํ๋ฉ๋๋ค!
๐ ์ต์ ๋ฒ์ ์ ๋ฐ์ดํธ (Update)
์ด๋ฏธ ์ค์น๋์ด ์๋ค๋ฉด ์๋ ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ์ต์ ๊ธฐ๋ฅ์ ๋ฐ์ํ์ธ์:
pipx upgrade mytunes-pro
๐ ํ๊ฒฝ๋ณ ์๊ตฌ์ฌํญ (Prerequisites)
pip install ์ดํ ์คํ์ด ์ ๋๋ค๋ฉด, ๊ฐ ์ด์์ฒด์ ์ ๋ง๋ ์ค๋์ค ์์ง(mpv)์ ์ค์นํด ์ฃผ์ธ์.
macOS
brew install mpv
Linux (Ubuntu/Debian)
sudo apt update && sudo apt install mpv
Windows (์ด๋ณด์์ฉ WSL ๊ฐ์ด๋)
Windows ํ๊ฒฝ์ด ์ต์ํ ์ผ๋ฐ์ธ๋ ๋ฐ๋ผํ ์ ์๋ ์์ ์ ๋ณต ๊ฐ์ด๋์ ๋๋ค.
โ WSL์ด๋?
์๋์ฐ ์์์ ๋ฆฌ๋ ์ค(๊ฐ๋ ฅํ ๊ฐ๋ฐ ๋๊ตฌ๋ค)๋ฅผ ๋ง์น ์ผ๋ฐ ์ฑ์ฒ๋ผ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ๋ง์ดํฌ๋ก์ํํธ์ ๊ณต์ ๊ธฐ๋ฅ์ ๋๋ค. MyTunes๋ ์ด ํ๊ฒฝ์์ ๋ฆฌ๋ ์ค์ ๊ฐ๋ ฅํ ์ค๋์ค ์์ง์ ํ์ฉํด ์๋ํฉ๋๋ค.
-
WSL ์ค์นํ๊ธฐ:
์์๋ฒํผ ์ฐํด๋ฆญ ->ํฐ๋ฏธ๋(๊ด๋ฆฌ์)ํน์PowerShell(๊ด๋ฆฌ์)์คํ.- ์๋ ๋ช
๋ น์ด๋ฅผ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ๊ณ ์ํฐ!
wsl --install -d Debian
- ์ค์น๊ฐ ๋๋๋ฉด ์ปดํจํฐ๋ฅผ ๋ค์ ์์ํ์ธ์.
-
๊ธฐ๋ณธ ์ค์ :
- ์ฌ๋ถํ
ํ
๋ฐ๋น์(Debian)์ฐฝ์ด ์๋์ผ๋ก ๋จ๋ฉด, ์ฌ์ฉํ ์์ด๋(์๋ฌธ)์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ํ์ธ์.
- ์ฌ๋ถํ
ํ
-
ํ์ ๋๊ตฌ ์ค์น:
- ๋ฐ๋น์ ์ฐฝ์์ ์๋ ๋ช
๋ น์ด๋ฅผ ํ ๋ฒ์ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ์ผ์ธ์:
sudo apt update && sudo apt install mpv python3-pip pipx -y
- ๋ฐ๋น์ ์ฐฝ์์ ์๋ ๋ช
๋ น์ด๋ฅผ ํ ๋ฒ์ ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ์ผ์ธ์:
-
MyTunes ์ค์น:
- ์ด์ ์
๋น ๋ฅธ ์ค์น์น์ ์pipx install๊ณผ์ ์ ๊ทธ๋๋ก ๋ฐ๋ผํ๋ฉด ๋!
- ์ด์ ์
๐งโ๐ป ๊ฐ๋ฐ์์ฉ ์๋ ์ค์น (Manual Installation)
์ง์ ์์ค๋ฅผ ์์ ํ๊ฑฐ๋ ๊ฐ๋ฐ ๋ฒ์ ์ ์ฌ์ฉํ๋ ค๋ฉด ์๋ ๊ณผ์ ์ ๋ฐ๋ฅด์ธ์.
-
์ ์ฅ์ ํด๋ก :
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes
-
๊ฐ์ํ๊ฒฝ ์ค์ :
python3 -m venv venv source venv/bin/activate # macOS/Linux pip install -r requirements.txt
-
์คํ:
python3 mytune.py -
์ ๋ฐ์ดํธ:
git pull
โจ๏ธ ์กฐ์ ๋ฐฉ๋ฒ (Controls)
MyTunes Pro๋ ํค๋ณด๋๋ง์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ์ ์ดํฉ๋๋ค.
ํ๊ธ ์
๋ ฅ ์ํ์์๋ ๋๊น ์๋ ์กฐ์์ ์ํด ์ซ์ ๋จ์ถํค ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.
โก๏ธ ์ฆ์ ๋ฐ์ ๋จ์ถํค (์ซ์ํค)
ํ์ ์ ํ ์์ด ์ธ์ ๋ ๋๋ฅด๋ฉด ์ฆ์ ์คํ๋ฉ๋๋ค.
| ํค | ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|---|
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.5.2)
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.
๐ป Environment Support
MyTunes Pro is a Terminal-native application. It uses the mpv engine for high-quality audio playback.
- macOS: Runs natively in Terminal (iTerm2, Warp recommended).
- Linux: Supports all distributions (Ubuntu, Debian, etc.).
- Windows: Requires WSL (Windows Subsystem for Linux). See the guide below.
๐ Quick Start
On modern macOS/Linux systems (PEP 668), using pipx is highly recommended.
1. Recommended (pipx)
Automatically manages virtual environments and global paths.
brew install pipx # macOS (if not installed)
pipx install mytunes-pro
pipx ensurepath # Registers command paths (required once)
2. Standard pip
If you encounter an externally-managed-environment error, use this flag:
pip install mytunes-pro --break-system-packages
Run simply by typing mp in your terminal!
๐ How to Update
If already installed, update to the latest version with one command:
pipx upgrade mytunes-pro
๐ Prerequisites
If the command fails, please ensure the mpv audio engine is installed.
macOS
brew install mpv
Linux (Ubuntu/Debian)
sudo apt update && sudo apt install mpv
Windows (Beginner's WSL Guide)
A step-by-step guide for Windows users to get started with CLI tools.
โ What is WSL?
It stands for "Windows Subsystem for Linux". It's an official Microsoft feature that lets you run Linux powerful tools directly inside Windows like a regular app.
-
Install WSL:
- Right-click
Start-> SelectTerminal (Admin)orPowerShell (Admin). - Paste this command and hit Enter:
wsl --install -d Debian
- Restart your computer after installation.
- Right-click
-
Basic Setup:
- After restart, the
Debianwindow will pop up. Choose your username and password.
- After restart, the
-
Install Core Tools:
- Inside the Debian window, run:
sudo apt update && sudo apt install mpv python3-pip pipx -y
- Inside the Debian window, run:
-
Install MyTunes:
- Follow the
Quick Startsection above inside the Debian window. Done!
- Follow the
๐งโ๐ป Manual Installation (For Developers)
-
Clone Repository:
git clone https://github.com/postgresql-co-kr/mytunes.git cd mytunes
-
Virtual Environment:
python3 -m venv venv source venv/bin/activate # macOS/Linux pip install -r requirements.txt
-
Run:
python3 mytune.py -
How to Update:
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 |
- / + |
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.5.2.tar.gz.
File metadata
- Download URL: mytunes_pro-1.5.2.tar.gz
- Upload date:
- Size: 24.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54f8a1392d4959ba557331ed191352b839558d79da3226381652bda8c62fcaa3
|
|
| MD5 |
c52535eb8269eb1f2456d101befebaa9
|
|
| BLAKE2b-256 |
2add11cfa75210f40bc44edd5ab43cf8a131dd4cdbad7068ce14e2d213a43b63
|
Provenance
The following attestation bundles were made for mytunes_pro-1.5.2.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.5.2.tar.gz -
Subject digest:
54f8a1392d4959ba557331ed191352b839558d79da3226381652bda8c62fcaa3 - Sigstore transparency entry: 849929720
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@d331d61db558e2623b3f166a53058aae7152c6f0 -
Branch / Tag:
refs/tags/v1.5.2 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@d331d61db558e2623b3f166a53058aae7152c6f0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mytunes_pro-1.5.2-py3-none-any.whl.
File metadata
- Download URL: mytunes_pro-1.5.2-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 |
99b1c5952a9656332a07432ffde04f02234a92c8b215e2291e68b6387d87cf71
|
|
| MD5 |
f748a54bc09df4822cc4cc84364c29f6
|
|
| BLAKE2b-256 |
c209950d1b23790907674d8705d9ff2aae1f0a3d1a065f63cefd700c47e23526
|
Provenance
The following attestation bundles were made for mytunes_pro-1.5.2-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.5.2-py3-none-any.whl -
Subject digest:
99b1c5952a9656332a07432ffde04f02234a92c8b215e2291e68b6387d87cf71 - Sigstore transparency entry: 849929721
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@d331d61db558e2623b3f166a53058aae7152c6f0 -
Branch / Tag:
refs/tags/v1.5.2 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@d331d61db558e2623b3f166a53058aae7152c6f0 -
Trigger Event:
push
-
Statement type: