Skip to content

Use season/episode TVDB IDs from path when available#239

Open
IDisposable wants to merge 1 commit into
jellyfin:masterfrom
IDisposable:feature/season-provider-id-from-path
Open

Use season/episode TVDB IDs from path when available#239
IDisposable wants to merge 1 commit into
jellyfin:masterfrom
IDisposable:feature/season-provider-id-from-path

Conversation

@IDisposable
Copy link
Copy Markdown
Contributor

@IDisposable IDisposable commented Mar 26, 2026

When the Jellyfin core resolvers parse a provider ID from a folder or file name (e.g. Season 1 [tvdbid-12345]), the ID is now stored in the item's ProviderIds before metadata providers run.

This change makes the TVDB plugin use those stored IDs (which also can be changed in metadata edit) directly rather than always requiring a full series lookup.

  • TvdbSeasonProvider: use season ID directly if present; only fall back to series lookup when no ID is available. Removes the IsAutomated re-fetch so that path-supplied IDs are always honoured (see PR notes).

  • TvdbSeasonImageProvider: use season ID directly to skip the series fetch for the primary season; lazy-fetch the series only when needed for the official-order artwork fallback.

  • TvdbEpisodeProvider: same pattern for episodes; removes IsAutomated re-fetch.

  • TvdbEpisodeImageProvider: use episode ID directly to skip the expensive GetEpisodeTvdbId series+number lookup.

Note: removing the IsAutomated re-fetch means that changing a series' display order will no longer automatically update stored season IDs. Users would need to manually clear the TVDB ID from affected seasons to force re-discovery. This is an intentional trade-off to ensure path-supplied IDs are always respected.

This builds on the Main Jellyfin PR #16472

When the Jellyfin core resolvers parse a provider ID from a folder or
file name (e.g. `Season 1 [tvdbid-12345]`), the ID is now stored in
the item's ProviderIds before metadata providers run. This change
makes the TVDB plugin use those IDs directly rather than always
requiring a full series lookup.

- TvdbSeasonProvider: use season ID directly if present; only fall back
  to series lookup when no ID is available. Removes the IsAutomated
  re-fetch so that path-supplied IDs are always honoured (see PR notes).
- TvdbEpisodeProvider: same pattern for episodes; removes IsAutomated
  re-fetch.
- TvdbSeasonImageProvider: use season ID directly to skip the series
  fetch for the primary season; lazy-fetch the series only when needed
  for the official-order artwork fallback.
- TvdbEpisodeImageProvider: use episode ID directly to skip the
  expensive GetEpisodeTvdbId series+number lookup.

Note: removing the IsAutomated re-fetch means that changing a series'
display order will no longer automatically update stored season IDs.
Users would need to manually clear the TVDB ID from affected seasons
to force re-discovery. This is an intentional trade-off to ensure
path-supplied IDs are always respected.
@IDisposable IDisposable force-pushed the feature/season-provider-id-from-path branch from 517d647 to 228f7b3 Compare March 26, 2026 03:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants