You tried to save a video and got a tiny text file

An m3u8 file is a playlist, not a video — here's how to get the actual video

You went to save a video, and what landed on your disk was a few-kilobyte .m3u8 file that won't play. That's not a broken download — it's exactly what an m3u8 is. Here's what the file actually is, why you ended up with it, and how to get the real MP4.

What an .m3u8 file actually is

An m3u8 is a plain-text playlist. The name is just "M3U" (an old playlist format) plus "8" for UTF-8 text. Open one in a text editor and you won't see video — you'll see a list of web addresses pointing to short chunks of the video, along with notes about the quality levels on offer.

This is how most video streams now: the method is called HLS (HTTP Live Streaming). Instead of one big file, the video is cut into hundreds of small segments. Your player reads the m3u8, fetches the segments in order, and stitches them together as it goes, so it feels like one continuous video. The m3u8 is the index — tiny because it's only a list. The actual video lives in the segments it points to.

Why you got the m3u8 instead of the video

When you try to download a streaming video — right-click save, a "downloader" site, a browser tool — the thing that's directly grabbable is often the playlist, not the video. There's frequently no single video file sitting on the server to take; the video only exists as segments. So the save hands you the m3u8, and you end up with the index instead of the thing the index points to.

And no — you can't rename it. There's nothing to rename. A playlist with no video in it stays a playlist no matter what extension you give it.

How to actually save the video

To get a real MP4, every segment the m3u8 lists has to be fetched and joined back into one file. There are two common ways to do that, depending on how technical you want to get.

The command-line way

ffmpeg or yt-dlp

If you can get the m3u8 URL and it's not locked to a session, you can hand it to ffmpeg or yt-dlp and have them download and join the segments:

ffmpeg -i "stream.m3u8" -c copy out.mp4

Powerful and free — but you have to find the URL, open a terminal, and it falls over if the stream needs your logged-in session to serve the segments.

The browser way

BoltStream

BoltStream is a Chrome extension that saves the stream the tab is already playing. You never find an m3u8 URL, never open a terminal — it reads what your browser is streaming, in your session, and writes the MP4.

The trade-off: it works on the video in front of you, one at a time, not as a scriptable command-line job. If the page plays, the save works.

Saving an HLS video the no-URL way

  1. Add BoltStream to Chrome

    Free, from the Chrome Web Store. No account, no setup. You do this once.

  2. Open the video and press play

    Let it run for a few seconds so the browser is actually streaming the HLS segments. No need to find the m3u8.

  3. Click the icon and save the MP4

    BoltStream joins the segments for you and writes one MP4 to your Downloads folder. Open it once before you close the tab.

Common questions

Can I rename .m3u8 to .mp4 to get the video?
No. There's no video inside an m3u8 file to rename — it's a text playlist that lists where the video segments are. Renaming it just gives you a text file with the wrong extension.
How do I open an m3u8 file?
A player like VLC can open an m3u8 and play the stream, as long as the segment URLs it points to are still live and reachable from your network. But that plays the video; it doesn't save it. To end up with an MP4 on disk, the segments have to be downloaded and joined.
Why is my m3u8 file only a few KB?
Because it's only a list. It holds the URLs of the video chunks and some quality information — not the video itself. The actual video can be hundreds of MB spread across the segments the playlist points to.
What's the difference between m3u8 and HLS?
HLS (HTTP Live Streaming) is the streaming method; m3u8 is the playlist file format HLS uses. In practice, if you've run into an .m3u8, you're dealing with an HLS stream.
Do I need to find the m3u8 URL to use BoltStream?
No. BoltStream saves the stream your browser is already playing, so you never have to locate or paste an m3u8 URL. Open the page, press play, save the MP4.

Stop fighting the m3u8

Add BoltStream to Chrome. Next time a video streams over HLS, you save the MP4 from the tab — no playlist, no segment URLs, no terminal.

Add to Chrome — Free