mirror of
https://github.com/euzu/tuliprox.git
synced 2026-10-14 11:52:24 +02:00
* fix(hls): keep provider account across client IP changes Wrap live HLS media playlists in a single-variant master whose variant URI is a sealed owner token, so playlist refreshes from changing client IPs keep their owner, lease and provider affinity. Expired sessions are recreated from the token with the same access and admission checks. - Classify HLS resources by playlist tag, not by .m3u8 extension - Answer non-HLS 200 bodies as failed manifests (entry: unavailable, refresh: 502) - Pin child manifests and media URIs to the resolving provider account - Add reverse_proxy.stream.hls_wrap_media_playlist (default true) - Split AppState into app_state/ containers; move HTTP clients to core * fix(hls): keep provider account across client IP changes Wrap live HLS media playlists in a single-variant master whose variant URI is a sealed owner token, so playlist refreshes from changing client IPs keep their owner, lease and provider affinity. Expired sessions are recreated from the token with the same access and admission checks. - Classify HLS resources by playlist tag, not by .m3u8 extension - Answer non-HLS 200 bodies as failed manifests (entry: unavailable, refresh: 502) - Pin child manifests and media URIs to the resolving provider account - Add reverse_proxy.stream.hls_wrap_media_playlist (default true) - Split AppState into app_state/ containers; move HTTP clients to core * fix(hls): keep provider account across client IP changes Wrap live HLS media playlists in a single-variant master whose variant URI is a sealed owner token, so playlist refreshes from changing client IPs keep their owner, lease and provider affinity. Expired sessions are recreated from the token with the same access and admission checks. - Classify HLS resources by playlist tag, not by .m3u8 extension - Answer non-HLS 200 bodies as failed manifests (entry: unavailable, refresh: 502) - Pin child manifests and media URIs to the resolving provider account - Add reverse_proxy.stream.hls_wrap_media_playlist (default true) - Split AppState into app_state/ containers; move HTTP clients to core * fix(hls): keep provider account across client IP changes Wrap live HLS media playlists in a single-variant master whose variant URI is a sealed owner token, so playlist refreshes from changing client IPs keep their owner, lease and provider affinity. Expired sessions are recreated from the token with the same access and admission checks. - Classify HLS resources by playlist tag, not by .m3u8 extension - Answer non-HLS 200 bodies as failed manifests (entry: unavailable, refresh: 502) - Pin child manifests and media URIs to the resolving provider account - Add reverse_proxy.stream.hls_wrap_media_playlist (default true) - Split AppState into app_state/ containers; move HTTP clients to core * fix(hls): keep provider account across client IP changes Wrap live HLS media playlists in a single-variant master whose variant URI is a sealed owner token, so playlist refreshes from changing client IPs keep their owner, lease and provider affinity. Expired sessions are recreated from the token with the same access and admission checks. - Classify HLS resources by playlist tag, not by .m3u8 extension - Answer non-HLS 200 bodies as failed manifests (entry: unavailable, refresh: 502) - Pin child manifests and media URIs to the resolving provider account - Add reverse_proxy.stream.hls_wrap_media_playlist (default true) - Split AppState into app_state/ containers; move HTTP clients to core --------- Co-authored-by: euzu <euzu@proton.me>