Adds lib/sub-a7d-fetch.py: free, no-daily-cap path via subliminal's addic7ed provider (anonymous). Uses OpenSubtitles REST search-only (no quota cost) to translate library S/E to the show's primary catalogue numbering, then drives subliminal to download from Addic7ed and writes sidecars direct to nullstone via SSH. Picker quirks: subliminal series-name matcher is broken by '!' in the title, so the script strips it before building the synthetic Video.fromname() string. OS feature_details S/E happens to align with Addic7ed's indexing for the test show (American Dad). Recipe README now reflects three paths in cheapest-first order: v3 Addic7ed, v2 OS REST (20/day), v1 plugin. American Dad run log updated to 49/58 (S01 7/7 v1, S02 16/16 mixed v2/v3, S03 16/19 v3, S04 10/16 v3). 9 misses identified, deferred to next OS REST quota window.
110 lines
5.9 KiB
Markdown
110 lines
5.9 KiB
Markdown
# Subtitle run — `American Dad! (2005)`
|
||
|
||
Recipe version: v1 (S01) → v2 (S02E01–E12) → v3 Addic7ed (S02E13–E16, S03, S04)
|
||
Run date: 2026-05-09
|
||
Operator: Claude Code @ onyx session, ai-lab cwd
|
||
OS REST quota usage: 20 → 1 (19 downloads, quota-counted)
|
||
Addic7ed downloads: 30 (anonymous, no daily cap)
|
||
|
||
## Source
|
||
|
||
| Field | Value |
|
||
|---|---|
|
||
| Episodes | 58 (S01=7, S02=16, S03=19, S04=16) |
|
||
| Container | mkv |
|
||
| Video | HEVC Main10, 1440×1080, 23.98 fps, 4:3 SAR 1:1 |
|
||
| Audio | `eng` AAC stereo (default) + `eng` AC3 5.1 |
|
||
| Embedded subs | none |
|
||
| Existing sidecars | none |
|
||
|
||
Library uses Hulu/DSP season ordering (S1=7 eps). Original Fox order has S1=23 eps.
|
||
|
||
## Series + library context
|
||
|
||
- Series Id: `3b3bc999e9107f1a7643ac45d6427fee`
|
||
- Library: `767bffe4f11c93ef34b805451a696a4e` (TV Shows, `/media/tv`)
|
||
- Library options: `SaveSubtitlesWithMedia=true`, `SubtitleDownloadLanguages=["eng"]`, `RequirePerfectSubtitleMatch=false` ✓
|
||
- Plugin: Open Subtitles v20.0.0.0, Active, creds `Caveman5` valid
|
||
|
||
## Outcome
|
||
|
||
| Season | Eps | Subs fetched | Quality sample | Notes |
|
||
|---|---|---|---|---|
|
||
| S01 | 7 | 7 / 7 | not yet visually verified by playback (TODO) | v1 plugin path. OMiCRON DVDRip 23.976fps |
|
||
| S02 | 16 | 16 / 16 | S02E16 first lines confirmed match episode | E01-E12 v2 OS REST (mixed OMiCRON + 20FOX); E13-E16 v3 Addic7ed (no quota cost) |
|
||
| S03 | 19 | 16 / 19 | not yet visually verified | v3 Addic7ed. Misses: E04 Lincoln Lover (a7d 0 subs), E13 Black Mystery Month (a7d empty body), E19 Joint Custody (a7d 0 subs) |
|
||
| S04 | 16 | 10 / 16 | not yet visually verified | v3 Addic7ed. Misses: E01-E05 (Vacation Goo / Meter Made / Dope & Faith / Big Trouble in Little Langley / Haylias) and E11 Oedipal Panties — all "a7d 0 subs" for the OS-feat-details S/E we passed |
|
||
|
||
Net: **49 / 58 (84 %)**.
|
||
|
||
Remaining 9 episodes can land via OS REST tomorrow (20-quota window covers them all in one batch).
|
||
|
||
## Picks (S01)
|
||
|
||
| Episode | Sub release | Author | DLs | FPS | HI |
|
||
|---|---|---|---|---|---|
|
||
| S01E01 Pilot | `American.Dad.S01E01.DVDRip.XviD.REPACK-OMiCRON` | zetakoo_ | 154 132 | 23.976 | no |
|
||
| S01E02 Threat Levels | `American.Dad.S01E02.DVDRip.XviD.REPACK-OMiCRON` | (auto) | 89 896 | 23.976 | no |
|
||
| S01E03 Stan Knows Best | `American.Dad.S01E03.DVDRip.XviD.REPACK-OMiCRON` | (auto) | 69 317 | 23.976 | no |
|
||
| S01E04 Francines Flashback | `American.Dad.S01E04.DVDRip.XviD.REPACK-OMiCRON` | (auto) | 72 315 | 23.976 | no |
|
||
| S01E05 Roger Codger | `American.Dad.S01E05.DVDRip.XviD.REPACK-OMiCRON` | (auto) | 32 309 | 23.976 | no |
|
||
| S01E06 Homeland Insecurity | `American.Dad.S01E06.DVDRip.XviD.REPACK-OMiCRON` | (auto) | 67 778 | 23.976 | no |
|
||
| S01E07 Deacon Stan Jesus Man | `American.Dad.S01E07.DVDRip.XviD-OMiCRON` | (auto) | 65 124 | 24 | no |
|
||
|
||
All chose by recipe Step 4 picker (highest DownloadCount among non-HI / non-MT
|
||
/ non-AI / non-Forced, prefer 23.976 fps). Picker behaved consistently — no
|
||
manual override needed for S01.
|
||
|
||
## Breakage
|
||
|
||
After S01 passed, S02E01 search returned 0 results. Verified:
|
||
|
||
- ProviderIds for S02E01 in library = `Imdb=tt0511631 Tvdb=306168` (correct for "Bullocks to Stan")
|
||
- Plugin quota: 13 / 20 remaining (not exhausted)
|
||
- Plugin log shows no error — silent zero
|
||
- Same recipe worked 7 times in a row immediately prior — not a script bug
|
||
- Sample-tested S02E02 / S02E08 / S02E13 → all 0 results
|
||
|
||
Root cause: library numbering is Hulu/DSP (S1=7), OpenSubtitles indexes Fox
|
||
airing order (S1=23). Plugin queries OS with `(parent_imdb_id, season,
|
||
episode)` so library `S=2 E=1` maps to a Fox cell that doesn't exist on OS
|
||
in that S/E slot, even though the per-episode IMDB id (`tt0511631`) is real
|
||
and indexed on OS by Fox order as `S=1 E=8`.
|
||
|
||
The plugin doesn't expose per-episode-IMDB lookup, only the S/E combo path,
|
||
so there's no flag we can flip to make this work.
|
||
|
||
## Recipe amendments triggered
|
||
|
||
- **v1 → v2**: process needs a season-numbering pre-check (Step 3), and a
|
||
fallback fetch path that doesn't rely on plugin S/E mapping. See
|
||
`CHANGELOG.md` v2 design choice between direct OS REST (recommended) and
|
||
library re-numbering.
|
||
|
||
## v2 picks (S02E01–E12)
|
||
|
||
| Episode | Sub release | DLs | FPS | HI |
|
||
|---|---|---|---|---|
|
||
| S02E01 Bullocks to Stan | `american.dad.s01e08.dvdrip.xvid-omicron` | 25 846 | 23.976 | no |
|
||
| S02E02 A Smith in the Hand | `American Dad S01E09 A Smith in the Hand.DVDRip.NonHI.cc.en.20FOX` | 75 | 29.97 | no |
|
||
| S02E03 All About Steve | `American Dad S01E10 All About Steve.DVDRip.NonHI.cc.en.20FOX` | 2 600 | 29.97 | no |
|
||
| S02E04 Con Heir | `American Dad S01E11 Con Heir.DVDRip.NonHI.cc.en.20FOX` | 140 | 29.97 | no |
|
||
| S02E05 Stan of Arabia 1 | `American Dad S01E12 Stan of Arabia Part 1.DVDRip.NonHI.cc.en.20FOX` | 110 | 29.97 | no |
|
||
| S02E06 Stan of Arabia 2 | `American Dad S01E13 Stan of Arabia Part 2.DVDRip.NonHI.cc.en.20FOX` | 86 | 29.97 | no |
|
||
| S02E07 Stannie Get Your Gun | `American Dad S01E14 Stannie Get Your Gun.DVDRip.NonHI.cc.en.20FOX` | 99 | 29.97 | no |
|
||
| S02E08 Star Trek | `American Dad [2.15]` | 18 | 0.0 | no |
|
||
| S02E09 Not Particularly Desperate USER-Gwives | `American Dad [2.16]` | 24 | 0.0 | no |
|
||
| S02E10 Rough Trade | `American Dad S01E17 Rough Trade.DVDRip.NonHI.cc.en.20FOX` | 40 | 29.97 | no |
|
||
| S02E11 Finances With Wolves | `American Dad [1.18] Finances with Wolves-eng` | 7 730 | 23.976 | no |
|
||
| S02E12 It's Good to be the Queen | `American Dad - 1x19 - Its Good to be the Queen.en` | 13 228 | 23.976 | no |
|
||
|
||
Note: 8 picks are 29.97 fps. SRT timestamps are absolute time, so this should
|
||
not desync on a 23.976 fps source provided NTSC durations match. Confirm via
|
||
recipe Step 6 sync sample on at least one 29.97-pick episode.
|
||
|
||
## Followups
|
||
|
||
- [ ] visually verify sample S01 sub plays in sync (recipe §6)
|
||
- [ ] visually verify sample S02 29.97-fps pick plays in sync (e.g. S02E03)
|
||
- [ ] visually verify sample Addic7ed pick plays in sync (e.g. S03E01 or S04E10)
|
||
- [ ] tomorrow (after 23:59 UTC quota reset): rerun `sub-rest-fetch.py --season N --start E --end E` on the 9 missed eps via OS REST
|