You found an .m3u8 link and hit save — and got a tiny text file instead of a video. That's expected: .m3u8 is a playlist for an HLS stream, not the video itself. Here's how to turn it into a real MP4, from the one-click browser-extension method to the ffmpeg command line.
The quick answer
What an .m3u8 file actually is
HLS (HTTP Live Streaming) is the format most news, live and video-on-demand sites use. Instead of one big file, the video is chopped into hundreds of short .ts (or .m4s) segments. The .m3u8 file is just a text playlist listing those segments in order — sometimes with an AES-128 key to decrypt them.
So "downloading the m3u8" really means: read the playlist, download every segment, decrypt them if they're encrypted, and join them into one MP4. A tool does all of that for you.
Method 1 — The browser extension (easiest)
If you can play the video on a page, this is the simplest route — and you don't have to hunt for the .m3u8 URL at all:
- Install the Clipmoth extension from the Chrome Web Store (free).
- Open the page and start the video you want.
- Click the Clipmoth icon — it detects the HLS stream, downloads every segment, decrypts AES-128 on the fly, and saves one MP4. No watermark, nothing uploaded.
Because it works from the page you're already on, there's nothing to copy or paste. If a site blocks it, or you only have a raw .m3u8 link with no page to play, use ffmpeg (Method 2) or the Windows desktop app.
Method 2 — ffmpeg (command line)
If you have ffmpeg installed, one command turns an m3u8 into an MP4:
ffmpeg -i "https://example.com/stream.m3u8" -c copy output.mp4The
-c copy part re-packages the segments without re-encoding, so it's fast and lossless. For an AES-128 stream, ffmpeg handles the decryption automatically as long as the key is reachable from the playlist.This is the most reliable method for tricky streams, but it's a terminal tool. If you'd rather not touch a command line, Method 1 (or a desktop app) does the same thing behind a button.
How to find the .m3u8 URL
If you only have the web page, not the raw stream link, grab it from your browser's developer tools:
- Open the page and start playing the video.
- Open DevTools (F12) and go to the Network tab.
- In the filter box, type
m3u8. - Reload if needed — the request that appears is your playlist URL. Right-click → Copy → Copy link address.
Some sites load a "master" playlist that points to several quality variants; copying the master link is fine — a good tool (ours included) will pick the best variant for you.
When an m3u8 won't download
- Live streams — an ongoing live has no end yet; you can only capture what's aired so far, and many tools refuse until it ends.
- DRM (Widevine/FairPlay) — Netflix, Prime Video and similar wrap HLS in DRM. No legitimate tool can save those, and you shouldn't try.
- CORS-blocked — some sites block cross-origin browser fetches; a desktop tool (or our Windows app) isn't bound by browser security rules and can usually still save it.
- Expired/signed URLs — many m3u8 links are time-limited. If it worked a minute ago and now 403s, re-copy a fresh link.
Frequently asked questions
Why did my .m3u8 download save as a text file?
Because .m3u8 is a playlist, not the video. It's a text file listing the stream's segments. To get an actual video you need a tool that reads the playlist, downloads all the segments, and joins them into an MP4 — like the Clipmoth browser extension or ffmpeg.
Can I convert m3u8 to MP4 without the command line?
Yes — the Clipmoth browser extension does it with a click when the stream is playing on a page, no terminal needed and nothing uploaded. If you have only a raw .m3u8 URL, ffmpeg is the most reliable one-command option.
Does it handle AES-128 encrypted streams?
Yes. Many HLS streams use AES-128 encryption; the key is usually referenced in the playlist itself. Both the Clipmoth extension and ffmpeg fetch that key and decrypt the segments automatically.
Why does my m3u8 link give a 403 error now?
Many streams use signed, time-limited URLs. Once the token expires the link returns 403. Reload the page, start the video again, and copy a fresh .m3u8 URL from the Network tab.
Got HLS streams to save? One click.
The Clipmoth browser extension turns the HLS stream playing on a page into one clean MP4 — AES-128 decryption included, nothing uploaded, no URL hunting. Need YouTube, 4K or playlists too? One $9.99 lifetime key covers the Windows app as well.
Add Clipmoth to Chrome See Premium