Skip to content

feat(omdb): add OMDb integration for movies and TV shows#1970

Open
Arny80Hexa wants to merge 5 commits intoKomet:masterfrom
Arny80Hexa:feat/omdb-integration
Open

feat(omdb): add OMDb integration for movies and TV shows#1970
Arny80Hexa wants to merge 5 commits intoKomet:masterfrom
Arny80Hexa:feat/omdb-integration

Conversation

@Arny80Hexa
Copy link
Copy Markdown
Contributor

Summary

Add OMDb (Open Movie Database) as a new scraper for both movies and TV shows. OMDb is the only source that provides Rotten Tomatoes ratings, making it a valuable addition especially as a sub-scraper in the Custom Scraper.

Fixes #1962

Features

Movie Scraper:

  • Search by title (with automatic year extraction, e.g. "Inception 2010")
  • Direct lookup by IMDB ID
  • Metadata: title, plot, director, writer, actors, genres, countries, runtime, certification, poster
  • Ratings: IMDB, Rotten Tomatoes, and Metacritic in a single API call
  • Works as standalone scraper and as Custom Movie Scraper sub-scraper

TV Scraper:

  • Show search, show details, season episode listing, individual episode details
  • Integrated into Custom TV Scraper (show, season, and episode dispatch)
  • Shares the same API key — users only configure it once

UX:

  • Personal API key configuration via settings UI (free: 1,000 requests/day from omdbapi.com)
  • Clear error message when searching without API key
  • Inline warning in Custom Scraper settings when OMDb is selected but no key is configured

Limitations

  • English only (OMDb has no localization)
  • Only 3 actors per title (OMDb API limit, no roles)
  • No images beyond one poster (high-res requires OMDb Patreon)
  • OMDb provides BoxOffice and Awards data, but MediaElch has no corresponding fields yet (tracked for follow-up)
  • Custom TV Scraper integration requires hardcoded dispatch — see refactor(custom-tv-scraper): dynamic scraper discovery instead of hardcoded list #1968 for a proposed refactoring to dynamic discovery

Testing

  • 688 unit test assertions passing
  • 47 scraper test assertions covering: movie search, movie details, TV search, TV show details, season episodes, single episode details
  • Manually tested: standalone scraper (movie + TV), Custom Movie Scraper, Custom TV Scraper, API key validation warnings

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

@Arny80Hexa Arny80Hexa requested a review from bugwelle as a code owner March 20, 2026 17:16
Copy link
Copy Markdown
Collaborator

@bugwelle bugwelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I only had a quick glance, but this looks just like what I had in mind. Awesome! :)

I will need some time to go through this change.

Could you double check that you've run ./scripts/quick_checks.sh?

Christoph Arndt and others added 5 commits March 25, 2026 07:21
Add a new movie scraper using the OMDb API (omdbapi.com). OMDb provides
movie metadata including ratings from IMDB, Rotten Tomatoes, and
Metacritic in a single API call.

Features:
- Search by title with optional year extraction (e.g. "Inception 2010")
- Direct lookup by IMDB ID
- Full metadata: title, plot, director, writer, actors, genres,
  countries, runtime, certification, poster
- Three ratings in one call: IMDB, Rotten Tomatoes, Metacritic
- Works as standalone scraper and as Custom Movie Scraper sub-scraper
- Personal API key configuration via settings UI

Requires a free personal API key from omdbapi.com (1,000 requests/day).

Relates to Komet#1962

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add TV show scraper using the shared OMDb API client. Supports show
search (by title or IMDB ID), show details, season episode listing,
and individual episode details.

Integrate OMDb TV into the Custom TV Scraper so it can be selected
as a sub-scraper for individual fields (e.g. ratings). The IMDB ID
resolved by TMDb is passed directly to OMDb for precise lookups.

Modified Custom TV Scraper dispatch logic (CustomShowScrapeJob,
CustomSeasonScrapeJob, CustomEpisodeScrapeJob) to invoke OMDb
alongside the existing IMDB and TMDb scrapers.

Shares the same API key setting as the movie scraper — users only
need to enter their OMDb API key once.

Relates to Komet#1962

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Show a clear error message when OMDb is used without an API key:

- OmdbApi: reject requests early with a descriptive error instead
  of sending a request with an empty key
- Custom Movie/TV Scraper settings: show inline warning label when
  OMDb is selected but no API key is configured. Warning appears
  immediately on settings load and updates when selections change.
  Separate labels per tab (show details vs episode details).

Also extend TV scraper tests with season and episode scrape tests.

Relates to Komet#1962

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Arny80Hexa Arny80Hexa force-pushed the feat/omdb-integration branch from ee0b93b to baa5ca5 Compare March 25, 2026 06:30
@Arny80Hexa
Copy link
Copy Markdown
Contributor Author

Rebased on current master and ran both ./scripts/run_clang_format.sh and ./scripts/quick_checks.sh — all 5 checks pass. Also did another full diff review, everything looks clean.

(Needed to install cmake-format and shellcheck locally first — good catch!)

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.

Support OMDB

2 participants