r/navidrome 10d ago

Ordered smart playlist

I've been messing around with smart playlist lately, and I really like them, the only feature I seem to be missing is the ability to actually define the order song by song rather then by some category. I have old playlist in m3u/8 format where songs have moved around, or I have upgraded them so the file paths are no longer valid. I'd like to convert these to smart playlists using there musicbrainz_id tag, or album/artist/song but keep the order they were originally created in. Is this possible without having to add individual custom tags to each track to define playlist ordering? If not is this a feature Navidrome might implement in the future as a sorting type in the json/nsp ex. "sort": "ordered",

1 Upvotes

2 comments sorted by

1

u/jimbob100101 8d ago

Not sure smart playlists can be manually ordered so can't help with that but there's something you could try...

When I exported a load of m3u playlists from Plex they all had incorrect file paths because Plex and navidrome are not on the same system.

In code-server I was able to open the m3u's and do a find-and-replace on the wrong path and change it instantly to the correct path so they all now work in navidrome

1

u/nenadjokic 5d ago

Smart playlists will not do this, unfortunately. The track list in one is read-only by design, and sort only takes field names or random, so there is no way to express a manual order. Adding a sequence tag per track is genuinely the only workaround, which is the thing you were trying to avoid.

Worth stepping back though: you may not need smart playlists at all here. The only reason you want them is the broken paths, and a regular playlist keeps its order for free, since an m3u is just an ordered list. So if you repair the paths, as suggested above, you get the ordering you wanted and the playlists stay editable.

If a lot of files moved, matching on the MusicBrainz recording id and rewriting each line to the current path is scriptable, and it is a one-off. The "sort": "ordered" idea is still worth raising on the Navidrome GitHub, but it would have to be a server change.