I am using a Jellyfin server and when I mark tracks as favorites on the Jellyfin app then they don’t automatically appear also as favorites in Symfonium. So it seems the favorite flags do not get synced on its own, but only after I issued a manual sync.
Is this expected behavior that a manual sync is needed to synchronize favorites flags?
Also, similar question for other operations like:
Adding library items
Editing library items
Removing library items
Will such events be detected and synced automatically or is a manual sync needed?
Thanks alot.
Logs:
Upload description: vbs_sync
Additional information:
Reproduction steps:
Launch Jellyfin app
Mark a track as favorite
Start Symfonium and check if favorite status has been synced to mobile
Interesting is that the Jellyfin Android app manages to instantly show new favorites without additional user interaction. But of course I don’t know how they are doing it.
Also, for proper syncing on Kodi, there is a Jellyfin server plugin:
When starting Kodi it seems to somehow use the plugin to only sync the data since the last sync. So that might exactly what you meant by “differential API”. But I don’t know if it would be possible to also make use of that server plugin for Symfonium.
It looks like it adds a new API endpoint to just get the library items since the last sync:
No idea how the Jellyfin Android app does it as it does not need such a plugin.
The Jellyfin app does not work offline so well they only display the data from the server.
I can’t rely on an external plugin that can stop being maintained at any moment and I do not have the ressources to build such plugin, especially for Jellyfin and how they handle things.
Ok, that’s a pity, as doing manual full-syncs to get favorites updated takes quite some time on a big library. As Kodi seems to be quite a prominent and important Jellyfin client, I don’t except it to go away anytime soon (hopefully). It is an “official” plugin in the main Jellyfin repo. But sure, I understand supporting that is quite a special case. Thanks anyway.
Even if it was maintained it’s still a special plugin maintained by outsider for a specific need, they can change API anytime they want without any consequences for them.
It’s not a public API it’s not stable I can’t rely on that.
Out of curiosity: is there a provider that does have proper differential API?
It always feels a bit like a waste to let my phone sync for 50 minutes when all that’s changed in my music library are 15 albums.
The Kodi Sync Queue plugin seems properly versioned and latest version (v9) is two years old.
I don’t think they would randomly change the API as it would break compatibility with existing Kodi installations that are running the Jellyfin plugin.
So, users would have to update both the Sync Queue Plugin and also the Kodi Plugin on their installations.
But I think this is similar to other providers also: if e.g. Navidrome would decide to change their API then also Symfonium (and other clients) and the user installations would have to be updated.
If Kodi Sync Queue is feasible to use also for non-Kodi applications, then I think it would be a nice option. “Nice” in the sense that it is already there, tested and working.
Navidrome API is public as to be used by other apps there’s unofficial rules about how to handle such API.
That plugin expose something private for consumption by something private. They can do whatever they want, drop support, change everything, use completely different data, they do not have to justify or balance any of their decision, they can perfectly say update both plugins and no one can say hey I use your API for something else what now?
So stop arguing I will not use a non public API for something as sensitive as library sync …