legacy-arrflix/playbooks/import-media/runs/johnny-harris-assange-guilty-plea-20220510.md
s8n 4750a2c4cc
Some checks are pending
secret-scan / gitleaks (HEAD + history) (push) Waiting to run
secret-scan / detect-secrets (entropy + cross-tool) (push) Waiting to run
secret-scan / summary (push) Blocked by required conditions
docs(34): import johnny-harris assange-guilty-plea-20220510 to stock Jellyfin Education
2026-05-12 15:53:42 +01:00

89 lines
3.5 KiB
Markdown

# johnny-harris-assange-guilty-plea-20220510
Single-video YouTube import into the **STOCK** Jellyfin at `tv.s8n.ru`
(container `jellyfin-stock`), **Education** library
(`collectionType=movies`, internet providers disabled).
Channel `Johnny Harris/` folder already had 5 files before this run, so
Jellyfin's single-file-folder caveat (`feedback_jellyfin_single_file_channel`)
does not apply — file resolves with its own filename as title.
## Provenance
- **Source:** YouTube — `https://www.youtube.com/watch?v=P6bVl47kdNk`
- **Channel:** Johnny Harris
- **Tool:** `yt-dlp` on onyx
- **Format selector:** `bv*[height<=1080][ext=mp4]+ba[ext=m4a]/b[height<=1080][ext=mp4]/bv*[height<=1080]+ba/b[height<=1080]/b``--merge-output-format mp4` (source 2160p, capped to 1080p per playbook §1e)
- **Subs:** `--write-subs --sub-langs 'en' --embed-subs --convert-subs srt` — English user-uploaded subs embedded AND sidecar `.en.srt`
- **Thumbnail:** `--write-thumbnail --convert-thumbnails jpg` → sidecar `.jpg`, Primary via Local Posters
- **Staging path on onyx:** `/home/admin/staging-jelly/Johnny Harris/`
### Filename normalisation
Raw YouTube title:
> `Why Julian Assange's guilty plea will change journalism forever`
Apostrophe is the smart quote `'` (U+2019). Playbook §1f passes smart quotes
through unchanged — no rename needed. Final filename:
`Why Julian Assange's guilty plea will change journalism forever — 20220510.mp4`
## Target
- **Server:** `jellyfin-stock` on nullstone, `https://tv.s8n.ru`
- **Library:** Education
- **Path on host:** `/home/user/media/education/Johnny Harris/Why Julian Assange's guilty plea will change journalism forever — 20220510.mp4`
- **Container view:** same under `/media/education/`
- **Item ID:** `6d2f161823995d547795615245dbdf94`
### Sidecar files
| Kind | File |
|---|---|
| Media | `… — 20220510.mp4` (207,130,253 B, ~197 MiB) |
| Subtitle | `… — 20220510.en.srt` (57,288 B) |
| Thumbnail | `… — 20220510.jpg` (110,333 B) — Primary via Local Posters |
## Counts
| | Before | After | Delta |
|---|---:|---:|---:|
| Education / Johnny Harris items | 5 | 6 | +1 |
## Stream summary
```
Duration: 00:32:07.28, bitrate: 859 kb/s
Stream #0:0[0x1](und): Video: av1 (libdav1d) (Main), yuv420p(tv, bt709), 1920x1080, 726 kb/s, 23.98 fps
Stream #0:1[0x2](eng): Audio: aac (LC), 44100 Hz, stereo, fltp, 127 kb/s
Stream #0:2[0x3](eng): Subtitle: mov_text (tx3g)
```
AV1 1080p23.98 + stereo AAC + embedded English mov_text + external .en.srt
sidecar.
## Subtitle status
- Embedded: yes — one English `mov_text` track.
- External sidecar: yes — `.en.srt`.
- Action: none.
## Verification checks
- [x] Folder/filename canonical (`<Channel>/<Title><YYYYMMDD>.mp4`).
- [x] Smart apostrophe preserved per §1f; no forbidden chars in path.
- [x] Permissions `user:user` 644.
- [x] Single `Scan Media Library` invocation indexed it on first pass
(no re-trigger needed — folder pre-existing, not new).
- [x] `/Items?searchTerm=Assange` returns single expected item with
`ImageTags.Primary` present, `ProviderIds` empty (expected for
Education library).
- [x] `Name` resolved from filename — no folder-name fallback (≥2 files in
channel folder).
- [ ] Direct-play in mobile / Smart-TV client not exercised.
## Notes / surprises
None — clean reference run. Validates that the single-file caveat
(`feedback_jellyfin_single_file_channel`) is strictly tied to one-file
channel folders; pre-populated folders parse correctly from filename.