I Fixed Music Discovery
So, I’m taking part in Blaugust again. I’m not even going to try to do 30 this month. I’ll be happy with 5 or 10. But this is #1, so it’s a start.
The last time I wrote something, I talked about how I was considering going back to music subscription services simply because I missed their music discovery options. Self hosting was just not doing it for me in that regard. I really didn’t want to go back to paying for music, though. I have spent well over a year getting my own library up and running and properly tagged. It has been a long and tedious journey. But I have a great and huge library, so paying for music again just seemed silly.
So, I decided to do something.
Introducing DJ. This is a selfhosted version of Pandora, with a few awesome (somewhat) features added in. If you have a Navidrome or other open Subsonic server, you can run DJ alongside it. It will play radio stations of your content, similar to how Pandora does it (I’m also working on making it more specific than genre, but it requires lastfm).
The idea is that it will allow you to play songs from your library that exist outside of the playlists that you stick with over and over again. Or at least, that’s how it has worked for me. I’ve been working really hard on this, it is so good. (For those of you who are anti-AI, you should know that Claude did help a lot on this one. I did the ts stuff and a bit of python work). I’ve discovered a ton of music in my library that I’ve never listened to before. It has helped me build out a few new playlists, and I add more every day.
I’ve also added a few extra features. The biggest is the AI stuff. Again, I know some of you are anti-AI. That’s fine, but I find it useful. If that offends you, sorry not sorry. Anyway, while playing Farming Simulator 2025, I found that I missed hearing actual DJs on the radio. I can’t afford to have an actual DJ, so I thought it would be cool to have AI create a DJ for me. So, if you set it up, you will get breaks in your music where an AI will come on and say a few words. It’s pretty neat.
Now, the DJ breaks are not great in terms of content yet. I’m still working on it. I swear all AI agents are made up of Gen-Z folk given the way they talk. So the DJs will say things like “I like the way that landed,” and they used the word “vibes” so much I had to hard code them not to. But I still like the little interruptions. It makes me feel nostalgic for the 90s when you had actually disc jockeys playing the tunes and talking to you in between tracks and adverts. This bit in DJ does require an Anthropic API key, but it is stupid cheap. The AI stuff does more too. My music library is a bit lax on genre data, so it will scan my library and fill in the blanks. It’s not perfect, but it’s made it a lot better so my stations are mostly what they should be.
With the LastFM stuff I just added today, the stations are even better. Now I can select an artist to create a station from, and it will use LastFM artist similarity data to make sure the station is close to that artist instead of relying on a genre, which is entirely too broad.
This has saved my music self hosting journey. It may not be for everyone. The DJ interruptions are just cute things I find entertaining. The true magic is with it finding gems in my library that I wouldn’t ever find by just listening to the same “favorites” playlist over and over again.
I’ll definitely keep working on this. I have a few more features and tweaks I have in mind, and I want to integrate it into my sonic-tui player so I have a TUI access. I’ve already created a simple Android app for it. I actually listen to DJ more than I do anything specific from Navidrome these days. I’m pretty happy about that, because it means I listen to almost entirely new (to me) music.
I almost says “that’s a huge win” but that just makes me sound like Claude. But Claude isn’t wrong. It is, in fact, a huge win.



Comments