13 eps imported, all matched on TVDB/IMDb. Run notes flag two new playbook bugs found: /Library/Refresh is a silent no-op (must trigger /ScheduledTasks/Running/<id> directly) and /Items/Counts is scope-cached (use /Shows/<id>/Episodes?Season=N for verify). Pending follow-ups recorded for v1.1 playbook revision.
6.1 KiB
archer-s02-2009
Second run of playbooks/import-media/ v1.0. First TV-season run (Lilo & Stitch was a movie).
Provenance
- Source path on onyx:
/home/admin/Downloads/Archer Season 2 [1080p AI 10bit S91 Joy]/ - Release group: Joy (AI-upscale tag
S91) - Quality: 1080p HEVC 10-bit (Main 10), AI-upscaled from SD source
- Audio: HE-AAC 5.1 English
- Embedded subs: 3× DVD bitmap (eng, spa, fre)
Target
- Library: tv
- Path:
/home/user/media/tv/Archer (2009)/Season 02/ - Container view:
/media/tv/Archer (2009)/Season 02/ - Series Item ID: (existed pre-import; not re-fetched this run)
- TVDB / TMDb: matched on existing
Archer (2009)series folder (Season 1 already in lib)
Files imported (13)
Archer (2009) - S02E01 - Swiss Miss.mkv
Archer (2009) - S02E02 - A Going Concern.mkv
Archer (2009) - S02E03 - Blood Test.mkv
Archer (2009) - S02E04 - Pipeline Fever.mkv
Archer (2009) - S02E05 - The Double Deuce.mkv
Archer (2009) - S02E06 - Tragical History.mkv
Archer (2009) - S02E07 - Movie Star.mkv
Archer (2009) - S02E08 - Stage Two.mkv
Archer (2009) - S02E09 - Placebo Effect.mkv
Archer (2009) - S02E10 - El Secuestro.mkv
Archer (2009) - S02E11 - Jeu Monégasque.mkv
Archer (2009) - S02E12 - White Nights.mkv
Archer (2009) - S02E13 - Double Trouble.mkv
Total ~2.8 GiB.
Counts
| Before | After | Delta | |
|---|---|---|---|
Episodes in Archer (2009) S02 |
0 | 13 | +13 ✅ |
| SeriesCount | 12 | 12 | 0 (series existed) |
| MovieCount | 4 | 4 | 0 |
/Items/Counts.EpisodeCount global |
230 | 230 (stale) | endpoint scope-cached, not authoritative |
Authoritative verify: GET /Shows/9d22c409d5319c3c6068cfd38569714f/Episodes?Season=2 → 13 items, all with ProviderIds.Tvdb+Imdb+TvRage, Primary image present, paths resolve.
Stream summary (S02E01 sample)
Duration: 00:21:03.48, bitrate: 1452 kb/s
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps
Stream #0:1(eng): Audio: aac (HE-AAC), 48000 Hz, 5.1, fltp
Stream #0:2(eng): Subtitle: dvd_subtitle (dvdsub), 1920x1080
Stream #0:3(spa): Subtitle: dvd_subtitle (dvdsub), 1920x1080
Stream #0:4(fre): Subtitle: dvd_subtitle (dvdsub), 1920x1080
HEVC 10-bit Main10 — direct-play on most clients. DVD-bitmap subs (dvd_subtitle) — server burn-in works, but per ARRFLIX subtitle style (1× plain English .srt only, no SDH/forced) these may need WhisperX text rebuild later. Add to playbooks/subtitles/STOPGAP-SUBS.md if user wants text subs.
Subtitle status
- Embedded: yes — 3× DVD bitmap (eng, spa, fre)
- External sidecar: none yet
- Action: none for now. Per ARRFLIX style, only English sidecar
.srtis canonical; embedded multi-lang DVD-subs do not satisfy that. Defer to subtitle playbook if user wants text-based eng.
Verification checks
- Folder/filename canonical (
Archer (2009)/Season 02/Archer (2009) - S02E<NN> - <Title>.mkv) - Permissions
user:user644 (file) / 755 (dir) —ls -lapost-rsync confirmed - LibraryMonitor auto-fired — DID NOT trigger (same as Lilo run; bind-mount inotify flake confirmed as a pattern, not one-off)
POST /Library/Refreshreturned 204 but did NOT trigger task (silent no-op)POST /ScheduledTasks/Running/<scan-task-id>returned 204 → task ran → episodes added- All 13 eps indexed with
Tvdb+Imdb+TvRageproviders populated - Per-episode Primary artwork present (
ImageTags.Primaryset on all 3 sampled) - HEVC 10-bit + HE-AAC → direct-play candidate on most clients
Notes / surprises
- LibraryMonitor flake confirmed: same as Lilo run. v1.0 playbook wording ("auto-refreshes ~1–3 s") is wrong; force-refresh is mandatory. Update to README.
POST /Library/Refreshis also a silent no-op in this Jellyfin build. Returned 204 but theScan Media Librarytask didn't fire and counts stayed flat. Had to fetch the task ID from/ScheduledTasksand POST to/ScheduledTasks/Running/<id>directly. Update playbook to use task-trigger endpoint, not/Library/Refresh./Items/Countsis scope-cached/stale — kept returning 230 even after 13 new eps were indexed. Use/Shows/<series-id>/Episodes?Season=Nas authoritative count source, not/Items/Counts.- API token retrieval: no docs in repo for getting an admin token. ApiKeys table empty (no operator-created keys). Pulled an active web-session token from
Devicestable via temp Alpine container mountingjellyfin.dbread-only (docker run --rm --userns=host -v ...:ro alpine sh -c "apk add sqlite && sqlite3 /db.sqlite ..."). Per-session tokens work asX-Emby-Tokenfor admin operations when source user has admin role. Worth documenting in ADMIN-GUIDE — or better, create an explicit ApiKeys row labelled "import-pipeline" with permanent rotation policy. - Source filenames had double-space before
[1080p ...]group tag — handled by${f%% [*}parameter expansion. May need to be more lenient in future imports (single-space variants, no-space variants). - HE-AAC audio at 5.1 may transcode-pressure some clients (LG WebOS notably struggles with HE-AAC multichannel). Watch for transcode lines in
docker logs jellyfin | grep transcodeif Archer playback shows lag. - Source download on laptop retained per
ADMIN-GUIDE.md:74— DO NOT delete/home/admin/Downloads/Archer Season 2 ...until user confirms playback in browser.
Operator action
User to verify in browser: https://arrflix.s8n.ru → Archer (2009) → Season 02 → spot-check episodes 1, 7, 13 → confirm artwork + Play. After confirmed, source download on onyx can be deleted.
Pending follow-ups
- Update
playbooks/import-media/README.md:- Drop "LibraryMonitor auto-fires" wording.
- Replace
/Library/Refreshwith/ScheduledTasks/Running/<scan-task-id>(true task trigger). - Add note: do NOT use
/Items/Countsas verification source (cached); use/Shows/<id>/Episodes?Season=Nper-series.
- Document API-token retrieval in
ADMIN-GUIDE.md(DB pull recipe or instructions to mint an ApiKey row labelledimport-pipeline). - Consider adding a
bin/import-tv.shthat wraps stage → rsync → chmod → task-trigger → poll-by-series.