HLS Playlist Builder

Generate an adaptive-bitrate HLS package (master playlist + variant playlists + CMAF segments) for self-hosted video delivery. Output is a ZIP ready to drop onto any static host.

What it does

Pick a source video, pick a bitrate ladder (720p single, 720p+480p, or 1080p+720p+480p), pick a segment duration, and the tool produces a ZIP containing one variant playlist + CMAF .ts segments per rung, plus a master playlist that points to all variants.

Unzip the package, upload to any static host (S3, Cloudflare R2, plain nginx) and an HLS-capable player will pick the right bitrate based on the viewer's bandwidth.

How to use it

  1. Drop the source videoAny common container. Use a high-resolution master so the downscales have detail to work with.
  2. Pick the ladderSingle-bitrate 720p for storage efficiency. Multi-rung for adaptive playback over variable networks.
  3. BuildThe encoder produces every rung in sequence. The download is a ZIP — unzip and serve master.m3u8 from any static URL.

When to use it

Self-hosting video on a marketing site

Skip Mux / Cloudflare Stream for occasional video. Ship the HLS package alongside your assets.

Internal training video CDN

Internal video portal where Mux feels like overkill. HLS over static hosting is enough.

Archival with adaptive playback

Long-form recordings that should still play smoothly on slow connections, without buying a streaming product.

FAQ

Which players consume the output?
hls.js (most browsers), Safari natively, Video.js, ExoPlayer, AVPlayer — anything that supports HLS.
Is the output DRM-protected?
No. This tool produces clear-text HLS. DRM (FairPlay, Widevine) is out of scope; use Mux or Cloudflare Stream for that.