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.
24 lines
1.1 KiB
Markdown
24 lines
1.1 KiB
Markdown
# 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/`](subtitles/) | v2 — direct OpenSubtitles REST. AD 19/58 eps subbed (S01 + S02E01–E12); S02E13–S04 awaiting next quota window | 2026-05-09 |
|