this post was submitted on 27 Jan 2026
286 points (99.7% liked)

Selfhosted

60093 readers
569 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

  4. Don't duplicate the full text of your blog or git here. Just post the link for folks to click.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require your active participation in selfhosting or related communities, or the post will be removed. No more than 10% of your posts or comments may be self-promotional, or your post will be removed. F/LOSS Exception: If your post is about a project that is completely open source & can be self-hosted in full without payment, and your account is at least 30 days old, your post is exempt from this rule as long as you continue to engage in comments.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

Hey everyone! I would like to share a web project that I just built for Navidrome users in this sub. It exports playlists from Spotify to Navidrome. It's called NaviSpot (Yes! I know! Quiet an original name :P). It's free and has 0 ads. I've wanted to fully transition to Navidrome as my music library and wasn't sure if there were any other tools that did this. So, I decided to build this and share it with the community if anyone shares the same frustration as I did when trying to move their playlists from Spotify. The project is opensource and is available on github (https://github.com/betsha1830/navispot). If you would like to check out the live version you can do so by going to https://navispot.gaga.pro.et/.

If you have any suggestions, questions, additional features or need any help feel free to DM me.

Hope y'all have a great day!

all 39 comments
sorted by: hot top controversial new old
[–] fprawn@lemmy.world 16 points 5 months ago

I've been looking to do exactly this, thank you!

[–] SidewaysHighways@lemmy.world 10 points 5 months ago

yes! more love for navidrome yayyyyy

[–] ivanafterall@lemmy.world 10 points 5 months ago

This looks super cool. Thanks for sharing it!

[–] Courantdair@jlai.lu 8 points 5 months ago (1 children)

Nice! Will try that tomorrow! I just noticed you misspelled the name on the readme: Navi~~d~~Spot

[–] betsha1830@lemmy.world 1 points 4 months ago

Thank you for the correction.

[–] three@lemmy.zip 7 points 5 months ago

YES

Thank you so much!

[–] Bakkoda@lemmy.world 6 points 5 months ago (1 children)

I'll give this a shot. Spotisub was very janky for me and missed entire playlists.

[–] dabe@lemmy.zip 2 points 4 months ago (1 children)

Check out https://github.com/WilliamNT/tunesynctool as well. Its development is a little slow right now but it seems very thoughtfully designed and lets you sync via command line (i’ve done so myself) or you can build around it in python.

[–] Bakkoda@lemmy.world 1 points 4 months ago

Ty. I think I've pretty much gotten all i need syncd as I'm officially done with Spotify but a cli option is def more efficient for me. If the wife decides to give up Spotify I'll try it on her playlists as they are far more plentiful. I only used Spotify in the car so only like a dozen or so playlists.

[–] zorflieg@lemmy.world 4 points 5 months ago (2 children)

I've read on the internet some people export their Spotify to a YouTube playlist to then pass through Parabolic and enter the result into Navidrome. Maybe as a feature you could add a Spotify to YT playlist creator somehow.

[–] SpatchyIsOnline@lemmy.world 4 points 5 months ago* (last edited 5 months ago)

Doing this is generally a bad idea, because audio exported from YouTube is pretty poor quality, and music videos often have bits of talking or silence that make sense in context of the video but aren't part of the actual song (designed to prevent exactly this). There was a cli tool I used last year that could download music from Spotify directly.

Edit: The tool I was talking about is Zotify

Make sure to set the --download-quality flag to very_high if you have premium to ensure it downloads in max quality

If you have long playlists (more than a few hundred songs), you should also use the --skip-previously-downloaded and --song-archive flags as per the docs to make sure you can start again from where you left off, as Spotify will start to rate-limit your connection and downloads will fail (if this happens, just kill the tool, wait a few minutes and start again)

[–] betsha1830@lemmy.world 2 points 4 months ago

That would be out of scope for this project. But maybe a YouTube to Navidrome playlist exporter that I might add in the future.

[–] M137@lemmy.world 3 points 5 months ago
[–] Pure_Psykosis@lemmy.ca 3 points 5 months ago

Thank you! This will probably get me to check out navidrome.

I have set up my music server and my problem is that Lidar can't download single songs only albums and artists. Or it can and I'm using it wrong, but to this day I haven't found the right setting and it frustrated me so much that I quit the project.

[–] pirateKaiser@sh.itjust.works 2 points 5 months ago (1 children)

I was meaning to build exactly this, beat me to it! Awesome stuff my guy/gal, thanks for sharing!

One thing I'm missing from local libraries is music discovery. Do you think a two way sync with Spotify to get recommendations from their engine is something you'd be interested in adding? I'm happy to create a pull request myself soon, a quick scan of their docs show they provide a get recommendations query.

[–] SpatchyIsOnline@lemmy.world 2 points 5 months ago (1 children)

Navidrome can scrobble to ListenBrainz which starts giving you recommendations playlists after a couple of weeks :)

