Jellyfin: Favorites not being automatically synced?

Issue description:

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:

 

  1. Launch Jellyfin app
  2. Mark a track as favorite
  3. Start Symfonium and check if favorite status has been synced to mobile

 

Media provider:

Jellyfin

Screenshots:

     

It requires manual sync, Jellyfin does not have a proper differential API.

Hm okay, thanks.

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. :upside_down_face:

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.

For the moment only Kodi. But I hope to find time to build something for OpenSubsonic and have LMS/Navidrome on board at least :slight_smile:

1 Like

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.

Again private API != public API …

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 …

I’m looking forward to stresstesting it when that time comes. :wink:

Would it help if I file a feature request on Jellyfin to officially integrate this Kodi Sync API or provide another differential API extension?

If you believe in miracles :slight_smile: But don’t mention Symfonium, for some I’m pure evil to dare support Jellyfin.

Feel free to upvote to make miracle happen: Add a "Differential" API (Like Kodi Sync Queue) · Jellyfin Feature Requests

Other options are to convince Tolriq to make Symfonium open source or to make him implement a plugin API, so things like this can be added externally :stuck_out_tongue:

Don’t be a revolutionary/start an insurrection/organize a union/revolt against the King. You might lose your license for life.