legacy-arrflix/processes/subtitles/runs/american-dad.md
s8n fedf3388b8 processes: subtitle acquisition v1 + AD S01 run
Adds processes/ umbrella for repeatable acquisition workflows. First child
is subtitles/, with recipe README (executable by Claude Code), CHANGELOG,
per-show run logs, and a tested helper at lib/sub-fetch.sh.

Run on American Dad: S01 (7 eps) passed, S02-S04 (51 eps) broke. Library
uses Hulu/DSP season ordering; OpenSubtitles indexes by Fox airing order;
plugin queries by (parent_imdb_id, season, episode) so library S02E01
returns 0 hits. v2 design = direct OpenSubtitles REST with per-episode
imdb_id lookup; pending API-key registration.
2026-05-09 22:56:31 +01:00

3.7 KiB
Raw Blame History

Subtitle run — American Dad! (2005)

Recipe version: v1 Run date: 2026-05-09 Operator: Claude Code @ onyx session, ai-lab cwd Quota at start / end: 20 / 13 (7 downloads, all S01)

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) All from OMiCRON DVDRip release group, fps 23.976 except S01E07 (24 fps), no SDH
S02 16 0 / 16 n/a Plugin RemoteSearch returns 0 for E01/E02/E08/E13 — broke recipe
S03 19 0 / 19 n/a Untested, expected same failure
S04 16 0 / 16 n/a Untested, expected same failure

Net: 7 / 58 (12 %).

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.

Followups

  • visually verify a sample S01 sub plays in sync (one ep per recipe rule §6)
  • decide v2 path (REST vs renumber)
  • sub S02S04 (51 eps) once v2 lands