# 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 (`/ — <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.