dragonflight/services
Zac Gaetano d3ad2397fb fix(playout): serve preview m3u8 via /api to bypass the proxy's static cache
Root cause of the persistent black preview, fully isolated: ZAMPP1's nginx
serves the live .m3u8 fresh on every request (no-store works there), but
the PUBLIC reverse proxy (159.112.211.103 -> ZAMPP1) caches the static
.m3u8 by path with a multi-second TTL, ignoring both the origin's no-store
and query params. hls.js reloads the playlist ~every second, always landing
inside that TTL, so it sees the live playlist as never advancing
("live playlist MISSED" forever), never establishes the timeline, and never
loads a fragment -> readyState 0 (black). Proven: rapid reads via ZAMPP1
localhost advance (404->405); the same rapid reads via the public URL are
stuck; query-busting doesn't help (proxy caches by path).

Fix: serve the playlist through GET /api/v1/playout/channels/:id/hls/index.m3u8
instead of the static /media/live path. /api/ is not proxy-cached (the live
status poll already updates fine through it), so hls.js always gets the fresh
live edge. Segment (.ts) lines are rewritten to absolute /media/live/<id>/
URLs so they still load from the static path (immutable; caching them is
correct). ProgramMonitor points hls.js at the /api playlist and sends the
session cookie (xhrSetup withCredentials) since /api is auth-gated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 15:57:41 -04:00
..
capture feat(settings/growing): storage warning, SMB auth + CIFS mount, per-recorder growing 2026-05-31 14:50:36 -04:00
mam-api fix(playout): serve preview m3u8 via /api to bypass the proxy's static cache 2026-05-31 15:57:41 -04:00
node-agent feat(nvenc): GPU sidecar passthrough + All-Intra HEVC capture codec 2026-05-29 12:35:23 -04:00
playout fix(playout): re-encode HLS preview to uniform 2s segments so hls.js syncs 2026-05-31 15:22:21 -04:00
premiere-plugin diag(premiere-plugin): v1.2.5 — no-op IIFE writes to Documents/ + reports lf.open result 2026-05-28 03:59:40 +00:00
premiere-plugin-uxp feat(uxp): ship the icon-rail panel redesign as v2.2.2 (recover from redesign branch) 2026-05-29 20:45:29 -04:00
web-ui fix(playout): serve preview m3u8 via /api to bypass the proxy's static cache 2026-05-31 15:57:41 -04:00
worker fix(playout): silent-audio staging crash, home tiles, channel delete 2026-05-31 12:03:20 -04:00