[–] pirateKaiser@sh.itjust.works 1 points 4 months ago

Oh I need to read up on that, just started using it recently. Thanks

[–] Azzu@lemmy.dbzer0.com 2 points 5 months ago (1 children)

Didn't see it at the project site, what happens if it can not find a match?

[–] betsha1830@lemmy.world 1 points 4 months ago

It'll mark it as missing and moves to the next track to match. You can then download the missing tracks in your server as a JSON file.

[–] biggerbogboy@sh.itjust.works 1 points 5 months ago (2 children)

Is there a possibility of getting banned from Spotify for using this? Just wondering since this is really compelling, since I’ve always wanted to back playlists up just in case, but I don’t really wish to completely cut Spotify, since I quite like the playlists it builds to expand my library, snd there would also be the plus of being able to switch to navidrome if the Spotify site carks it like it seemingly loves to.

[–] betsha1830@lemmy.world 1 points 4 months ago

This is perfectly legal as far as I know. But if you're unsure you can always go through their terms of services.

[–] dabe@lemmy.zip 1 points 4 months ago

There’s almost no chance of getting banned for this. Spotify themselves provides the APIs that let you get metadata about your playlists and tracks, and setting up a developer account with them is petty easy.

It’s moreso a concern of Spotify eventually limiting/ratelimiting that data retrieval in the future… which is why you should back up now while you can!

[–] dabe@lemmy.zip 1 points 4 months ago* (last edited 4 months ago) (1 children)

Looks cool!

I’m curious about the ISRC matching. I’m working on bringing support for retrieval by ISRC in opensubsonic clients (and Navidrome tends to support the opensubsonic spec) but I didn’t think anyone actually added support yet since it was somewhat recently added to the spec.

I thought maybe it was a Navidrome specific feature to retrieve by ISRC, which would be cool!

But looking at what I think is the track matching algorithm for ISRC seems to just always return unmatched https://github.com/betsha1830/navispot/blob/main/lib/matching/isrc-matcher.ts

Am I just reading it wrong?

[–] betsha1830@lemmy.world 1 points 4 months ago

The main ISRC matching is done in the orchestrator.ts file within the same folder. Subsonic was difficult to work with when I tried to implement matching because the endpoint had a limited number of tracks it returns. So I ended using the native Navidrome search API to find the track by title and compares the ISRC. You can check out the file to have a better understanding. Feel free to reach out if you have any more questions.

[–] Decronym@lemmy.decronym.xyz 1 points 5 months ago* (last edited 4 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
FCC Federal Communications Commission
~ (Iron/steel) Face-Centered Cubic crystalline structure
HLS Human Landing System (Artemis)
Jargon Definition
Starlink SpaceX's world-wide satellite broadband constellation

3 acronyms in this thread; the most compressed thread commented on today has 16 acronyms.

[Thread #38 for this comm, first seen 28th Jan 2026, 12:30] [FAQ] [Full list] [Contact] [Source code]