Replacing Spotify
from achille225@jlai.lu to selfhosted@lemmy.world on 26 Feb 13:33
https://jlai.lu/post/15817154

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 :

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

#selfhosted

threaded - newest

plantsmakemehappy@lemmy.world on 26 Feb 13:47 next collapse

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.

Know_not_Scotty_does@lemmy.world on 26 Feb 14:40 next collapse

The Emby mobile music player is awful. For whatever reason it will play and show your history on the desktop/server side but it doesn’t keep track on the mobile app.

apprehensively_human@lemmy.ca on 26 Feb 14:59 collapse

Plexamp seems to tick all the boxes, but yeah that plex pass requirement is a bit of a downer.

non_burglar@lemmy.world on 26 Feb 13:50 next collapse

From my experience with sonarr and radarr, I thought lidarr would be great, but it’s garbage.

Bandcamp isn’t what it used to be, apparently there’s a better service for music now, I’m sorry I can’t recall the name.

Navidrome should serve you well for Spotify replacement. It uses the subsonic api, so you can use any app that supports that, and there are many.

Regarding sync phone with server, you might want some thing like synching or nextcloud with a local player on your phone. My music collection is 1.5TB, so I simply stream and have only a few select albums downloaded locally on the phone.

madjo@feddit.nl on 26 Feb 14:50 collapse

Bandcamp isn’t what it used to be, apparently there’s a better service for music now, I’m sorry I can’t recall the name.

artcore? www.artcore.com

or formaviva? formaviva.com

(though I still like bandcamp)

perishthethought@lemm.ee on 26 Feb 15:33 next collapse

Yeah, I want to say, Bandcamp was sold to a new company last year but so far, it’s pretty much the same as before. I can see someome saying they have some beef with them, but I still use them fairly often, to support lesser known bands when I can. And they schedule special Friday events where they don’t collect any fees - all music sold on those days goes straight to the artists. Sooo much better than the evil Spotify.

I would love to know of a good alternative to Bandcamp, but don’t rule it out entirely, IMO.

irotsoma@lemmy.blahaj.zone on 26 Feb 19:38 collapse

I really would love something like Amie Street before Amazon bought it to kill it. I got so much great music on there for pennies which then led me to buy more and more from those artists. My problem is I need to hear a song a few times before it digs into my soul. And preferably not when I’m paying too close attention to the technical aspects so it can hit me more emotionally. So just having a 10-30 second preview or just hearing it one time is never going to be enough to hook me on an artist. Also, cheaper b-sides since it was demand based meant I was much more likely to hear more of their music and get more invested in the artist.

sorrowl@lemmy.blahaj.zone on 27 Feb 10:52 next collapse

Ampwall? ampwall.com

VeganCheesecake@lemmy.blahaj.zone on 27 Feb 15:54 collapse

There’s also qobuz. They have a streaming service, but you can also straight up buy a lot of albums and download them drm free.

www.qobuz.com/shop

sonalder@lemmy.ml on 26 Feb 14:07 next collapse

I have not tested all of them myself and not sure it exactly correspond to your needs but here are a few options :

ueiqkkwhuwjw@lemmy.world on 26 Feb 14:09 next collapse

Nextcloud + Nextcloud Music App is also a good solution. The app supports subsonic too, so it can be used with a few different apps.

just_another_person@lemmy.world on 26 Feb 14:13 next collapse

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.

scsi@lemm.ee on 26 Feb 14:21 next collapse

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 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: bandcampalternative.com

[1] some sites from various genres:

JoMiran@lemmy.ml on 26 Feb 14:53 collapse

(I loved the Google Music recommendation engine, RIP)

This will never cease to sting. Google Play Music was so good.

scsi@lemm.ee on 26 Feb 15:10 collapse

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.

Shady_Shiroe@lemmy.world on 26 Feb 14:41 next collapse

I know this isn’t a self hostable app and just a alternative client that pulls music from youtube and uses song recommendations from spotify, but I switched to Spotube. It has some bugs, but hey it’s written in flutter and I know flutter so I’m able to contribute.

