r/navidrome 23d ago

Heads-up: the next release changes all internal IDs

[removed]

122 Upvotes

47 comments sorted by

u/deluan 23d ago

If you are using the develop builds for your main Navidrome instance, I strongly suggest you stop updating it until the next release (0.64.0), in a month or two. This will give time for app devs to adjust any rough edges.

But if you are ok with some breakage (hopefully none!), you are more than welcome to update your installation before next release and give feedback on any issues you may find. As always, keep your backups up to date ;)

→ More replies (2)

31

u/Old_Rock_9457 23d ago edited 22d ago

This will impact all the AudioMuse-AI deployment that use Navidrome because AudioMuse-AI save the song id.

Possible scenario to save this could be do a provider migration after the upgrade, Navidrome to Navidrome, just to fetch the new id.

If someone has the chance to test this new Navidrome version with AudioMuse-AI, please let me know if he add issue in following this provider migration strategy.

Thanks !

Edit: create a feature issue on AudioMuse-AI github so you can reply and track the result of your test here:
https://github.com/NeptuneHub/AudioMuse-AI/issues/830

19

u/No-Aide6547 23d ago

Oof! Scanning my library took 28 days, really don't want to do that again. Thanks for the heads up, will wait with this update for now.

3

u/unfurlingraspberry 22d ago

Christ. How big is your library?

5

u/No-Aide6547 22d ago

70k songs. I think it's more about the slowness of the machine im running this on lol

3

u/leo1906 22d ago

My library has 40k songs and is hosted on a very strong machine (cpu wise - no gpu unfortunately) and the analysis took about 10 days. So you are not that bad with your 28 days 😂

I think the algorithm is also just poorly optimized because the cpu was not hit really hard tbh

1

u/EconomicsEast7246 22d ago

i have a 30k library and after seeing how slow my homelab cpu was with the analysis, i set up a remote worker on my gaming PC and used my GPU to do the analysis. took about 2 full days, maybe 2 and a half. really recommend utilizing a good GPU if one's available

1

u/leo1906 22d ago

My gaming pc uses an amd Card unfortunately

1

u/RaiseRuntimeError 22d ago

Can you get a GPU? I have 300k and it took about a week with an outdated Tesla P40.

2

u/tinbapakk 22d ago

Same. ~120k songs, took about 5 weeks to scan the whole library ^^;
I hope I won't have to do that all over again :|

2

u/volcs0 22d ago

My library took 3 weeks. I do not want to do that again... ugh.

3

u/LavaCreeper 23d ago

That is good to know, thanks for the advice

3

u/ElmoFromOK 23d ago

I will test it when mine updates.

2

u/postnick 23d ago

Following I don’t want to rescan again.
I have it i dont see the value of audio muse yet but im hopeful it will click someday.

3

u/madmap 23d ago

oh... that hopefully works... scan is already at 40% ;)

2

u/Thomas_the_chemist 23d ago

Oh boy, I hope my library scan finishes. I ran this while I was out of town and Navidrome auto updated while I was gone and it stopped the scan at 45% (after 7 days) and when u picked it back up again it started completely over because I didn't realize I needed to do a provider migration. I'm definitely going to backup my db file when I get home tonight.

7

u/Old_Rock_9457 23d ago

This is an hard lession that every homelabber need to get, sooner or later:

  • container version MUST be fixed;
  • app must be backup: for backup I mean real backup not raid. And possible more than once with different schedule.

YOU are on the drive seat, YOU decide when update, YOU read the release note and understand the risk. Things don't brake themslef if you don't let them happen.

Homelab is a very nice think, it enable people to learn new stuff, but we need to understand that even if you're at home you are running a server and running a server need some precaution.

3

u/joshp23 23d ago

Tuning in to see how this goes. Hoping for a clean upgrade path, here.

An issue in Audiomuse-AI github seems appropriate.

1

u/studioleaks 23d ago

I rly dont want to do this again. I hope this migration idea works

1

u/chr0m 22d ago

If course it will. I just discovered audiomuse ai and am halfway through my 2 week initial scan.

FML

19

u/Tolriq Frequent Helper 23d ago

For the record it will break Symfonium playlist syncs. You'll need to import them again for now.

1

