Skip to main content

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)**๋ฅผ ๊ฑฐ์‹ค์ด๋‚˜ ์ฑ…์ƒ์˜ '๋ฎค์ง ์Šคํ…Œ์ด์…˜'์œผ๋กœ ํ™œ์šฉํ•˜๊ณ ์ž ํ–ˆ๋˜ ๊ฐœ์ธ์ ์ธ ํ•„์š”์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ์„ค์ • ์—†์ด, ํ„ฐ๋ฏธ๋„ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ์–ด๋””์„œ๋“  ๋‹น์‹ ๋งŒ์˜ ์˜ค๋””์˜ค ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

Python License

๐Ÿ“ธ Screenshots

Main Search
Play List

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ๊ฐ•๋ ฅํ•œ ๊ฒ€์ƒ‰: 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)

  1. WSL ์„ค์น˜: wsl --install -d Debian (PowerShell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ)
  2. ํ•„์ˆ˜ ๋„๊ตฌ: sudo apt update && sudo apt install mpv -y

๐Ÿง‘โ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž์šฉ ์ˆ˜๋™ ์„ค์น˜ (Manual Installation)

์ง์ ‘ ์†Œ์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ๊ณผ์ •์„ ๋”ฐ๋ฅด์„ธ์š”.

  1. ์ €์žฅ์†Œ ํด๋ก :

    git clone https://github.com/postgresql-co-kr/mytunes.git
    cd mytunes
    
  2. ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •:

    python3 -m venv venv
    source venv/bin/activate  # macOS/Linux
    pip install -r requirements.txt
    
  3. ์‹คํ–‰:

    python3 mytune.py
    
  4. ์—…๋ฐ์ดํŠธ:

    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 curses interface.
  • 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)

  1. Install WSL: wsl --install -d Debian (PowerShell Admin)
  2. Install mpv: sudo apt update && sudo apt install mpv -y

๐Ÿง‘โ€๐Ÿ’ป Manual Installation (For Developers)

  1. Clone Repository:

    git clone https://github.com/postgresql-co-kr/mytunes.git
    cd mytunes
    
  2. Virtual Environment:

    python3 -m venv venv
    source venv/bin/activate  # macOS/Linux
    pip install -r requirements.txt
    
  3. Run:

    python3 mytune.py
    
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mytunes_pro-1.5.1.tar.gz (23.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mytunes_pro-1.5.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

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

Hashes for mytunes_pro-1.5.1.tar.gz
Algorithm Hash digest
SHA256 0b62c5c964a806fa6b1f677760e9b525334d6e0fc1cea796f7f0093b4ed58038
MD5 12af4f2e11d3051d358f47ad1e3ed920
BLAKE2b-256 81e41af1c4e7e146c19fb26cdbbd360275983ca8aab7e73b072cc5099d671d9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mytunes_pro-1.5.1.tar.gz:

Publisher: pypi.yml on postgresql-co-kr/mytunes

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for mytunes_pro-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 652871ce23dce0166187490fcc59e910f3c200a29182c96b24bbeda9a15af345
MD5 58121c046c31323441b500efd2c20588
BLAKE2b-256 5ca22e577dc0618e2b72d5fef59d39d76d95cb4844ccac23937f1c3b7dd41118

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page