gedaliyah@lemmy.world on 26 Feb 14:43 next collapse

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.

Edit: both Navidrome and Jellyfin allow you to set up multiple user logins. I’ve found it’s much better to set up individual playlists and make them available to everyone.

doodledup@lemmy.world on 26 Feb 20:19 collapse

Symfonium is awesome!

HotChickenFeet@sopuli.xyz on 26 Feb 22:52 collapse

This is the way

Symfonium on mobile Feishin on PC

bluGill@fedia.io on 26 Feb 14:49 next collapse

Go to local "art in the park", music nights, and other such local events and listen to the band playing. Unless you live in a very rural area there is likely many many bands playing someplace every day around you. When you hear something you life find the band and ask how to get their music. If they sell CDs buy one - buy one even if you only accept the music but don't like it just to support the idea that CDs are not dead.

Yerbouti@sh.itjust.works on 26 Feb 15:09 next collapse

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.

ocean@lemmy.selfhostcat.com on 26 Feb 15:24 next collapse

I use Navidrome and Jellyfin.

vext01@lemmy.sdf.org on 26 Feb 15:26 next collapse

I use syncthing and poweramp.

malaknight@programming.dev on 26 Feb 15:34 next collapse

So as you noticed there isn’t a one size fits all solution.

You are correct in that bandcamp allows you to buy songs and albums from artists, but not every artist is on the platform. I cycle between Quobuz, HDTracks, or other alternatives (wink, wink)

Navidrome is good for sharing one library, in my experience. It expects one library that a bunch of users can then interact with. This does meet your requirements of seperate stats and downloads per user however you will have access to your family’s music just like they will have access to yours.

You could try out funkwhale, which is similar but expects multiple libraries. So you can have a library of just your music and same with your family members, this will allow duplicate tracks. I will caution that funkwhale is, in my experience, not easy to get setup. I would personally recommend navidrome as it is very easy to setup annd use. As others mentioned, it uses the subsonic api under the hood so any subsonic client can access your navidrome libary. I use Feishen on desktop and symphonium on mobile.

You also mention syncing music folders between devices, this might get tricky. But you can setup a rsync services to ssh to your phone and then migrate tracks to your library. But personally I would recommend just trying to only download your music to your NAS so you can skip this annoyance. You can setup Lidarr which is sonarr/radarr but for music. However music piracy is not what it was 10 years ago, and I struggle to have lidarr autopull albums, but thats also because I try to use flac which is not as common either.

Finally you mention recommendations, for me the only option is ListenBrainz. You can setup a musicbrainz account, it is an open source music metadata platform, and then use that login for ListenBrainz, which is a tracking and recommendation engine. You can directly plug in that api to navidrome to have it sync all of your listens.

In summary, my recommendation is to only download music to your nas, setup navidrome for library sharing, (you can download from navidrome), and then setup lidarr for albums. Finally for individual tracks look into deemix, if you only want mp3 then it’s just free downloads.

Please feel free to reply or message for any clarifications.

achille225@jlai.lu on 26 Feb 17:16 next collapse

Thank you for your detailed answer ! I have one more question : it seems that deemix uses only the Deezer servers. Is there someway to have a downloader that looks for tracks on Spotify or YouTube as well? Because sometimes the songs aren’t available (or the metadata is terrible)

malaknight@programming.dev on 26 Feb 17:58 collapse

No deemix only picks from deezer, but It seems to have song parity with spotify. Or rather I haven’t found a song on spotify that wasn’t in deezer.

As far as metadata, I use picard to autopopulate meta data from musicbrainz. My typical workflow is find something in deemix, download it and put it in a staging directory, then have lidarr import, trackname fix, and metadata fix, and then finally have navidrome scan the final folder and make the music accessible.

Zadhu@slrpnk.net on 26 Feb 18:53 next collapse

This is the best and most cohesive answer.

I use all these things mentioned with a deezer hifi subscription and deemix running as a lidarr addon, that way all i have to do it select an artist on lidarr and boom ive got their discography in minutes.

