mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-14 11:52:24 +02:00
* fix(m3u): use alias token for Flussonic catch-up archives Catch-up archive URLs are built from the main account's live URL. On an alias allocation the M3U URL index only knows live URLs, so the lookup missed and the archive manifest was fetched with the main stream token. DVR segments inherited it, and the provider attributed the playback to the main account. On an index miss for a Flussonic archive file, resolve the live file in the same directory through the alias index (one lookup pass for all candidates) and keep the requested archive file name with the alias query. Query-based catch-up templates (append mode) are not covered. * fix(dvr): retry ffmpeg spawn while executable is busy Spawning a just-written executable can fail with ETXTBSY when a concurrently forked process still holds an inherited write descriptor before its exec. This made run_recording_preempts_fake_ffmpeg_and_ preserves_window_semantics flaky on CI. Retry the spawn up to five times with a short backoff on ExecutableFileBusy; other errors fail immediately as before. * fix(hls): resolve single-variant archive master in shared cache Archive URLs that return a master playlist with one #EXT-X-STREA child failed with segment_uri_without_extinf. The variant's media playlist is now fetched and fed to the cache timeline. - skip masters with several variants or separate #EXT-X-MEDIA tr - send entry credentials only to the entry origin - send master cookies only to the master origin - merge master and variant session cookies by name - keep the recovery binding on the entry URL