I switched from Spotify to a self-hosted solution over two years ago. It’s great, but missing a specific function, which is the weekly playlists of your most-listened songs.
I solved this on Jellyfin by creating a plugin that pulls data from Last.FM. Since then, I have switched away from Jellyfin (for music at least) to Navidrome, and also away from Last.FM to Listenbrainz.
Navidrome doesn’t have a plugin interface. But it does have a Subsonic-compatible API. So I began re-engineering the plugin as a daemon that will create and maintain playlists based on my Listenbrainz history.
I opted for Rust as per usual. The result is available at https://gitea.jellypro.xyz/jude/playlistd. Try it out!