No description
| data | ||
| MAL-Dubs@5e9ebf7801 | ||
| .gitignore | ||
| .gitmodules | ||
| config.json.example | ||
| exclusions.txt | ||
| media_dub_report.py | ||
| media_dubs.db | ||
| missing_dubs_report.json | ||
| missing_dubs_report.md | ||
| README.md | ||
| requirements.txt | ||
Sonarr Dub List
A tool to identify anime in your Sonarr/Radarr collection that has English dubs available but you only have the Japanese audio version.
Features
- Compares your media collection against MAL (MyAnimeList) dubbed anime database
- Identifies episodes/movies missing English dub tracks
- Excludes Season 0 (specials/OVAs) which are often not dubbed
- Supports exclusion list for series with partial dubs
- Uses fuzzy matching with similarity scoring to avoid false positives
- Generates detailed reports in JSON and Markdown formats
Setup
-
Install dependencies:
pip install -r requirements.txt -
Configure credentials:
cp config.json.example config.json # Edit config.json with your Sonarr/Radarr API keys and URLs -
Data sources:
- MAL anime data is downloaded into
data/directory (one JSON file per anime) - Community dub list is in
MAL-Dubs/data/dubInfo.json(4800+ dubbed anime)
- MAL anime data is downloaded into
Usage
# Full run - fetch from Sonarr/Radarr and generate report
python3 media_dub_report.py
# Quick run - use cached data from previous run
python3 media_dub_report.py --skip-api-fetch
# Adjust matching thresholds
python3 media_dub_report.py --min-score 5 --min-similarity 0.5
Command Line Options
--skip-api-fetch- Use existing database, don't reload from Sonarr/Radarr--min-score <float>- Minimum FTS score to accept a match (default: 5.0)--min-stdev <float>- Minimum score standard deviation (default: 0.0, higher = more confident)--min-similarity <float>- Minimum edit distance similarity 0-1 (default: 0.0, higher = stricter)--db-path <path>- SQLite database path (default: media_dubs.db)
Exclusions
To exclude series with partial dubs (e.g., Detective Conan - only first 130 episodes dubbed):
-
Find the Sonarr ID:
sqlite3 media_dubs.db "SELECT sonarr_id, title FROM sonarr_series WHERE title LIKE '%YourSeries%'" -
Add to
exclusions.txt:841 # Detective Conan - partial dub
How It Works
-
Data Loading:
- Loads MAL anime metadata from
data/*.json - Fetches your collection from Sonarr/Radarr APIs
- Checks language tracks for each episode/movie file
- Loads MAL anime metadata from
-
Title Matching:
- Uses FTS5 (Full-Text Search) for initial candidate matches
- Calculates edit distance similarity after normalization
- Sorts by similarity first (prefer exact matches), then FTS score
- Filters by configurable thresholds
-
Report Generation:
- Lists episodes with files but missing English audio
- Excludes Season 0 (specials/OVAs)
- Excludes series in exclusions list
- Outputs to
missing_dubs_report.mdandmissing_dubs_report.json
Output
The markdown report includes:
- Summary statistics
- Match quality scores for transparency
- Collapsible tables showing top 10 candidate matches
- Clickable MAL links for verification