GitHub - Mjsciarabba/Listenbrainz-Playlist-Sync: An easy way to sync playlists from ListenBrainz to Plex

I love using Plex for music, but the one thing I felt it was missing in comparison to other music platforms was a generated playlist. If you happen to submit your listens to Listenbrainz, they will actually make some of these playlists for you! The issue with that though is I didn’t want to manually create and update that playlist every week. Enter Listenbrainz Playlist Sync!

What this does is it takes the “Weekly Jams” playlist created by ListenBrainz (which is composed of songs you have already listened to in your library - think the “Favorites Mix” on Apple Music) and syncs it to Plex. You can set it up to run automatically every week, making for an easy way to help discover more of your library and giving you some thing fresh to listen to each week!

This is my first ever GitHub release, so any and all feedback about improvements to this is greatly appreciated!



You have excellent timing and are very much onto something! I’ve been working on much the same, but my focus has been to take JSPF playlists and to resolve them to a local collection or a Subsonic collection.

I’ve even shoved troi, the toolkit that creates weekly jams, into the my project and make it local collection aware so that it can generate better playlists. I found that taking global playlists (read: playlists that contain only MBIDs and no local filenames/subsonic ids) often times really resolved poorly. (e.g. try resolving your weekly exploration playlist). So, I made a local version of it as well.

All of these tools are available in the listenbrainz-content-resolver:

GitHub - metabrainz/listenbrainz-content-resolver: Resolve ListenBrainz playlists from JSPF files to local playlists.

Would you consider adding your plex tools to this library, since they seem to be a natural fit for the resolver?


I’d be more than happy to do so! Just tell me what you need me to do :slight_smile:


As someone who does 99.9999% of their listening through Plex, thanks for making this! I will give it a try soon :smiley:


Python and me don’t have a good relationship, so took me a bit. No fault of the script, just a me and python thing(Would a docker image be possible?)

My playlist
On running it I got 43/50 matches. In case it’s helpful, here are the ones that failed for me:

  • Follow Me by E‐girls failed as it’s not in my library(It’s on my list as LB mismatched a song by “HeyGirls” as one from “E-girls”)
  • Roly-Poly by T‐ARA failed due to duped recordings (There is multiple recordings on MB for it, and the recommends picked a version that my files aren’t tagged as)
  • 맘마미아 by KARA failed because I lacked the recording(I will add it to my collection today and try again)
  • GODS by NewJeans failed. It found 32 results it says, checked for exact matches, and failed. Mine is tagged as League of Legends for the album artist, and NewJeans for the track artist(It’s a LoL song, and I like all them grouped in my library).
  • 티켓 (TICKET) by Nine Muses failed. Mine is tagged as TICKET by 9MUSES
  • 편지 by PIXY failed. Mine is tagged as The Letter by PIXY.
  • 占 (TANK) by NMIXX failed. Mine is tagged as TANK by NMIXX.

Overall very pleased! 4 failed that are in my library, and checking the MBIDs they are up to date in the files at least. But I assume the differences in the names is the cause.

Thank you very much for this!


Docker is on my list, I have to learn how to do that!

You are correct, the names are the issue in the last few you mentioned. I’m not sure how to handle having a difference in naming between Plex and MB. In an ideal world, I could match directly by the ID in Plex, but the Python API has restrictions that won’t let me do it.

GODS failing is interesting, assuming it’s matched to a release in Plex it shouldn’t matter that you changed the artist/album, since it would match on ID first. Having numerous artist/album combos is why the ID matching happens first, with those as the fallback option.

I’m really glad it’s (mostly) working for you! And that you got it to work given your relationship with python :slight_smile:


If you haven’t already, you should post this on I’m sure people there would be interested, and maybe it will bring in more users to ListenBrainz :wink:

1 Like


Sorry for the delay – turns out I am not ready to answer your question just yet. I need to chat with my team on how we want to structure this before we can proceed. Hang tight, I’ll be back early next week with a plan.



OK, when I first asked the question on how we should integrate your project it became clear that I needed to improve how projects are organized. We ended up folding the content-resolver project into the troi-recommendation project and that part is now done. Phew.

That said, now we have a base to work from – but I have really had the time to think about how that should look. But I will ponder this issue this week and will get back to you. I haven’t forgotten!