Adds lib/audit-coverage.py: queries Jellyfin live for every series, every episode, and every movie; classifies each by whether the English subtitle comes from a sidecar, embedded stream, or doesn't exist; renders a Markdown report with one-char-per-episode bars for visual scanning. Output file is processes/subtitles/COVERAGE.md, regenerated on demand. v2 sub-rest-fetch.py and v3 sub-a7d-fetch.py now invoke the audit at end of a successful run, so the committed coverage file stays in sync with library state without manual intervention. v3.5 yt-fetch path skips the auto-call since it doesn't speak to Jellyfin directly; run audit manually after copying YT sidecars to nullstone. README.md surfaces the audit at the top so anyone landing in the recipe folder sees current state before starting a run. |
||
|---|---|---|
| .. | ||
| subtitles | ||
| README.md | ||
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/ |
v3.5 — YouTube auto-CC added as stop-gap for shows with no community subs anywhere (verified via 3-agent research run). AD 49/58 + Sassy 5/5. v4 WhisperX planned (ROADMAP H5) | 2026-05-10 |