One of the things I miss most about Spotify is Discover Weekly. That Monday morning playlist that somehow always had something worth listening to. Since moving my music library to Plex and using Lidarr to manage my collection, I've been pretty happy, but that music discovery piece has always felt like a hole.

That changed when I stumbled across a YouTube video by DammitJeff today that introduced me to Explo.

What is Explo?

The Explo github site reads: Explo bridges the gap between music discovery and self-hosted music systems. Its main function is to act as a self-hosted alternative to Spotify’s Discover Weekly, automating music discovery based on your listening history.

Explo uses the ListenBrainz recommendation engine to retrieve personalized tracks and requests them directly into your music library.

The Problem with Self-Hosted Music

DammitJeff put it perfectly in his video. Starting around 30:52, he describes the exact friction point that keeps people tethered to streaming:

"The biggest problem I keep hearing from people who want to start moving away from Spotify and Apple Music over to self-hosted music is almost always the exact same issue. Discoverability, recommendations. I mean, people still want to be able to discover new music, and streaming services, they kind of have a pretty good grip on that. But I think I finally cracked it."

That's exactly where I've been. Everything else about self-hosting music is solved: library management, metadata, multi-device playback. But discovery has always been the weak link.

Enter ListenBrainz

The solution starts with ListenBrainz, a free and open-source music scrobbling platform. At around 31:16, DammitJeff explains what makes it useful:

"They also have a service called ListenBrainz. It's an open-source database of listening stats and can track and log your listening history from any app like Plex, Navidrome, YouTube Music, Spotify, Apple Music, and a lot of other apps. So now we have like an actual history of what you're listening to... ListenBrainz can also see what other people are listening to that might overlap with your music and create recommendation playlists for artists and songs that you might like."

This is the foundation. ListenBrainz builds a taste profile from your listening history, then cross-references it with what similar listeners are enjoying to surface recommendations you'd probably never find on your own.

Where Explo Comes In

Once you have recommendations, you need something to act on them. At 31:46:

"And once we have the recommendations, we can run it through an app called Explo, which can take that list and then run it through a downloader of your choice and automatically clean up everything for you and download all the tracks seamlessly."

And it runs on a schedule. At 31:58:

"So every Tuesday it'll run through those recommendations that ListenBrainz made, automatically download the songs, send it to your music library, and create a playlist with new music. We're basically making our own algorithm here. By default, it can create three playlists for you: discover, weekly jams, and daily jams... And it's also smart enough to suggest based off of your artists and make sure that it doesn't try to download songs that are already in your library."

It's worth being clear about what Explo actually does and doesn't do. At 32:32, DammitJeff clarifies:

"Explo itself doesn't download the songs, which is why I'm cool talking about it. It just grabs recommendations from ListenBrainz and then tells a download app of your choice to go, you know, download those specific songs and then puts them into a playlist that Plex or Navidrome could use. So just to be clear, the combo is ListenBrainz, Explo, and a third app downloader."

Explo is the middleware. ListenBrainz generates the recommendations, Explo orchestrates the process, and your downloader of choice (YouTube via yt-dlp, or Soulseek via slskd) does the actual fetching. The result lands as a playlist in Plex or Navidrome automatically.

The Part That Got Me Really Interested

About two-thirds through the video, DammitJeff mentioned something that made me stop and rewind. At 33:03:

"Only thing is this is a command line program and it desperately needs a user interface. I've been designing something like for my own needs, just like a really simple way to help people interact with the environment variables a little bit easier... I would love to get this added into Explo, but I need to get approval from the main devs to be able to get it merged into the main build."

He wasn't just talking about it either. He actually built it and submitted PR #116 to add a full web interface and setup wizard to Explo. His background is in UX/UI design and it shows. The wizard walks you through connecting your music system, setting up your download preferences, and configuring your schedule all through a browser instead of manually editing a .env file.

The PR is currently open and under review with 18 commits already in. The reaction on GitHub was massive, largely because the same YouTube video sent a wave of people over to the repo all at once. The project maintainer LumePart even commented that the PR looked suspicious at first because of the sudden flood of reactions, until he realized they all came from the video. That's a great problem to have.

Getting It Running on Unraid

Since I run everything on Unraid, I went the Docker route. The setup involves a few moving pieces.

For scrobbling, Explo needs listening history to generate recommendations. I set up scrobbling from Plexamp to Last.fm (built into the Plexamp app, so it covers my iPhone, Mac, and iPad automatically), then connected Last.fm to ListenBrainz. I also imported my Spotify history into ListenBrainz which gave it a big head start on understanding my taste.

One unexpected side effect of logging back into Last.fm was seeing songs I was listening to back in 2009. I'd completely forgotten about that account. Scrolling through that history took me back to a time when things felt a lot simpler. It's funny how music does that.

If you're running Plex like I am and listening through Plexamp on your phone, the scrobbling setup is pretty painless. You can connect Last.fm directly to your Plex server at plex.tv/users/other-services, and from there you can also link your Last.fm account to ListenBrainz so everything flows through automatically. That chain is what makes the whole Explo setup work without having to think about it.

For downloading, Explo uses YouTube to fetch tracks via yt-dlp. You need a free API key from Google Cloud Console. The free tier gives you 10,000 units per day which is way more than a weekly tool will ever use.

The Docker setup itself is straightforward. Point it at your .env file and your music library and you're off. I put mine at /mnt/user/appdata/explo/ with music downloading into /mnt/user/data/media/music/explo/, a subfolder that Plex watches as part of my main Music library.

Testing the Web UI Branch

Since DammitJeff was asking for testers I spun up a second container from his fork to try the web interface. It lives in a separate directory and runs on port 7288. The setup wizard is genuinely nice. If you've ever set up Sonarr or Radarr you'll feel right at home.

The main caveat right now is that authentication isn't built in yet, so keep it on your local network only. For homelab testing it works well though, and it's clear this is going to meaningfully lower the barrier to entry for Explo once it lands in the main branch.

One Thing to Note About Discovery Mode

When you first set up Explo, ListenBrainz probably hasn't generated a Weekly Exploration playlist for your account yet. That takes a few weeks of scrobbling history. In the meantime you can set LISTENBRAINZ_DISCOVERY=api which pulls 25 recommendations using whatever history you have. Once your account has more data, switching to playlist mode gives you 50 tracks and better results. Importing your Spotify history speeds this process up considerably.

Worth Setting Up

DammitJeff's closing thought at 33:43 sums it up well:

"So there you go, for the people that cannot live without discovery recommendations. Legit, I couldn't find any info about this mix of apps. Hopefully, I helped someone out there finally fix their self-hosted music."

He helped me. If you're running a self-hosted music setup and you've been missing the discovery side of things, Explo is worth the hour it takes to get running.

Go give PR #116 a thumbs up if you want to see the web UI land in the main branch, and check out the full video — it's what got me started on all of this.


Links:

Is there anything you can think of that would make this better? Leave me a comment below I'd love to hear it.