Local browser processing. Your video is never uploaded to us.Verify our privacy model
Adaptive stream playback lab

Free Online HLS Player with Manual Quality, Speed, Subtitles, and Screenshots

Test live or VOD M3U8 playback through hls.js, select a rendition, adjust speed, import local subtitles, and capture a permitted video frame.

No upload No signup No watermark
Open the tool
Paste a public HLS URL to test playback.

Play HLS M3U8 with automatic or manual video quality

Use adaptive playback or lock a detected rendition by bitrate and resolution when hls.js is active.

Add local SRT or VTT subtitles to an HLS stream

Subtitle text stays on this device and is attached as a browser text track.

Change HLS playback speed and save a video screenshot

Choose 0.5x through 2x speed and export a PNG frame when source CORS rules permit canvas access.

How to play an HLS M3U8 stream with manual quality selection

Paste a public master or media playlist and start playback. On Media Source Extensions browsers, hls.js lists available levels and lets you switch from Auto to a fixed rendition.

Playback errors distinguish network, manifest, and media failures. Confirm URL expiry, source CORS headers, and codec support before changing tools.

How to add subtitles and capture an HLS video frame online

Choose a local .vtt or .srt subtitle file after loading the video. The browser exposes it in the normal captions menu without uploading the text.

Screenshots depend on anonymous cross-origin canvas permission. A stream may play successfully yet still block frame export; the player reports this restriction instead of returning a blank image.

Common questions

HLS Player frequently asked questions

Straight answers about browser support, privacy, source access, and output behavior.

Can I select HLS quality manually?

Yes on browsers using hls.js. Choose Auto or a detected rendition. Native Safari HLS leaves quality selection to the browser.

Can this HLS player load local subtitles?

Yes. Choose a WebVTT or SRT file from this device; SRT timing is converted to WebVTT locally.

Why can an HLS screenshot fail?

Canvas screenshot access requires the playlist and video segments to send compatible anonymous CORS headers.