Skip to content

Using TVDB for shows and TMDB for movies #1811

Description

@phirestalker

The Jellyfin Sink integration has two critical issues with metadata provider resolution:
1. Global Provider Toggle Breaks Movies: Setting jellyfin_sink_metadata_provider to
tvdb forces movie scrobbles to require TVDB IDs. Since Jellyfin movie libraries typically use
TMDB/IMDb, all movie scrobbles error out with No TVDB ID associated with this media.
2. Episode ID overrides Series ID: When item_type == "Episode", Ryot checks payload. item.provider_ids before payload.series.provider_ids. For shows with episode-level provider
IDs, Ryot attempts to look up the show using the episode's ID (e.g. TMDB Episode 153637
instead of Series 2190), causing watches to attach to completely wrong shows (or fail on
TVDB).

Expected Behavior

  1. For item_type == "Episode", Ryot should prioritize payload.series.provider_ids over
    payload.item.provider_ids.
  2. Ryot should allow TVDB for TV Shows and TMDB for Movies (or fall back gracefully to TMDB
    if TVDB ID is missing on movies).

Code Location

In crates/services/integration/src/sink/jellyfin.rs:

  • When payload.item.item_type == "Episode", it should extract the show ID from payload.series.as_ref().and_then(|s| s.provider_ids...) first.
  • For movies (item_type == "Movie"), it should fall back to TMDB if TVDB is unavailable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions