Repository navigation
Releases: dtDhruv/ytkew
Releases · dtDhruv/ytkew
Release list
ytkew 0.1.0
A terminal YouTube Music player, in the spirit of kew — cover art, a spectrum visualizer, album-derived colours, no distractions — playing from your own YouTube Music account.
Install
cargo install ytkew
ytkew --install-desktop-entry # launcher entry and iconOr from source, which does both:
git clone https://github.com/dtDhruv/ytkew && cd ytkew && make installNeeds mpv and yt-dlp on PATH. Search, radio and lyrics work signed out; only your own library needs credentials.
What's in it
- Full-resolution cover art — kitty graphics where the terminal supports it, sixel where it does not, truecolor half-blocks everywhere else
- Gapless playback — the next track is resolved and buffered while the current one plays, so transitions never stall on a yt-dlp round trip
- Spectrum visualizer from a real FFT over the audio output
- Colours from the album art, ten built-in themes, or write your own by dropping a TOML file in
~/.config/ytkew/themes/ - A library that browses like a file manager, one column per level
- Search across songs, videos, albums, artists and playlists
- A queue that behaves like YouTube Music's — a one-off track played mid-playlist slots in next instead of throwing the playlist away
- Optional vim keybindings —
gg,G,ctrl+d/u,dd,J/K - MPRIS — media keys, and a now-playing panel entry with artwork
- Mouse support throughout, and lyrics, radio, liking, shuffle and repeat
Signing in
ytkew --auth browser lifts an existing Firefox login, so signing in at music.youtube.com is all the setup there is. --auth cookie takes a pasted header from any browser, and --auth oauth runs a device flow.
Platforms
Linux and macOS, both covered by CI. Windows is not supported yet — say so in an issue if you want it.
Known limits
- Unofficial API: YouTube can change it at any time.
- A stale
yt-dlpis the most common reason a working ytkew stops playing. Keep it current withyt-dlp -U; ytkew checks the version and tells you when tracks start failing. - The visualizer captures the whole audio sink, so other applications' sound shows up in the bars.
cavabehaves the same way. - Paged fetches stop at 5,000 items, so a longer playlist is truncated.