Saved variant 1 "Netflix-cinema" detail-page redesign to web-overrides/skins/detail-variant-01-netflix-cinema.html for future reference. Not applied to dev/prod. Imported Star Wars: Maul - Shadow Lord S01 2160p WEB-DL HEVC SDR (10 episodes, ~21 GB) per playbooks/import-media/ v1.0. First "replace-with-comparison" run: - Existing 1080p upscale renamed in-place to "Star Wars - Maul - Shadow Lord [Before Upscale] (2026)/" with tvshow.nfo <lockdata>true</lockdata> to suppress Jellyfin TMDb auto-merge with the new canonical. - New 2160p staged on onyx, rsync'd to nullstone canonical path /home/user/media/tv/Star Wars - Maul - Shadow Lord (2026)/Season 01/ - Both series live as separate items; Items/Counts bumped Series 10->11, Episodes 197->207. Run log at playbooks/import-media/runs/star-wars-maul-shadow-lord- 2026-2160p.md flags v1.1 follow-ups: document the [Before Upscale] pattern, rsync resume idempotency, and [tmdbid-NNNN] folder token for titles that fail auto-match. ffprobe confirmed E01 = HEVC Main 8-bit 3840x2160 SDR @ 12 Mbps, EAC3 5.1 ENG Atmos + ITA dub, 4x embedded subrip per episode. Direct-play on capable clients. TMDb match failed auto on both folders (recent Disney+ release); operator to manually identify via UI.
98 lines
6 KiB
Markdown
98 lines
6 KiB
Markdown
# star-wars-maul-shadow-lord-2026-2160p
|
||
|
||
Second run of `playbooks/import-media/` — first multi-episode TV import + first replace-with-comparison flow.
|
||
|
||
## Provenance
|
||
|
||
- **Source path on onyx:** `/home/admin/Downloads/Star.Wars.Maul.Shadow.Lord.S01.2160p.DSNP.WEB-DL.DDP5.1.ENG.Atmos.ITA.SDR.H265-TheDarkLord/`
|
||
- **Release group:** TheDarkLord
|
||
- **Quality:** 2160p WEB-DL (Disney+) HEVC SDR
|
||
- **Audio:** EAC3 5.1 ENG Atmos + ITA dub
|
||
- **Subtitles:** 4× embedded subrip per episode (ITA forced + ITA + ENG + ENG)
|
||
- **Episode count:** 10 (S01E01–E10)
|
||
- **Total size:** ~21 GB
|
||
|
||
## Replace-with-comparison flow (first time)
|
||
|
||
User wanted the prior 1080p upscale kept side-by-side as a quality reference rather than overwritten. Approach:
|
||
|
||
1. Renamed existing folder `Star Wars - Maul - Shadow Lord (2026)` → `Star Wars - Maul - Shadow Lord [Before Upscale] (2026)` on nullstone.
|
||
2. Renamed all 10 existing episode files to embed `[Before Upscale]` in the show name segment (canonical filename pattern preserved otherwise).
|
||
3. Dropped `tvshow.nfo` in the renamed folder with `<title>Star Wars: Maul - Shadow Lord [Before Upscale]</title>` and `<lockdata>true</lockdata>` to prevent Jellyfin from merging the two folders via TMDb match.
|
||
4. Imported new 2160p as the canonical `Star Wars - Maul - Shadow Lord (2026)` per playbook v1.0.
|
||
|
||
Result: two distinct Series items in Jellyfin, both visible at `searchTerm=Maul`. User can compare playback between them.
|
||
|
||
## Targets
|
||
|
||
| Variant | Path | Item ID |
|
||
|---|---|---|
|
||
| New canonical (2160p) | `/home/user/media/tv/Star Wars - Maul - Shadow Lord (2026)/Season 01/` | `e993ccc0544638a2f4973b9e9f0dfe87` |
|
||
| Old [Before Upscale] | `/home/user/media/tv/Star Wars - Maul - Shadow Lord [Before Upscale] (2026)/Season 01/` | `dcc1205a6ed760e4cf21fdd2d8eaf7f8` |
|
||
|
||
Container view: `/media/tv/Star Wars - Maul - Shadow Lord (2026)/...` and `/media/tv/Star Wars - Maul - Shadow Lord [Before Upscale] (2026)/...`.
|
||
|
||
## Counts
|
||
|
||
| | Before | After | Delta |
|
||
|---|---:|---:|---:|
|
||
| SeriesCount | 10 | 11 | +1 |
|
||
| EpisodeCount | 197 | 207 | +10 |
|
||
|
||
The +1 series is the `[Before Upscale]` clone of an existing entry (folder-rename re-creates it as a fresh Series); the +10 episodes are the new 2160p canonical S01.
|
||
|
||
## Stream sample (E01 — Chapter 1: The Dark Revenge)
|
||
|
||
```
|
||
Duration: 00:28:18.91, bitrate: 12483 kb/s
|
||
Stream #0:0: Video: hevc (Main), yuv420p(tv), 3840x2160, 23.81 fps ← TRUE 4K UHD
|
||
Stream #0:1(ita): Audio: eac3, 48000 Hz, 5.1(side), 256 kb/s
|
||
Stream #0:2(eng): Audio: eac3 (Dolby Digital Plus + Dolby Atmos), 48000 Hz, 5.1(side), 768 kb/s
|
||
Stream #0:3(ita): Subtitle: subrip (forced)
|
||
Stream #0:4(ita): Subtitle: subrip
|
||
Stream #0:5(eng): Subtitle: subrip
|
||
Stream #0:6(eng): Subtitle: subrip
|
||
```
|
||
|
||
3840×2160 8-bit SDR HEVC, 12 Mbps. Direct-play candidate on capable clients.
|
||
|
||
## Subtitle status
|
||
|
||
- 4× embedded text subrip per episode (ITA + ENG, plus forced ITA) — no external sidecar needed.
|
||
- No action — embedded text subs work natively in browser via WebVTT.
|
||
|
||
## Verification checks
|
||
|
||
- [x] Folder/filename canonical for both old + new
|
||
- [x] Permissions `user:user` 644 (file) / 755 (dir) — verified post-rsync chmod
|
||
- [ ] LibraryMonitor auto-fired — DID NOT (same as Lilo run). Forced manual `POST /Library/Refresh` returned 204. Per-item `Refresh?MetadataRefreshMode=FullRefresh` also fired on both series.
|
||
- [x] `Items/Counts` bumped Series 10→11, Episodes 197→207
|
||
- [x] Both series enumerated as separate items
|
||
- [x] New series confirmed has 10 episodes via `/Shows/{id}/Episodes`
|
||
- [ ] **TMDb / TVDB providers**: NOT auto-matched on either series (`tmdb=? tvdb=?`). Likely cause: 2026 Disney+ Star Wars animated series may be too recent / non-canonical title format for the TMDb provider's auto-match. Operator can manually attach the right TMDb match via the Jellyfin UI (3-dot menu → "Identify").
|
||
- [x] 1 backdrop image fetched on new canonical (poster auto-grabbed from local artwork or default).
|
||
- [x] HEVC 4K stream confirmed via ffprobe; direct-play candidate.
|
||
|
||
## Notes / surprises
|
||
|
||
- LibraryMonitor failed twice in a row to detect new media (Lilo + this run). Playbook v1.0 already calls for unconditional manual `/Library/Refresh` — confirmed correct.
|
||
- Inter-series merging is suppressed by `tvshow.nfo` `<lockdata>true</lockdata>` on the [Before Upscale] folder — without that, Jellyfin would merge both folders to the same TMDb match and present one collapsed Series. Tested — separation holds.
|
||
- TMDb auto-match failed for both. This may also need a `[tmdbid-NNNN]` token in the folder name per `docs/05:54-56` if user wants pre-mapped IDs in the future. For now, manual UI match is the fix.
|
||
- Initial rsync was interrupted by the spawning agent's session timeout — second rsync resumed from 4/10 → 10/10 successfully. `rsync -a` is idempotent so the resume worked. Playbook v1.1 should call out: "if rsync fails partway, just re-run the same command — `rsync -a` skips already-transferred files".
|
||
- 21 GB transferred in two passes; second pass was the bulk (6 episodes / ~13 GB).
|
||
|
||
## Operator action
|
||
|
||
1. Open `https://arrflix.s8n.ru` → search "Maul".
|
||
2. Confirm BOTH series visible:
|
||
- "Star Wars: Maul - Shadow Lord" (the new canonical 2160p — the "real" version)
|
||
- "Star Wars: Maul - Shadow Lord [Before Upscale]" (the old upscaled — comparison reference)
|
||
3. If TMDb metadata desired: open each, click 3-dot → "Identify" → search TMDb manually.
|
||
4. Compare quality: play same episode (S01E01 Chapter 1) on both items — should see clear quality difference (4K vs upscaled 1080p).
|
||
5. Once happy, source download at `/home/admin/Downloads/Star.Wars.Maul.Shadow.Lord.S01.2160p.DSNP.WEB-DL.DDP5.1.ENG.Atmos.ITA.SDR.H265-TheDarkLord/` can be deleted.
|
||
|
||
## Playbook updates needed (v1.1 candidate)
|
||
|
||
- Document the "replace with [Before Upscale] comparison" pattern: rename + tvshow.nfo lockdata + new canonical folder.
|
||
- Document rsync resume idempotency: large multi-file transfers may interrupt; just re-run same command.
|
||
- Recommend `[tmdbid-NNNN]` folder-name token for any title where auto-match historically fails (recent Disney+ animated, niche releases).
|