peternaame-boop/ytm-player
peternaame-boop/ytm-player has 551 GitHub stars and 53 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-12 05:53 UTC. Last push 2026-11-09.
YouTube Music TUI client with vim keybindings, synced lyrics, and cross-platform media keys
What you can do
- Vim-style keybindings — j/k movement, multi-key sequences (g s for search, g l for library), count prefixes (5j)
- Synced lyrics — live-highlighted with LRCLIB fallback for tracks YouTube doesn't have, with title sanitization for better LRCLIB matches
- mpv backend — gapless audio, stream prefetching, broad codec support
- Cross-platform native integrations — MPRIS (Linux), Now Playing (macOS), media keys (Windows)
Measured star growth
- in 24h
- +1
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original

Available on PyPI, AUR, NixOS, and Gentoo — actively maintained with cross-platform support.
Features
- Vim-style keybindings — j/k movement, multi-key sequences (
g sfor search,g lfor library), count prefixes (5j) - Synced lyrics — live-highlighted with LRCLIB fallback for tracks YouTube doesn't have, with title sanitization for better LRCLIB matches
- mpv backend — gapless audio, stream prefetching, broad codec support
- Cross-platform native integrations — MPRIS (Linux), Now Playing (macOS), media keys (Windows)
- Theming — 18+ Textual themes plus per-app color overrides in
theme.toml - Spotify import — pull playlists in via API or scraper fallback
- CLI + IPC — control a running TUI from another terminal (
ytm play,ytm pause, etc.) - Free-tier support — works without YouTube Music Premium
- Session resume — last-playing track + queue restored on launch
- Local cache — LRU audio cache for offline-like replay of previously heard tracks
- Discord + Last.fm — Rich Presence and scrobbling
Requirements
- Python 3.10+
- mpv (audio playback backend, must be installed system-wide)
- A YouTube Music account (free or Premium)
Install
# PyPI (Linux / macOS / Windows)
pip install ytm-player
# Arch / CachyOS / Manjaro (AUR)
yay -S ytm-player-git
For NixOS, Gentoo, Windows-specific mpv DLL setup, source builds, and optional extras (Discord, Last.fm, Spotify import, etc.), see docs/installation.md.
Quickstart
ytm setup # one-time auth (auto-detects browser cookies)
ytm # launch the TUI
Windows: replace ytm with py -m ytm_player.
Documentation
| Topic | Link |
|---|---|
| Per-platform install + optional extras | docs/installation.md |
config.toml + theme.toml reference |
docs/configuration.md |
| Full keyboard + mouse keybindings | docs/keybindings.md |
All ytm CLI subcommands |
docs/cli-reference.md |
| Spotify playlist import | docs/spotify-import.md |
| Troubleshooting (mpv / auth / MPRIS / macOS / cache) | docs/troubleshooting.md |
| File layout + stack | docs/architecture.md |
| Contributing | CONTRIBUTING.md |
| Security policy | SECURITY.md |
Contributors
Thanks to @dmnmsc, @Villoh, @valkyrieglasc, @dsafxP, @Thayrov, @glywil, @Kineforce, @CarterSnich, @Tohbuu, @nitsujri, @uhs-robert, @moschi, @firedev, @wgordon17, @gitiy1, @hanandewa5, @aimar-a, @Gimar250, @Wiibleyde, @szx19970521, @aaguilar-hub, @TheoBassaw, @holstvoogd, and @ProfessionalGriefer for bug reports, fixes, packaging, and platform support.
Changelog
See CHANGELOG.md for the full release history.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
562,140 starspublic-apis/public-apis
A collective list of free APIs
498,533 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
455,237 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,410 stars