Adds lib/sub-rest-fetch.py: direct OpenSubtitles REST, looks up subs by per-episode IMDB id (e.g. tt0511631) instead of the plugin's (parent_imdb_id, season, episode) combo path. This sidesteps shows where library numbering diverges from OpenSubtitles' catalogued numbering -- American Dad uses Hulu S1=7 eps; OS uses Fox S1=23 eps; the plugin path returns 0 hits past S01E07 even though every per-episode IMDB id is correct. Recipe README updated to surface the two paths (v1 plugin / v2 REST) and recommend v2 by default. American Dad run log now shows 19/58 episodes subbed (S01 7/7 via v1, S02E01-E12 via v2). S02E13-S04 (39 eps) deferred to next 20/day quota windows. Quirk fixed in v2: OpenSubtitles /download endpoint consistently returns HTTP 503 to Python urllib.request despite identical headers/body via curl. _curl() shim routes all OS API calls through curl. Each 503 still consumes a download slot, so urllib path was unsafe to retry on.
1.1 KiB
1.1 KiB
processes/ — repeatable acquisition workflows
This folder holds the canonical recipes for acquiring external content for
the ARRFLIX library: subtitles, artwork, metadata, episode stills, etc.
Internal ops (encoding, importing, theming) stay in bin/ and docs/.
Each process is its own sub-folder with three files:
| File | Purpose |
|---|---|
README.md |
The canonical recipe. Step-by-step, executable by Claude Code. Always reflects the latest version. |
CHANGELOG.md |
Why the recipe changed, version-by-version. One entry per breakage that forced a revision. |
runs/<show>.md |
Evidence log: what happened when this recipe was applied to a specific show. |
Recipes evolve via the iteration model: apply to a show, succeed or break, amend the recipe to handle the new case + every prior case, retry. A recipe that "just works" is one that has survived every show in the library without amendment for a full sweep.
Children
| Process | Status | Last touched |
|---|---|---|
subtitles/ |
v2 — direct OpenSubtitles REST. AD 19/58 eps subbed (S01 + S02E01–E12); S02E13–S04 awaiting next quota window | 2026-05-09 |