Skip to main content

A lightweight, keyboard-centric terminal player for streaming YouTube music.

Project description

๐ŸŽต MyTunes Pro (Korean)

ํ˜„๋Œ€์ ์ธ CLI ์œ ํŠœ๋ธŒ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด (v1.4.9)
ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ 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**๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค!


๐Ÿ›  ํ™˜๊ฒฝ๋ณ„ ์š”๊ตฌ์‚ฌํ•ญ (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.4.9)
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!


๐Ÿ›  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.4.9.tar.gz (22.6 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.4.9-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file mytunes_pro-1.4.9.tar.gz.

File metadata

  • Download URL: mytunes_pro-1.4.9.tar.gz
  • Upload date:
  • Size: 22.6 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.4.9.tar.gz
Algorithm Hash digest
SHA256 d60c0622263b7f5729baac2ea128568a30e03206a4a9119c02173bf8efc3fbf3
MD5 28f01a91549fb64bc832836250b9c4a5
BLAKE2b-256 3de746a4e86d54fe2d0e279f7bc7ccee48e22ab411364703237ae099eab50a4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mytunes_pro-1.4.9.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.4.9-py3-none-any.whl.

File metadata

  • Download URL: mytunes_pro-1.4.9-py3-none-any.whl
  • Upload date:
  • Size: 18.8 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.4.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d0f435773c12b2e1371b2eae1488fbaacc73424de262b2fbad5dbc26e385dfa4
MD5 8ef44820d4a8d28ce856753093871fd2
BLAKE2b-256 5b075d1715e367e18ca2c0b01ec71f4eab73196a8bf7592e3773855ee629c9b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mytunes_pro-1.4.9-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