⚠️ Video / poster not loading? (common with full-tunnel VPN)
1. Enable Location services (ms-settings:privacy-location). 2. Connect to Templink WiFi: netsh wlan connect name="Templink". 3. Stop old WG: Stop-Service "WireGuardTunnel`$DESKTOP-3HKPJ2K-REMOTE" -Force (admin PS). 4. Activate split-tunnel: & "wireguard.exe" /installtunnelservice "C:\Users\exped\goontube-hls-prototype\wg-fixed-split-tunnel.conf". 5. Hard refresh this page. See wg-fixed-split-tunnel.conf in this folder for details.
HLS READY
2hr 14min Pure Gooning • No Cuts
channel
GoonTube Originals
4.8M subscribers
4.87M views  •  18 hours ago
...more
2:14:09
41.2k watching
Inspect chunks
Trending this week

Long Sessions • Perfect for hours of edging

View all
For you

Recommended for you

Hybrid recommendations (content + collaborative) generated by recommender.py. Search above to influence results.
Autonomous Fresh Content
Latest embed codes auto-generated by the app (no user clicks)
New autonomous videos will auto-embed here for fresh content...
Autonomous pipeline

Drop a video → FFmpeg → CDN → Instant HLS

New uploads are automatically transcoded into segmented HLS (6s chunks). The player always gets the best bitrate available in real time.

TRANSCODE
FFmpeg creates adaptive variants + master playlist
CDN SYNC
Bunny.net / Cloudflare R2 / S3 with correct cache headers
PLAYER READY
HLS.js + native Safari support. Seekable instantly.
Uses real FFmpeg command shown in README + process-video.ps1
Deep dive

HLS (HTTP Live Streaming) — Why GoonTube Uses It

Back to browsing

HLS stands for HTTP Live Streaming. It is an adaptive bitrate streaming protocol developed by Apple in 2009 and now an industry standard (RFC 8216).

Instead of serving one single large video file, HLS breaks the video into many small chunks (usually 2–10 seconds each) and delivers them over regular HTTP.

How HLS Works

  1. Video is segmented — Original video is transcoded into many small .ts (MPEG-TS) files + one master playlist (.m3u8).
  2. Player requests chunks — The video player downloads the playlist first, then plays chunk after chunk seamlessly.
  3. Adaptive Bitrate — Multiple quality versions (360p, 720p, 1080p, 4K). Player switches automatically based on bandwidth.
  4. Live & VOD — Works for pre-recorded and live streams.
Example file structure
master.m3u8
├── 720p/playlist.m3u8
│   ├── chunk_001.ts
│   ├── chunk_002.ts
│   └── ...
└── 1080p/playlist.m3u8
Why perfect for GoonTube:
Long sessions (hours) with minimal buffering • Mobile first • Low server load via HTTP/CDN • Easy ad insertion between segments • Seekable at any point • Universal browser + HLS.js support
Comparison
Protocol Strengths Weaknesses Best For
HLS Adaptive, reliable, CDN-friendly Slightly higher latency Adult tubes, YouTube, Netflix
DASH Very flexible, open standard Less universal support Premium platforms
Progressive MP4 Simple No adaptive quality Short clips only