As for discovery, listenbrainz is a great tool to see what other people with similar taste listen to and it makes potential playlists for you.

HOWEVER, i can not recommend enough just downloading entire collections of artists you like or full albums instead of single songs and hitting shuffle. I have discovered so much new music for me thats been out for years by artists i love that i didnt know existed. This is what lidarr does really well in terms of the collecting music.

Symfonium is also an amazing app for using your navidrome server bar none. All the customisation and features it offer are just so much better than any streaming service app by miles and miles.

Good luck!

malaknight@programming.dev on 26 Feb 19:40 collapse

I’m ashamed to admit I never considered hooking deemix into lidarr, that is pure genious.

I’d also second collecting whole discographies, a lot of ‘one hit wonders’ have surprisingly deep catalogs that are full of really great tunes.

Zadhu@slrpnk.net on 27 Feb 09:19 collapse

If you change to the plugin branch of lidarr you can add it and away you go. Much better than torrents or usenet and then you can also integrate soulseek via another plugin for anything not on deezer (very little anyway)

freebee@sh.itjust.works on 27 Feb 15:34 collapse

what’s the reason the plugin is not in the main branch? Are there possible issues with the plugin branch? (data loss?) Is there a plan for the plugins option to become part of main branch in the future? (i don’t want to break running things if a bit of patience for features would do just fine)

Zadhu@slrpnk.net on 27 Feb 19:03 collapse

As far as i understand it, its a seperate dev branch and plugins arent intended to be introduced to the main branch.

Its exactly the same otherwise and when i swapped i didnt have to reimport any music etc.

Been working much better than the containers you can get like lidarr-on-steroids because they dont get updated nearly enough whereas i can keep both my lidarr and deemix containers up to date.

freebee@sh.itjust.works on 27 Feb 15:09 collapse

imo today it’s a lot easier through the old channels to pull flac than mp3.

dataprolet@lemmy.dbzer0.com on 26 Feb 15:35 next collapse

Jellyfin is pretty nice for music too. I use it with Finamp, an Android client.

ragebutt@lemmy.dbzer0.com on 26 Feb 17:19 collapse

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

natch@lemmy.today on 26 Feb 15:38 next collapse

I use Jellyfin to host my music, and Finamp on my phone to browse and listen to it. Finamp supports downloads as well, so you can listen to your music offline and away from home. Pair that with a self-hosted VPN to access Jellyfin away from home and you’ve got most of your needs covered!

neatobuilds@lemmy.today on 26 Feb 16:06 next collapse

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

jacksilver@lemmy.world on 27 Feb 21:06 collapse

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.

superglue@lemmy.dbzer0.com on 26 Feb 16:22 next collapse

I’ve wanted to replace Spotify for years but have never been able to do it. Everyone here will suggest you just use Jellyfin, but that doesnt solve the discovery problem. My idea was basically using spot-dl to download playlist and add them to my music library. But it would always break after a few days and the metadata was always all messed up.

achille225@jlai.lu on 26 Feb 17:14 collapse

Thank you for your feedback, I was starting to think of something like that but figured it would break too much if it isn’t updated

superglue@lemmy.dbzer0.com on 26 Feb 19:24 collapse

I think its possible to do, I just gave up too soon. To get approval from my wife it has to be better than Spotify, and even if I got it to work, it just won’t ever be better so I gave up for now.

Pretty much the only way I’ll be able to replace it is if it enshittifies a lot more. Like certain record labels dropping out or something along those lines. She wants to use 1 single app for all her music and podcasts and at the moment, that can’t be done well. Spotify has to do something dumb to Nerf its value proposition.

d0ntpan1c@lemmy.blahaj.zone on 26 Feb 16:56 next collapse

Not FOSS, but something I’ve been considering is Roon. I switched to Tidal from Spotify (which is a legit improvement imho)

They have a self hostable option and the idea is to mix your personal library, Tidal, Quobuz, and recommendation engines into one app.

achille225@jlai.lu on 26 Feb 17:13 collapse

