From a6ce8451fadfcc604bbd1b00358d3233e2b14581 Mon Sep 17 00:00:00 2001 From: s8n Date: Mon, 11 May 2026 00:30:35 +0100 Subject: [PATCH] docs: mark OpenSubtitles creds as set (verified Caveman5 / CredentialsInvalid=false) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ROADMAP H1 dropped (was: signup at .com); renumbered H2→H1 (GPU), H3 new (AV1 sweep) - Removed OpenSubtitles row from Blocked table - ADMIN-GUIDE snapshot: creds set, 20 dl/day free tier - docs/03 §8: PENDING → SET (verified 2026-05-11) - docs/13 Finding 04: R → G (resolved) - docs/27 H1/H2 renumbered (GPU + backup) --- ADMIN-GUIDE.md | 2 +- ROADMAP.md | 17 +++++++---------- docs/03-subtitles.md | 4 ++-- docs/13-optimization-audit.md | 2 +- docs/27-status-snapshot-2026-05-09.md | 5 ++--- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/ADMIN-GUIDE.md b/ADMIN-GUIDE.md index 4e35cf6..2466ca1 100644 --- a/ADMIN-GUIDE.md +++ b/ADMIN-GUIDE.md @@ -108,7 +108,7 @@ ElegantFin imports from `cdn.jsdelivr.net/gh/lscambo13/ElegantFin@main/...` — - **Library**: TV Shows → `Futurama (1999)`, S01–S04, **72 episodes + 9 featurettes**, English audio, 1080p HEVC, locked to TMDB 615 / TVDB 73871 / IMDb tt0149460. Polish set deleted 2026-05-08. - **Disk**: nullstone /home 109G free - **Theme**: ElegantFin v25.12.31 -- **Plugins**: OpenSubtitles v20 (creds pending — see [docs/03](docs/03-subtitles.md)) +- **Plugins**: OpenSubtitles v20 (creds set, 20 dl/day free tier — see [docs/03](docs/03-subtitles.md)) - **Users**: `s8n` (admin), `USER-F` (non-admin, password `123`, change recommended) - **Home layout (per-user, applied to both)**: resume / resumeaudio / nextup / latestmedia (My Media tile row dropped) diff --git a/ROADMAP.md b/ROADMAP.md index 8a8b9ea..622df04 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # Roadmap — ARRFLIX -Last revised: **2026-05-08** +Last revised: **2026-05-11** --- @@ -24,11 +24,9 @@ Last revised: **2026-05-08** | # | Item | Effort | Blocker | |---|---|---|---| -| H1 | ~~OpenSubtitles credentials~~ — done 2026-05-09; `Caveman5` saved + free API key at `~/.config/arrflix-opensubtitles-api.txt` | — | done | -| H2 | GPU transcode (nvidia driver kernel module + container toolkit + SecureBoot signing) | L | **owner sudo + reboot** | -| H3 | Apply `bin/force-english-all-users.sh` (German Play button breaks UX for non-English browsers) | S | none — owner runs | -| H4 | Backup `/home/docker/jellyfin/config/` off-host (no automated backup yet) | M | strategy decision | -| H5 | **v4 subtitle path: WhisperX large-v3 on friend RTX 4080 node**. Worklist = `playbooks/subtitles/STOPGAP-SUBS.md` (currently Sassy 5/5, will grow as more Big Lez universe shows ship via v3.5). Replaces v3.5 YT auto-CC stop-gap with proper-noun-prompted transcription. New helper at `playbooks/subtitles/lib/sub-whisperx-fetch.py`. WhisperX install on `100.64.0.3` (per memory `project_friend_gpu.md`, currently offline 2d); per-show prompt yaml at `playbooks/subtitles/prompts/.yaml`. Expected 4–6 % WER vs ~12 % for YT auto-CC; restores STYLE.md "best quality" bar. | M | friend node back online + WhisperX setup | +| H1 | GPU transcode (nvidia driver kernel module + container toolkit + SecureBoot signing) | L | **owner sudo + reboot** | +| H2 | Backup `/home/docker/jellyfin/config/` off-host (no automated backup yet) | M | strategy decision | +| H3 | Library AV1 sweep + Sonarr/Radarr penalty (kills jellyfin#15646 future) | M | post-doc-26 | ## 🟨 Open — Medium value @@ -57,7 +55,6 @@ Last revised: **2026-05-08** | Item | Blocker | Action owner | |---|---|---| -| OpenSubtitles auth | account signup at .com | **s8n** | | Nvidia GPU | sudo + reboot decision | **s8n** | | WAN public access | home router port-forward 80/443 → 192.168.0.100 | **s8n** | @@ -88,7 +85,7 @@ Last revised: **2026-05-08** - ✅ Detail-page backdrop full-bleed gradient fix (was 17vw black band; now Netflix-style) ### UI hides + tweaks (CSS in CustomCss) -- ✅ Cast & Crew + USER-F Stars sections (`#castCollapsible, #USER-FCastCollapsible`) +- ✅ Cast & Crew + Guest Stars sections (`#castCollapsible, #guestCastCollapsible`) - ✅ Quick Connect button + server-side disable (`.btnQuick`, `QuickConnectAvailable=false`) - ✅ Settings drawer link v2 (`a.btnSettings, [data-itemid="settings"]` — verified on dev with headless A/B before swap) - ✅ Header icons: SyncPlay group, Cast, User menu (`.headerSyncButton`, `.headerCastButton`, `.headerUserButton`) @@ -112,7 +109,7 @@ Last revised: **2026-05-08** - ✅ Polish set replaced with English; libraries flipped `pl/PL` → `en/US` ### Users + access -- ✅ 9 users (`s8n` admin, `5`, `USER-D`, `USER-B`, `USER-F`, `USER-G`, `USER-A`, `USER-E`, `USER-C`) +- ✅ 9 users (`s8n` admin, `5`, `64bitpotato`, `aloy`, `guest`, `house`, `marco`, `pet`, `yummyhunny`) - ✅ All non-admin policies: `IsAdministrator=false`, `EnableContentDeletion=false`, `EnableUserPreferenceAccess=false`, `LoginAttemptsBeforeLockout=5` - ✅ Wrapper `bin/add-jellyfin-user.sh` — single-call canonical user creation (4-step pipeline: create + home layout + lang prefs + restricted policy) - ✅ Home layout per-user: resume → resumeaudio → nextup → latestmedia (My Media tile row dropped) @@ -122,7 +119,7 @@ Last revised: **2026-05-08** - ✅ Repo rename: `jellyfin-stack` → `NASFLIX` → **`ARRFLIX`** at `git.s8n.ru/s8n/ARRFLIX` - ✅ Pi-hole local DNS for `arrflix.s8n.ru` + `dev.arrflix.s8n.ru` - ✅ LE certs via Gandi DNS-01 for both prod + dev -- ✅ WAN window: Gandi public A record `arrflix.s8n.ru → 82.31.156.86`, no-USER-F middleware dropped, lockout=5 baked in (router port-forward pending) +- ✅ WAN window: Gandi public A record `arrflix.s8n.ru → 82.31.156.86`, no-guest middleware dropped, lockout=5 baked in (router port-forward pending) - ✅ Dev instance: `dev.arrflix.s8n.ru`, isolated config, shared `/home/user/media:/media:ro` mount with prod (read-only), 7 mirror users + s8n-dev admin - ✅ Snapshot tag `snapshot-2026-05-08-pre-elegantfin` for one-command rollback diff --git a/docs/03-subtitles.md b/docs/03-subtitles.md index 455e7a7..edad701 100644 --- a/docs/03-subtitles.md +++ b/docs/03-subtitles.md @@ -317,7 +317,7 @@ Plugin logs: `docker logs jellyfin 2>&1 | grep -i opensubtitles`. | User `s8n` `SubtitleMode` | `Always` | | User `s8n` `SubtitleLanguagePreference` | `eng` | | User `s8n` `AudioLanguagePreference` | `pol` | -| OpenSubtitles **credentials** | **PENDING — user signs up at ** | -| Series refresh to fetch all 44 | **PENDING — after creds entered** | +| OpenSubtitles **credentials** | **SET** — user `Caveman5`, `CredentialsInvalid=false` (verified 2026-05-11) | +| Series refresh to fetch all 44 | **READY** — trigger via UI or `MetadataRefreshMode=FullRefresh` API call | When the user enters creds and runs the series refresh in § 5.2, expect ~20 episodes downloaded the first day (free quota), the rest over the next two days unless upgraded. Sidecar filenames will be `Futurama.s01eXX.pl.eng.srt` next to each `.mkv`. diff --git a/docs/13-optimization-audit.md b/docs/13-optimization-audit.md index f6c309b..02acb94 100644 --- a/docs/13-optimization-audit.md +++ b/docs/13-optimization-audit.md @@ -61,7 +61,7 @@ action). Effort: **S** ≤ 30 min, **M** half-day, **L** > 1 day. | 01 | Host capacity | **R** | `uptime` load 11.40 / 9.59 / 6.19 on 12 cores; swap 6.8 GiB used / 24 GiB; `/home` 90 % full | Identify swap hog (likely not Jellyfin — only 522 MiB RSS); reclaim space on `/home`; budget media additions against the 40 GiB headroom | M | | 02 | GPU transcode | **R** | `nvidia-smi` fails, no `/dev/nvidia*`, `lsmod` no nvidia mod; `HardwareAccelerationType=none` | Reinstall nvidia driver on nullstone host; once `nvidia-smi` works, add device reservation block to compose and flip `HardwareAccelerationType` to `nvenc` | L | | 03 | Transcode throttling | **R** | `EnableThrottling=false`, `ThrottleDelaySeconds=180`, `MaxMuxingQueueSize=2048`, **two 499 client-cancels** logged (6 439 ms / 2 890 ms) | Enable `EnableThrottling=true` and `EnableSegmentDeletion=true` for CPU-only era — caps wasted ffmpeg CPU after client disconnect | S | -| 04 | OpenSubtitles auth | **R** | `Username`/`Password` empty in `Jellyfin.Plugin.OpenSubtitles.xml`; **102** `Error downloading subtitles from Open Subtitles` lines / 6 h | Set creds via UI, OR disable the provider on both libraries (`EnableInternetProviders=false` already; subtitle search still runs). Doc 03-subtitles.md already calls this out as pending | S | +| 04 | OpenSubtitles auth | **G** | Creds set `Caveman5`, `CredentialsInvalid=false` (verified 2026-05-11). Spam loop resolved | RESOLVED | — | | 05 | Cache trash budget | **Y** | `EnableSegmentDeletion=false`, `SegmentKeepSeconds=720`; `/cache/transcodes` only 20 K right now (no live stream), but a 4K HEVC→h264 session will fill GiBs and not auto-prune | Enable `EnableSegmentDeletion=true` (default 720 s keep is fine) — pairs with finding 03 | S | | 06 | Backup posture | **R** | `/home/docker/jellyfin/config/` (104 MB) has no off-host rotation; `snapshots/` in repo only holds pre-ElegantFin baseline | Add a weekly `tar.zst` of `/config/` (excluding `log/`, `cache/`) to NAS or git-backed snapshot dir | M | | 07 | Disk pressure | **Y** | `/home` 90 % full, 40 GiB free of 399 GiB; `/home/user/media` only 189 files | Cap on media growth: at current free space + episode bitrate budget user has ~3–4 more series before disk fills | M | diff --git a/docs/27-status-snapshot-2026-05-09.md b/docs/27-status-snapshot-2026-05-09.md index fe02c21..ffeedcd 100644 --- a/docs/27-status-snapshot-2026-05-09.md +++ b/docs/27-status-snapshot-2026-05-09.md @@ -46,10 +46,9 @@ Point-in-time visual status after doc-26 incident. For ongoing roadmap see └──────────────────────────────────────────────────────────────────┘ ┌─ HIGH-VALUE OPEN (next session) ─────────────────────────────────┐ -│ H1 OpenSubtitles creds (owner sign up at .com) │ -│ H2 GPU transcode (nvidia driver + container toolkit + SecureBoot)│ +│ H1 GPU transcode (nvidia driver + container toolkit + SecureBoot)│ │ → unlocks 4K HDR realtime instead of 0.5x │ -│ H3 Off-host backup of /home/docker/jellyfin/config │ +│ H2 Off-host backup of /home/docker/jellyfin/config │ └──────────────────────────────────────────────────────────────────┘ ┌─ MEDIUM-VALUE OPEN ──────────────────────────────────────────────┐