Skip to content

feat(fanart-tv): improve TV show support and add fallback mechanism#1985

Open
Arny80Hexa wants to merge 1 commit intoKomet:masterfrom
Arny80Hexa:feat/custom-tv-fanart-images
Open

feat(fanart-tv): improve TV show support and add fallback mechanism#1985
Arny80Hexa wants to merge 1 commit intoKomet:masterfrom
Arny80Hexa:feat/custom-tv-fanart-images

Conversation

@Arny80Hexa
Copy link
Copy Markdown
Contributor

Summary

  • TV show search: TheTvDb → TMDb — FanartTv's TV show search now uses TMDb instead of the deprecated TheTvDb scraper, with automatic TvDbId resolution via TMDb external_ids (FanartTv's TV API requires TvDbIds)
  • Custom TV Scraper integration — FanartTv is now available as an option for image fields (Banner, Poster, Fanart, Thumb, SeasonPoster, SeasonBanner, SeasonThumb, ExtraArts) in the Custom TV Scraper settings, with full dispatch wiring so selections actually trigger FanartTv loading
  • Fallback checkbox — New "Use as fallback for missing images" setting in FanartTv configuration. When enabled, FanartTv automatically fills in any missing images after scraping, regardless of which scraper is configured. Works for both movies and TV shows.
  • Movie ID resolution — Movies without a TMDb/IMDB ID (e.g. scraped via VideoBuster) now get their TMDb ID resolved automatically via title search before querying FanartTv

Fixes #1982

Limitations

  • FanartTv does not provide season backdrops or extra fanarts for TV shows — these fields are not offered in the Custom TV Scraper dropdowns
  • FanartTv's TV API only accepts TvDbIds; shows without a TvDbId mapping in TMDb will appear in search results but return no artwork

Test plan

Automated:

  • Unit tests passing (688 assertions)
  • Integration tests passing
  • Scraper tests: same results as master (21 pre-existing failures)
  • Pre-push checks: clang-format + quick_checks all passing

Manual — Movies (VideoBuster single scraper):

  • Fallback off → only scraper images, rest empty
  • Fallback on → all FanartTv images filled (Logo, ClearArt, CdArt, Banner, Thumb)
  • TMDb ID auto-resolved when not available (verified in logs)
  • Manual image dialog: FanartTv available for all fields

Manual — TV Shows (TMDb TV single scraper, "Travelers"):

  • Fallback off → only TMDb images (Poster, Fanart)
  • Fallback on → Logo, ClearArt, CharacterArt, Banner, Thumb filled automatically
  • Season banner/poster/thumb from FanartTv
  • Episodes correctly skip FanartTv (no episode-level images in API)
  • FanartTv search via TMDb working in manual image dialog

Manual — Settings:

  • Fallback checkbox visible, German translation, tooltip working
  • Setting persists across restart
  • Custom TV Scraper dropdowns show FanartTv for image fields

Developed with AI assistance (Claude Code / Opus 4.6).

Replace TheTvDb-based TV show search with TMDb, resolving TvDb IDs via
TMDb external_ids API. This removes the dependency on the deprecated
TheTvDb scraper for FanartTv image browsing.

Add season banner parsing (seasonbanner) which was previously not
implemented despite being available in the FanartTv API.

Add FanartTv as an image source option in Custom TV Scraper settings
for all supported image fields (poster, fanart, banner, thumb,
clearart, logo, characterart, season poster/banner/thumb).

Add "Use as fallback for missing images" checkbox in FanartTv scraper
settings. When enabled, FanartTv automatically fills missing images
after scraping — for both movies and TV shows — regardless of which
scraper is configured. For movies, TMDb ID is auto-resolved via title
search when not available. For TV shows, the existing FanartTv image
loading mechanism is extended to always run when the fallback is
enabled.

Add German translations for the new UI strings.

Fixes Komet#1982

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Arny80Hexa Arny80Hexa requested a review from bugwelle as a code owner March 25, 2026 11:46
@kolbdog323
Copy link
Copy Markdown

You shouldn't remove tvdb all together since not all banners are on fanart.tv they only exist on tvdb same with season posters

@Arny80Hexa
Copy link
Copy Markdown
Contributor Author

Hi @kolbdog323,

Thanks for the feedback! To clarify: this PR does not remove TheTvDb. It only changes how FanartTv's internal TV show search works — from using TheTvDb to TMDb for finding shows and resolving TvDb IDs.

TheTvDb Images is still available as an image provider in the manual image dialog, so you can still browse and pick banners/season posters from TheTvDb there.

The deprecation of TheTvDb as a metadata scraper was a separate decision by the maintainer (see #1120) and is not part of this PR.

@kolbdog323
Copy link
Copy Markdown

kolbdog323 commented Mar 25, 2026

Hi @kolbdog323,

Thanks for the feedback! To clarify: this PR does not remove TheTvDb. It only changes how FanartTv's internal TV show search works — from using TheTvDb to TMDb for finding shows and resolving TvDb IDs.

TheTvDb Images is still available as an image provider in the manual image dialog, so you can still browse and pick banners/season posters from TheTvDb there.

The deprecation of TheTvDb as a metadata scraper was a separate decision by the maintainer (see #1120) and is not part of this PR.

Sorry about that it just sounded like it the way it worded

@Arny80Hexa
Copy link
Copy Markdown
Contributor Author

No worries! Your concern is absolutely valid — as a user, you don't want features to break after an update. That's exactly the kind of feedback that keeps PRs honest. In this case nothing is removed, only added, but it's good that you flagged it.

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.

feat(fanart-tv): improve TV show support — Custom Scraper integration, season banners, TMDb search

2 participants