How to Download an HLS Stream
Four steps — no software installation required.
Find the M3U8 URL
Open DevTools (F12), go to the Network tab, filter by "m3u8", then play the video. Right-click the request and copy the URL.
Choose Output Format
Select .TS for instant save (plays in VLC/mpv) or .MP4 for a remuxed file that works everywhere.
Analyze & Pick Quality
Paste the URL and click Analyze. Choose your preferred resolution from the quality cards that appear.
Download & Save
Click Start Download. Segments are fetched in parallel, assembled in your browser, then saved to your device.
About This Tool
What makes this HLS downloader different from other tools.
100% Private
✓ No serverParallel Downloads
✓ 6 workersTrue MP4 Output
✓ FFmpeg.wasm v0.12Multi-Quality Streams
✓ Master playlistsError Resilience
✓ Auto-retryFrequently Asked Questions
Common questions about HLS downloading.
.ts (MPEG Transport Stream) is the native HLS container — segments are concatenated directly, so it saves instantly. .mp4 is remuxed using FFmpeg.wasm in your browser, making it compatible with all players and devices. Both contain identical video and audio; only the container wrapper differs. No re-encoding happens either way.
Open DevTools with F12, click the Network tab, and type m3u8 in the filter box. Then play or seek the video on the page. A request ending in .m3u8 will appear — right-click it and copy the URL.
CORS is a browser security policy that blocks cross-origin requests unless the server explicitly allows them. Many public CDN streams allow CORS; private, paywalled, or authenticated streams typically don't. There is no browser-level workaround — use a native tool like yt-dlp or ffmpeg for those streams.
No. DRM systems like Widevine (Netflix, YouTube Premium) and FairPlay (Apple TV+) encrypt video at the hardware level. Even if segments download, they are unplayable without the decryption key — which is never exposed to web applications by design. No browser-based tool can bypass this.
No. This is a fully client-side tool. All downloading, processing, and file assembly happens inside your browser. Your M3U8 URL, segment data, and output file never leave your device. Verify anytime by watching DevTools → Network while using the tool.
Yes, but all segments are held in RAM before saving. A 1-hour HD stream can use 1–3 GB of memory. FFmpeg.wasm needs additional memory for MP4 remuxing. For streams over 2 hours, a native tool is more reliable: ffmpeg -i playlist.m3u8 -c copy out.mp4
Chrome 90+, Firefox 79+, Edge 90+, and Safari 15+ are all supported. MP4 mode uses the single-threaded FFmpeg.wasm build and does not require SharedArrayBuffer — it works in all these browsers from a local HTML file.