A lightweight, keyboard-centric terminal player for streaming YouTube music.
Project description
๐ต MyTunes Pro (Korean)
ํ๋์ ์ธ CLI ์ ํ๋ธ ๋ฎค์ง ํ๋ ์ด์ด (v1.5.1)
ํฐ๋ฏธ๋ ํ๊ฒฝ์์ YouTube ์์
์ ๊ฒ์ํ์ฌ ๋ฃ๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ํค๋ณด๋ ์ค์ฌ์ ํ๋ ์ด์ด์
๋๋ค.
ํ๊ตญ์ด ์
๋ ฅ ํ๊ฒฝ์์๋ **์ซ์ ํค(1~5)**๋ฅผ ํตํด ์ง์ฐ ์๋ ์พ์ ํ ์กฐ์์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ก ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ
์ด ํ๋ก๊ทธ๋จ์ ํ๋ฃจ ์ข ์ผ ํฐ๋ฏธ๋์ ๋ณด๋ ๊ฐ๋ฐ์๋ค์ด ์์ ํ๋ฆ์ ๋์ง ์๊ณ ํธํ๊ฒ ์์ ์ ๋ฃ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
ํนํ **๋ชจ๋ํฐ๊ฐ ์๋(Headless) ๋ฏธ๋ PC (Debian Server)**๋ฅผ ๊ฑฐ์ค์ด๋ ์ฑ ์์ '๋ฎค์ง ์คํ ์ด์ '์ผ๋ก ํ์ฉํ๊ณ ์ ํ๋ ๊ฐ์ธ์ ์ธ ํ์์์ ์์๋์์ต๋๋ค.
๋ณต์กํ ์ค์ ์์ด, ํฐ๋ฏธ๋ ํ๋๋ง ์์ผ๋ฉด ์ด๋์๋ ๋น์ ๋ง์ ์ค๋์ค ํ๋ ์ด์ด๊ฐ ๋ฉ๋๋ค.
๐ธ Screenshots
โจ ์ฃผ์ ๊ธฐ๋ฅ
- ๊ฐ๋ ฅํ ๊ฒ์:
yt-dlp์์ง์ ์ฌ์ฉํ์ฌ ๊ด๊ณ ์๋ ๊ณ ์์ง ์ค๋์ค ์คํธ๋ฆฌ๋ฐ. - ์พ์ ํ ์กฐ์:
curses๊ธฐ๋ฐ TUI๋ก ๋น ๋ฅด๊ณ ์ง๊ด์ ์ธ ์ธํฐํ์ด์ค. - ์ฐ์ ์ฌ์: ํ ๊ณก์ด ๋๋๋ฉด ๋ฆฌ์คํธ์ ๋ค์ ๊ณก์ ์๋์ผ๋ก ์ฌ์ํฉ๋๋ค.
- ์ด์ด๋ฃ๊ธฐ: ์ค๋จ๋ ์์น๋ถํฐ ์ด์ด์ ์ฌ์ํ ์ง ์ ํํ ์ ์์ต๋๋ค.
- ํ๊ธ ์ต์ ํ: ํ๊ธ ์์ ์กฐํฉ ๋๊ธฐ ์๊ฐ ์์ด ์ฆ์ ๋ฐ์ํ๋ ์ซ์ ๋จ์ถํค ์ง์.
- ์ค๋งํธ ๊ธฐ๋ฅ: ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ฌ์ ๊ธฐ๋ก(์ต๋ 100๊ณก), ์๋ ์์ ํํฐ๋ง ๊ฒ์.
- ๋น์ฃผ์ผ: ํ๋์ ์ธ ์ฌ๋ณผ ์์ด์ฝ(โ, โ , โท)๊ณผ ๊น๋ํ ๋์์ธ.
์ด ํ๋ก๊ทธ๋จ์ ์ค๋์ค ์ฌ์์ ์ํด mpv๊ฐ ์์คํ
์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
๐ ๋น ๋ฅธ ์ค์น (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)
- WSL ์ค์น:
wsl --install -d Debian(PowerShell ๊ด๋ฆฌ์ ๊ถํ) - ํ์ ๋๊ตฌ:
sudo apt update && sudo apt install mpv -y
๐งโ๐ป ๊ฐ๋ฐ์์ฉ ์๋ ์ค์น (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.1)
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 (โ, โ , โท).
This app requires mpv to be installed on your system.
๐ 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 (WSL)
- Install WSL:
wsl --install -d Debian(PowerShell Admin) - Install mpv:
sudo apt update && sudo apt install mpv -y
๐งโ๐ป 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.1.tar.gz.
File metadata
- Download URL: mytunes_pro-1.5.1.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b62c5c964a806fa6b1f677760e9b525334d6e0fc1cea796f7f0093b4ed58038
|
|
| MD5 |
12af4f2e11d3051d358f47ad1e3ed920
|
|
| BLAKE2b-256 |
81e41af1c4e7e146c19fb26cdbbd360275983ca8aab7e73b072cc5099d671d9b
|
Provenance
The following attestation bundles were made for mytunes_pro-1.5.1.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.1.tar.gz -
Subject digest:
0b62c5c964a806fa6b1f677760e9b525334d6e0fc1cea796f7f0093b4ed58038 - Sigstore transparency entry: 849920989
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@568010745f264a01c8c73d3a434b91da14bc5ecb -
Branch / Tag:
refs/tags/v1.5.1 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@568010745f264a01c8c73d3a434b91da14bc5ecb -
Trigger Event:
push
-
Statement type:
File details
Details for the file mytunes_pro-1.5.1-py3-none-any.whl.
File metadata
- Download URL: mytunes_pro-1.5.1-py3-none-any.whl
- Upload date:
- Size: 19.0 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 |
652871ce23dce0166187490fcc59e910f3c200a29182c96b24bbeda9a15af345
|
|
| MD5 |
58121c046c31323441b500efd2c20588
|
|
| BLAKE2b-256 |
5ca22e577dc0618e2b72d5fef59d39d76d95cb4844ccac23937f1c3b7dd41118
|
Provenance
The following attestation bundles were made for mytunes_pro-1.5.1-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.1-py3-none-any.whl -
Subject digest:
652871ce23dce0166187490fcc59e910f3c200a29182c96b24bbeda9a15af345 - Sigstore transparency entry: 849920996
- Sigstore integration time:
-
Permalink:
postgresql-co-kr/mytunes@568010745f264a01c8c73d3a434b91da14bc5ecb -
Branch / Tag:
refs/tags/v1.5.1 - Owner: https://github.com/postgresql-co-kr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@568010745f264a01c8c73d3a434b91da14bc5ecb -
Trigger Event:
push
-
Statement type: