Protocol 11: split-track relay (YouTube video+audio), chunked upstream reads

Relayed media can carry 2-4 byte tracks (video, audio): yt-dlp picks a
split pair when no single-file format exists (h264 first), the source
channel serves each track, the server keeps a buffer per track (budget
split by size, 8 MiB floor) and viewers open an mpv edl:// of the track
URLs. Expired URLs re-resolve once for all tracks. Upstream GETs are cut
into <= http_chunk_size (10 MiB) ranges: YouTube throttles larger ones.
Live streams and DRM are refused; HLS/DASH pieces are a follow-up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
foxyzandClaude Opus 5.5 committed 2026-10-09 19:59:41 +03:00
1 parent b2b77a6b3f
commit b038706dff
19 files changed
+945 -286

No files matched your search

+3 -3
View File
@@ -304,9 +304,9 @@ Web pages work in all three: the app and the dedicated server each
download [yt-dlp](https://github.com/yt-dlp/yt-dlp) by themselves (checked
against the release's checksums, updated once a day; Settings → Player
shows its version and has "Update now"), so there is nothing to install.
The last two need a page with a single-file video (X has one; YouTube only
has separate video and audio streams, so use "Everyone fetches it") and
never show the link to anyone. Your upload has to beat the video's
YouTube works in all three too. The last two never show the link to
anyone; they can't pass on live streams or pages that only offer streaming
playlists (use "Everyone fetches it" for those). Your upload has to beat the video's
bitrate: a 25-minute 2 GB episode is about 11 Mbit/s.
## Video quality and shaders