Trying to ditch YouTube Music & Spotify for self-hosted music has been a struggle. I've subscribed to YT Premium today.
Here's how my attempts have gone:
Nextcloud Music (with Recognize): The web UI is great, has all the features I need. Downside: no transcoding and playback through Subsonic or Ampache clients is slow, sometimes causing server issues.
Jellyfin: Streaming works fine, but it doesn't recognize individual artists (my files are in one big folder, so albums are jumbled).
Navidrome: Similar to Jellyfin, artist recognition is off and playback isn't as smooth.
That's all I can think of honestly...I have a collection of over 40,000 songs...EVERYTHING is in the proper place/folders etc.... ain't no way would I ever consider my music folder to look like the windows download folder.
That's also how my Linux download folder looks from time to time XD But since I'm on Arch bases distro I try to be more organized and clean-up that Download folder mess !!!
And you want to scrobble your plays to listenbrainz.
You will serve your music however you want. Navidrome is one of the best, you can't go wrong.
Navidrome does not take car eof tagging. You have to make sure your music is tagged properly. You can also use other software for it that uses beets under the hood. Someone shall chime in and suggest the best app for that as beets isn't end user friendly.
I guess this isn't what you want to hear... but like others here I'd recommend you organise and tag your music properly. Then software like Jellyfin or Navidrome should work properly.
If you're on Android there's InnerTune. It's basically YouTube music but for free ! Just to bad you can't directly access downloaded files to export them elsewhere. (Yeah that's practically piracy and illegal)
I like navidrome + Tempo as self-hosted solution. Works well without any issues. However, I read about horror stories people losing all their media or fucking up their media library ?
Also, that's a huge song library (20.000?)... Not sure this can be easily handled over to a self-hosted solution? But first you need to organize your songs
I cant seem to use it without signing in which sucks, might consider just submitting to youtube soon anyway since no good competitor is being made. Too big to fail and all that.
I use Synphonium on my phone, it links to my Jellyfin and I can sync/sort and download directly from there. I use just use Spotify free in Firefox with Ublock on PC, that way I get no ads
Not sure if this fits your need, but if you just want to own the files, maybe try playing locally?
I don't have an unlimited data plan, so I use "Gelli" which can download from Jellyfin and play them offline. However, it's buggy and haven't been updated in a while, so I'm planning on ditching that, and switch to locally storing the music files.
I found an Android music player named "Symphony". It reads directories as album, as well as metadata. Importantly, it also saves the queue for me. I have a self-hosted Nextcloud so I can sync music to my phone. Symphony would read them from the directory.
If you're interested in an alternative to Gelli, check Finamp (https://github.com/jmshrv/finamp): it is a Jellyfin client for Android that can also download music to play offline. Try the latest beta version, it is way ahead the stable version and works perfectly for me as a daily driver.
Lidarr also serves as a music organization tool. You can set up rules for folders and how music files should be renamed. It can also apply metadata tags automatically.
I use Emby and catalog my music using MusicBrainz Picard. Before Emby I used Ampache but I want to serve up as much of my media through the same interface as possible. Adding all the proper metadata and sorting the music can be time consuming, but it makes all the difference in serving up the music properly. Music is much more varied than Movies or even TV so it is a bit more difficult to get right and there are sooo many artists. MusicBrainz Picard makes it pretty easy though. I will be checking out Beets.io after reading this thread to see if it can help any more with organizing my library.
Plex is excellent, and even if you prefer the features or interface of Jellyfin, you should never expose any application (Plex, Jellyfin, or otherwise) directly to the Internet. This should be non-negotiable. Plex solves for external access with the mobile/desktop apps and app.plex.tv by brokering client connections into your network without a NAT/PAT on your router or firewall.
My own strategy:
I deviate slightly from Plex's file and directory naming strategy, but it works perfectly. I start with high quality music, mostly from Bandcamp and process it through Musicbrainz Picard into ALBUMARTIST\YYYY - ALBUMNAME\01 - TRACKNAME.FLAC. Picard sets the metadata and ensures that there is an album cover image also.
Before moving the organized files to my Plex server, I run them through MP3Tag and overwrite any mismatched artist names with the album artist (getting rid of artist fields with 'feat xxxx artist's). This is important for when I sync files in Media Monkey to my iPod, since the iPod would break apart albums with multiple artists. My preference is to keep them grouped together.
Hope this helps good luck 👍. Let me know if you want to know a decent strategy on movie backups also.