I saw this recommended in another thread, but if I read correctly you need not only the roon subscription but also the Tidal/Qobuz one right ? Each of those being around 15$/month, that’s starting to be a bit too much for me I think

d0ntpan1c@lemmy.blahaj.zone on 26 Feb 17:23 next collapse

Absolutely, it’s expensive. Definitely better to share it with family and friends to equalize the cost.

I only consider it because I listen to a ton of music, my university degree was music, and I spend a lot of money on music generally.

Scipitie@lemmy.dbzer0.com on 26 Feb 17:31 collapse

And check for each music service their offered music. I’ve checked out tidal actually today with one of those export playlist tools and about 10% of my (honestly: niche) music wasn’t available.

i_uuuh_what@lemmy.world on 26 Feb 19:51 next collapse

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
  • 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.

Appoxo@lemmy.dbzer0.com on 27 Feb 11:42 collapse

Thing is: If it ain’t on musicbrainz it wont work on listenbrainz (besides adding a play)

i_uuuh_what@lemmy.world on 27 Feb 13:20 collapse

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.

doodledup@lemmy.world on 26 Feb 20:18 next collapse

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.

chicken@lemmy.dbzer0.com on 27 Feb 02:13 next collapse

I use a script I wrote that plays music from Bandcamp with probabilities based on liking/disliking songs and the albums Bandcamp recommends in association with the rated song. Wary about sharing it anywhere though as it’s definitely against the tos.

beerclue@lemmy.world on 27 Feb 02:48 next collapse

I use lidarr + jellyfin + symfonium (android), and that works for me. I mainly listen to full albums, and don’t play around with playlists or recommendations though. I get flac quality and lyrics, remote access to my home-lab via VPN (no offline sync), Android Auto support…

HeyThisIsntTheYMCA@lemmy.world on 27 Feb 06:11 next collapse

I put my music collection (40gb) on my phone, listen to it with musicolet. One of my playlists is 72 hours with no repeats, so I don’t get bored with the same music like the radio.

Noggog@programming.dev on 27 Feb 06:36 next collapse

It’s on my “short” Todo list to write an app that looks at your current library (Plex, for me) and finds related artists through other apis (like Spotify) and exposes a UI to show what things to check out. Maybe some tracking of what you’ve accepted as interesting and still missing so you can grab off Bandcamp or wherever else you get your music. But at least it would help track/expose WHAT bands to seek out

merthyr1831@lemmy.ml on 27 Feb 11:25 collapse

You might wanna check out spotube, which uses the spotify API for playlists but plays tracks through Youtube. Might be useful for inspo

Noggog@programming.dev on 27 Feb 22:01 collapse

Definitely a cool project! Can crack it open to get some API insights. The goals don’t quite line up for me, as I eventually want to actually get the tracks into my Plex setup. Additionally, I’m after a more “assisted curation” where I actively consider new artists and thumbs 👍👎 to let them through, rather than trying to make a radio type feature that passively plays new stuff.

PieMePlenty@lemmy.world on 27 Feb 09:39 next collapse

Simplest is to use syncthing and just sync everything to your phone but this won’t cover a lot of your use cases and is probably best for a one user experience.

Lidarr for new music + a subsonic server such as gonic will cover a lot of what you need. The idea is to find and download music(lidarr+dl client) and run your own streaming server(gonic or other implementations). On mobile you use an app which supports the subsonic protocol (such as substreamer or tempo) too listen. You can also just use jellyfin server + it’s client, but AFAIK, the music experience is not as good.

Manalith@midwest.social on 27 Feb 12:22 next collapse

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.

Scrath@lemmy.dbzer0.com on 27 Feb 12:34 next collapse

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.

seadoo@lemmy.world on 27 Feb 13:06 collapse

I did this in 2024! I use Finamp on my phone for music.

I bought a lot of albums on bandcamp, bought CDs for those that weren’t on bandcamp, and pirated those that weren’t available in either format (looking at you still woozy, stop releasing tapes lol).

Used CDs are a great deal and can be shipped all over the world for cheap.

Users on jellyfin can be allowed access to selected media libraries so just divvy stuff up that way, simple as folders.