Hello everyone I’ve been looking for a solution to replace Spotify, for me and my family. I already self-host some services, such as Jellyfin and Sonarr/Radarr For music however, my actual setup is the following :
- synchronize my music folder on my phone with my NAS
- download on the phone or on my computer However, I struggle with finding new music and having an easy way to add music.
From what I’ve read, Bandcamp could let me buy some music and add it to my collection (however all artists aren’t on bandcamp) There also seem to be a consensus around Navidrome for a music server.
But how can I set it up so that each member of my family has a separate account (with different musics in it), still discover new songs and easily add them? I’ve looked into Lidarr (not a lot I have to admit) but it seems like it’s mainly for downloading full albums, more than just songs. Is that the case?
TLDR: What self-hostable services can I use to replace Spotify, so that each member of my family has its own instance, recommendations and downloads?
Thank you in advance and sorry for my English
Spotify replacement? Oh, hey, that’s me.
I’m working on Tapesonic, a subsonic-compatible self-hostable streaming service. It won’t stream your local library, but it can import stuff from YouTube and Bandcamp (and probably other sites yt-dlp supports, but I didn’t bother testing) and stream those. Started making it because Lidarr can’t download basically anything and also can’t manage anything that’s not in MusicBrainz even if you download it yourself.
As for discovery - Tapesonic can scrobble your listens to ListenBrainz and, since a couple of days ago, last.fm. Those in turn provide recommendation playlists.
- ListenBrainz playlists are already incorporated, but Tapesonic can only match the songs you already have in your library - everything else is ignored; completely useless for actual discovery and the recommendations aren’t great anyway to be honest
- last.fm recommendations are pretty good and I’m actively working on importing those; last.fm provides a YouTube URL for each track and Tapesonic can import YouTube URLs - you see where this is going, yeah? I expect to push a somewhat working implementation in a couple of weeks as I already have a prototype that works surprisingly well
Caveats:
- Tapesonic is still in it’s “prototyping phase” (what do you mean it’s been more than a year since I started it…) - everything gets changed all the time, only core features get implemented, UI sucks, all that jazz
- breaking changes anytime - expect having to completely wipe everything and start anew at any moment
- no multi-user support for now and I have no idea when it’ll come; you can host multiple instances I guess
Want to give it a try?
docker run --rm -p 8080:8080 -e TAPESONIC_USERNAME=user -e TAPESONIC_PASSWORD=pass ghcr.io/sibwaf/tapesonic
- http://localhost:8080, username/password from the previous command (“user”/“pass” in this case)
- “New tape” -> paste any Bandcamp album URL -> “Import” -> “Add all” -> “Next” a couple of times
- Connect a subsonic client (Feishin, Sonixd, Ultrasonic for desktop, Tempo for Android) to the same address, same credentials
- Enjoy!
Any other configuration parameters, persistency, stuff like this - sorry, you’ll have to study the code. No docs and no support for now.
Thing is: If it ain’t on musicbrainz it wont work on listenbrainz (besides adding a play)
Yeah. That’s why I’m also adding the last.fm integration.
And you still have an option to just import whatever you want whether any metadata aggregators have it or not unlike Lidarr.
It’s not FOSS but Symfonium is by far the best music player for your Android. It has support for every self-hosted source concivable. I used to run Navidrome and I’m not using Jellyfin in the backend.
I use syncthing and poweramp.
I used lidarr to sync my followed artists from spotify and then just use plex and plexamp for music, all my plex users have access to it also but I think most people still have spotify so it’s just mainly me using it
Plex and plexamp is the best music hosting setup I’ve found too. Users can have their own playlist and there is some smart playlist generation.
They also had (maybe still have) tidal integration.
However, you’ll still be relying on other services (probs spotify/etc.) to find new things.
Lidarr, SpotSpot, Jellyfin (Symfonium for listening to music on my Android phone).
I use Spotify (web version) or Lidarr to look/search for the name of the albums for different artists and then download it with SpotSpot (consider pairing it with Gluetun). For me, this is perfect!
Edit: While on my computer, I’m using Feishin to listen to music from Jellyfin. I usually create the playlists from there.
One thing navidrome cannot do is to have different music available per user. A workaround for that is yo host multiple instances using docker and have them access different folders for music but that’s obviously not ideal.
Not the best solution, but I use a free Spotify account and IFTTT to pull a list of songs added to certain Spotify playlists, like the new rock one, to a Dropbox TXT file to find new bands. Takes some effort, but let’s me see what’s coming out.
Lidarr is centered around full albums unless a song was released as a single, specifically it uses release-group on musicbrainz.
I run both jellyfin and Plex, and for the music app I think plexamp > finamp, but both work to sync between their respective instance. I haven’t tried anything else because I already had Plex pass for other things.
Plexamp seems to tick all the boxes, but yeah that plex pass requirement is a bit of a downer.
Replacing any of the paid-for recommendation services is hard in my experience (I loved the Google Music recommendation engine, RIP). Anyways you sort of have two paths of travel to intertwine if you want to stay away from The Big Boys™:
(a) Find independent streaming sites like SomaFM, Big Sonic Heaven and DKFM ([1], amongst many others) which fit your genres as they routinely have “new tracks weekend” besides the broad exposure you get to hearing bands you’ve never heard as the volunteer DJs rotate their preferences. These are your old school original Shoutcast / Icecast streams run solely on donations, there are a lot of them out there for every genre.
(b) Look into something like https://audiomack.com/ - I don’t use it (maybe I should!) but it “feels like” it might be a fit for your needs based on your OP details. Maybe not, at least give it a glance and see what’s going on with it as it does look interesting.
Something else might catch your eye at: https://bandcampalternative.com/
[1] some sites from various genres:
(I loved the Google Music recommendation engine, RIP)
This will never cease to sting. Google Play Music was so good.
I uploaded giga upon gigabytes of well-curated (tags, etc.) songs - the max was 400MB per file so you could just about fit a 1 hour DJ session into that as a single “song” as well. The desktop app was complete garbage but you could eventually get your entire MP3 collection uploaded as a massive recommendation seed for the engine to use “more like this!”. Or put 30 songs into a playlist and then say “make me a radio station based on these 30 songs.” and next thing you new you had a 500 long tracks playlist of similar music. sigh those were the good days.
Unfortunately it had a lot of internal track mis-labeling problems; a number of my saved playlists got destroyed when the conversion to YTM happened as the two services could not agree on what a given song was, so YTM thoughtfully made a mess of it. (as well as GM having songs YTM did not, so all those just disappeared too). This soured me on ever adopting YTM and pushed me back to Shoutcast/Icecast solutions.
Nextcloud + Nextcloud Music App is also a good solution. The app supports subsonic too, so it can be used with a few different apps.
Bandcamp to buy albums but if you really need a streaming service similar to spotify, Tidal offers better quality and gives at least 3x more to artists.
Jellyfin is pretty nice for music too. I use it with Finamp, an Android client.
Finamp is also on ios, making it a great solution for when you have several users across ecosystems. There are other Jellyfin music clients as well but I don’t know them
You can also point Navidrome at your music folder for web access which I prefer when using my laptop
The discovery problem is definitely the biggest challenge though. Lidarr is something but if you enable it with newsgroups you’ll generally only find more “notable” music. Anything on the more esoteric side is generally gonna be tougher.
You can integrate torrents and private trackers but if you’re anything like me you want to run all downloaded music through a mass tagging program like beets.io or picard to get stuff tagged according to musicbrainz so your library is consistent, which wrecks seeding, and private music trackers are generally pretty draconian about seeding. So then it’s either keep two copies of music, one to seed and one tagged, or hit and run everything and get banned, or just have a library with messy tags (which if you’re like me is just simply not an option). I currently do the two copies thing because it’s generally not that much space and once I hit a 2:1 ratio I get rid of it. In the instance the tags match 100% I point it at my library and permaseed. This is labor intensive though and everything else on my server is mostly automated
I have never figured out a way to integrate soulseek. This would probably be the optimal way as the library is almost as extensive as private trackers (sometimes more so), I can filter by quality (though sometimes flacs are transcodes with this way), there’s etiquette to not clog peoples queue but no real seeding rules, etc. but on my server soulseek runs in a vnc based docker and scripting that goes beyond my talent level
If you’re just looking for a source to acquire tracks, Qobuz works. Their mobile client is trash, but the serve quality and source files are great. Easy to migrate Spotify playlists over as well.
I tried Navidrome, and it’s a plus because it is compatible with any Subsonic app, such as Tempo (FOSS) or Symfonium (paid, independent dev, highly rated).
In the end, I personally had some stability issues (probably because I don’t really know what I’m doing). I find that the music server options in Jellyfin are the best option for me, and there are some very solid apps as well. I use Finamp, although there is also Fintunes, which seems to have more active development (both FOSS).
The built-in music player in jellyfin is pretty solid too, which is especially useful for playing on a TV (family dance party anyone?). Jellyfish is already on every platform, and I never did find a good TV client for Navidrome.
I’m sticking around this thread to find out if there is a good music discovery option because I haven’t found anything remotely close.
Symfonium is awesome!
This is the way
Symfonium on mobile Feishin on PC