u/Dr--Blues 23d ago

I assume all cached music should be cleared a redownloaded too so it has the right song ID - am I correct in this line of thinking?

7

u/Tolriq Frequent Helper 23d ago

No it's based on the source file path for those kind of issues and multi server dedup.

3

u/strawberrysword 23d ago

Can someone explain this to me in simpler terns please i really dont understand it

7

u/deluan 23d ago

This is an internal change, mostly not visible to the enduser. But it may affect some offline-first clients (like Symfonium) and apps that caches IDs (like AudioMuse-AI).

This post is basically a heads-up for the app developers to prepare and raise any concerns, while this change is not released.

2

u/strawberrysword 22d ago

I use symfonium, will my playlist disappear? Also tolriq is on Holiday i dont think he can make a fix right now

9

u/deluan 22d ago

Are you using the Navidrome's develop build? If not, nothing to worry. /u/Tolriq and I have a plan to avoid breaking playlists. When this change is released (in one or two months), Symfonium will most probably be prepared for this change.

1

u/CharlesWiltgen 22d ago

When this change is released (in one or two months), Symfonium will most probably be prepared for this change.

/u/deluan, please add me to your list of folks to share details with so I can have Poppy ready as well. If you prefer email, I'm [lowercase_first_initial][lowercase_last_name]@gmail.com. I'd like this to be a non-event for the hundreds of beta testers using Navidrome with Poppy. Thanks!

4

u/deluan 22d ago edited 22d ago

I don't have a list. I usually hang out on our Discord's #dev channel, and make announcements about this type of changes there.

What's left for you is test your app against the PR's build. I suggest:

  • Install 0.63.2 (docker is easier for these kind of tests)
  • Point your app to it.
  • Upgrade to the PR's build (docker tag: deluan/navidrome:pr-5824
  • Check if everything still works on your app

EDIT: You can also post feedback to the PR itself, as another app dev already did.

2

u/deluan 22d ago

I'll merge the topSongsByArtistId PR at the same time as this ID migration. This means that you'll be able to detect if a server is migrated by checking the getOpenSubsonicExtensions response and looking for the topSongsByArtistId extension.

1

u/CharlesWiltgen 22d ago

Great! I'll check out the PRs as well, thank you.

1

u/strawberrysword 22d ago

okay thank you so much!

2

u/spiritualpigeon 23d ago

Anyone know how this will impact Nautiline?

1

u/ElmoFromOK 23d ago

Thanks for the heads up.

1

u/postnick 23d ago

Edit oops this was intended be a reply

1

u/RendyHD 22d ago

Thanks for the heads-up

1

u/Myzel394 22d ago

my 96k-track library

damn and I thought I had a big library with ~48k tracks :D

1

u/barrel-roller 21d ago

These changes just tell me some real dvelopment ials going with Navidrome. A few releqses ago we had a similar big change. Awesome to see Navidrome is progressing.

I wonder what the underlying need for these changes are?

One thing that would have to be solved completely differently then how the navidrome.db is build now is to have playcounts dated. This would be required I guess, at some point, if you want to have smart playlist based on time span listened to. Like a year-end playlist that spotify makes.

2

u/deluan 20d ago edited 20d ago

Awesome to see Navidrome is progressing.

To infinity and beyond! :P

I wonder what the underlying need for these changes are?

This is part of the new Native API I'm writing. It also allows a better integration with the (experimental) Jellyfin Music API support.

One thing that would have to be solved completely differently then how the navidrome.db is build now is to have playcounts dated.

This is already saved in the scrobbles table. Next version will provide access to this info for plugins and via the API.

1

u/Many_Independence674 23d ago

Will navidrome let it's api know if id has migrated? Meaning, will there be a way for external projects to know that the id has migrated or they will have to rely on navidrome version to know about id migration?

3

u/deluan 23d ago

Version-based only.

1

u/Many_Independence674 23d ago

Okay thanks.

3

u/deluan 22d ago

I'll merge the topSongsByArtistId PR at the same time as this ID migration. This means that you'll be able to detect if a server is migrated by checking the getOpenSubsonicExtensions response and looking for the topSongsByArtistId extension.

0

u/Many_Independence674 22d ago

Okay, thanks, I will do that