Python client for looking up disc content metadata from dvdcompare.net — an invaluable resource for the physical media community that catalogs per-disc content breakdowns across regional releases.
Disclaimer: This project is not affiliated with dvdcompare.net. All disc content data is owned by and sourced from dvdcompare.net. Please use responsibly and respect their servers.
pip install -e ".[dev]"
Search by title:
dvdcompare "Oppenheimer"
Look up by dvdcompare film ID:
dvdcompare --id 66397
Look up by URL:
dvdcompare --url "https://www.dvdcompare.net/comparisons/film.php?fid=66397"
Each dvdcompare page lists multiple regional releases (e.g. America, United Kingdom, Japan), each with its own disc contents and runtimes. By default, the CLI shows only the first release listed.
--releaseselects a release by position (1-based) or by name keyword (case-insensitive substring match):If no release matches the keyword, the available release names are printed so you can retry.dvdcompare --id 67210 --release 2 dvdcompare --id 67210 --release america dvdcompare --id 67210 --release "united kingdom"--all-releasesshows every release:dvdcompare --id 67210 --all-releases--jsonoutputs the data structure (respects--releasefiltering):dvdcompare --id 67210 --json dvdcompare --id 67210 --release america --json
For more complex filtering, pipe the JSON output through jq or PowerShell:
jq:
dvdcompare --id 67210 --json | jq '.releases |= map(select(.name | test("america"; "i")))'PowerShell:
dvdcompare --id 67210 --json | ConvertFrom-Json | ForEach-Object {
$_.releases = $_.releases | Where-Object { $_.name -match "america" }
$_ | ConvertTo-Json -Depth 10
}FilmComparison: top-level object with title, year, format, director, IMDB info, and a list ofReleaseobjects.Release: a regional release with name (e.g. "Blu-ray ALL America - BBC"), year, and a list ofDiscobjects.Disc: a single disc with number, format (e.g. "Blu-ray 4K"), and a list ofFeatureobjects.Feature: a bonus feature with title, runtime, type, year, technical notes, play-all flag, and optional children (for grouped features like "Making Of" collections or episode groups).
py -m pytest tests/ -v