Automatic Playlist Sync Support for Read/Write Playlists

Saw that this was implemented today. Great! The only obvious problem with it that I have discovered is that it only works reliably if you only add songs from the phone app. Which somewhat defeats the point of such a feature. What I mean is that if you add songs from another client, say on my PC. It wont be immediately updated on my phone, which is a problem if I then add a song from my phone, which will override the song added from my PC client.

It is immediately updated from the server on play or on display if the server is online and returns a last modified value for the playlist.

If it does not return such value, Symfonium throttle the sync to avoid endless repetitive syncs. So if your server does not return the value, and you just displayed it it won’t sync another time before 5 or 15 minutes. You are doing tests so not a real use case.

I’m not sure why my server wouldn’t return such a value if it is supposed to? I honestly don’t think there’s anything wrong with the server, but I could be wrong.

Anyways, wouldn’t it atleast be a good idea to sync the playlist to the server right before adding a new song though?

Since I can’t guess your server or anything open an issue with logs and necessary details.

Hey, tres bien, I’m looking forward to trying it out.

I have version 5.3.1, and the Google Play store doesn’t show me an available update. It says the ā€œBeta programme is fullā€, so I guess I have to wait until the feature makes it way into a normal version - or is there a way of getting into the beta programme?

If it’s full you have to wait for a spot but this is strange Play Console says there’s like 150 free spots …

I just tested this with v5.7, and it works perfect (with Navidrome) :smiley:
Therefore, I just bought the app :sunglasses:

1 Like

@Tolriq in order to achieve auto-sync for offline-first playlists, what exactly do you need from the server? Is it a timestamp for the changes to the playlist? Or something more?

This is just not possible as soon as there’s changes made on both sides.

I beg to disagree :slight_smile: conflict resolution between edits made offline on both the client and the server is a common problem, and there are ways to address it.

For example:

  • track removed from either client or server => gets removed from the other when synced
  • track added on either client or server => gets added to the other when synced
  • track edited on both client and server (rating, favorite status, metadata) => latest change supersedes other changes
  • playlist edited on both client and server (renamed, rules, etc) => latest change supersedes other changes

Alternatively, users could decide ahead of time ā€œin case of conflict, server changes always supercede client changesā€ or ā€œin case of conflict, client changes always supercede server changesā€.

ā€œOne side supersedes the other side’s changesā€ is the simpler solution, but it’s also possible to let the user reconcile conflicts by reviewing them and deciding which one to keep (though I think it would be overkill for the Symfonium/Navidrome use case)

Then write your own client, discover the limitations of the Subsonic API and the difference between all the servers, implement your solution and deal with support from many users who don’t understand conflict resolution …