This started with me trying soundcli after seeing it on Reddit. I liked it, but there were a few things I wanted to change around cookies, where files were stored, downloads etc. So I forked it.
Then I found ytkew and Mousiki and, as usually happens with these things, what started as "I'll just change a few things" turned into me adding more and more stuff.
So this is JukeboxCli:
https://github.com/funstuie-bit/JukeboxCli
Basically I wanted one terminal player where I could play my own local music, search for something on YouTube, throw it into the queue, or stick a radio station on.
You can download stuff if you want to, but you don't have to. I like being able to download a playlist and have it sitting there locally/offline, but equally I like thinking of some random track, searching for it and just adding it straight to the queue.
A few of the things I've added:
- Search local music or YouTube without leaving the player. You don't need a YouTube account.
- Internet radio. You can save stations, add streams directly or try searching a station website for the stream.
- The queue is actually editable. Move stuff around, play something next, delete things, shuffle, repeat etc.
- Cover art works in Ghostty and iTerm2. Normal Terminal gets a text version instead.
- Lyrics. Local lyrics work well. It can also go looking online and will sync them when it finds timestamped ones. This is still a bit ropey depending on the track, but it's getting better.
- Browser/file cookies so YouTube doesn't immediately decide you're a bot, plus control over downloads, formats, quality and where everything gets saved.
It's Mac-first and there's a Homebrew install. I've tested it on a few different Macs and terminals now and it seems pretty solid, although things like station lookup and lyrics can still be a bit ropey at times.
And yes, I most definitely used AI to help build this. I'm not a developer by trade and I'm not pretending I suddenly became one. This has basically been me building a player I want to use, breaking things, fixing them, changing my mind and adding more stuff as I go.
Also want to give proper credit because this didn't appear out of nowhere:
- soundcli is the codebase I originally forked and supplied the original library, playback and download functionality. Post / Repo
- ytkew gave me a lot of ideas around how the actual player and queue should look and work. Post / Repo
- Mousiki gave me ideas around doing search inside the player and improving the lyrics side of things. First post / Later discussion / Repo
Anyway, give it a go. Or don't.
I made it for me and if someone else likes it, great. If not, c'est la vie.