An M3U8 file is a UTF-8 text playlist, not a video file. In HTTP Live Streaming (HLS), it tells a player which media segments or variant playlists to request and in what order. Downloading only the .m3u8 usually saves the instructions—not the video itself.
You may encounter an M3U8 link when viewing a live broadcast, inspecting a website's network requests, or trying to save a recording on Windows. Understanding the playlist makes it easier to tell whether a stream can play, which quality is available, and why a download sometimes fails.
What is inside an M3U8 file?
Open a simple media playlist in Notepad and you might see:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6.0,
segment0.ts
#EXTINF:5.2,
segment1.ts
#EXT-X-ENDLIST
#EXTM3Uidentifies an extended M3U playlist.#EXT-X-VERSION:3indicates the playlist's HLS compatibility version, not its video quality.#EXT-X-TARGETDURATION:6declares the maximum target segment duration in whole seconds.#EXT-X-MEDIA-SEQUENCE:0numbers the first segment in this playlist.#EXTINF:6.0,gives the following segment's duration in seconds.segment0.tsandsegment1.tsare segment URLs, resolved relative to the playlist's URL unless absolute.#EXT-X-ENDLISTmeans no more segments will be added. Its absence does not, by itself, prove that a stream is live.
The 8 in M3U8 denotes UTF-8 encoding. The extension is a clue about how the playlist text is encoded, not a video codec. The segment names above use .ts (MPEG-2 Transport Stream), but modern HLS can also use fragmented MP4 (.m4s) and other specified segment formats.
Think of the M3U8 as a table of contents: the text describes where the media lives; the media bytes live in the referenced resources.
Master playlist vs media playlist
HLS commonly uses two levels of playlists:
| Master playlist (multivariant) | Media playlist | |
|---|---|---|
| Lists | Alternative streams or renditions | Actual media segments |
| Key tag | #EXT-X-STREAM-INF |
#EXTINF |
| Purpose | Select an available quality or track | Fetch and play segments in sequence |
| Typical file | master.m3u8 |
1080p/index.m3u8 |
For example, a master playlist might contain:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=900000,RESOLUTION=640x360
360p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3200000,RESOLUTION=1920x1080
1080p/index.m3u8
Here the BANDWIDTH values describe the declared peak bitrate of each variant, while RESOLUTION advertises its frame dimensions. The player can choose a variant, load its media playlist, and then request that playlist's segments. Some HLS presentations also specify separate audio and subtitle renditions with #EXT-X-MEDIA.
A master playlist is not simply the highest-resolution video. It is a menu of available variants, and quality options depend entirely on the source.
Why do websites use M3U8 and HLS?
Adaptive playback. A player can switch between available variants as network conditions and device capabilities change. This can reduce buffering, although uninterrupted playback is never guaranteed.
Ordinary HTTP delivery. Playlists and segments can be served over HTTPS through web servers and content delivery networks (CDNs). A website does not need to transmit one giant file before playback starts.
Live and on-demand video. A live media playlist can update as new segments are produced; a video-on-demand (VOD) playlist typically describes a finished presentation. HLS is used in both settings.
Multiple tracks. A presentation may offer different audio languages, subtitles, resolutions, and bitrates. HLS can also use fMP4/CMAF segments, so it is inaccurate to say that every M3U8 stream consists only of .ts files.
Can you open or play an M3U8 file on Windows?
Yes—if the referenced stream is accessible and your player supports it. VLC can open many HLS URLs through its network-stream feature. Some browsers play HLS natively; others rely on a site's JavaScript player. Opening a local playlist in Notepad is a useful way to inspect its text, not to watch the video.
A saved .m3u8 alone usually will not play offline because it references remote segments, keys, or other playlists. Relative paths can also break when the playlist is moved away from its original base URL. Signed links may expire or require an authorized session.
If playback fails, first determine whether you have the actual playlist URL, whether its referenced segments still respond, and whether the stream uses an access method your player supports.
How to save an M3U8 stream as one MP4 file
An M3U8 is not converted into video by renaming it to .mp4. Instead, a tool must fetch the referenced media and, where compatible, package the tracks into an MP4 container.
Option 1: FFmpeg (command line)
For a stream you are authorized to save, a straightforward starting point is:
ffmpeg -i "https://example.com/path/master.m3u8" -c copy output.mp4
Replace the example address with a working, permitted HLS playlist URL. The -c copy option copies compatible encoded streams without re-encoding, which is generally fast and avoids generational quality loss. It is not guaranteed to work: missing segments, restricted access, encryption, incompatible streams, or live-playlist behavior can change the result. For a live stream, stop recording when you have captured the portion you need.
Option 2: Direct Link Downloader (Windows)
- Copy the working M3U8 link or a supported video-page link for content you own or have permission to save.
- Open Direct Link Downloader on Windows and paste the link. Allow the app to analyze available streams.
- Select an available quality and destination folder, then start the download. For supported streams, the app collects the necessary segments and saves a playable output file; MP4 availability depends on source compatibility.
- Open the resulting video to confirm the duration, picture, and audio before deleting any source files.
Direct Link Downloader for Windows — view on Microsoft Store →
What saving an M3U8 stream cannot do
- Bypass DRM. HLS may use encryption, but
#EXT-X-KEYalone does not prove that a stream uses DRM. Protected playback systems and licenses are a different matter. Do not expect an ordinary downloader to decrypt DRM-protected streams or bypass access controls. - Restore an expired link. Signed playlist and segment URLs can expire or depend on cookies, headers, or permissions. Obtain a new authorized link rather than assuming the text file is broken.
- Invent a better picture. An M3U8 playlist cannot create 4K from a 720p source. A master playlist may expose several qualities, but the highest available one is the upper bound.
- Guarantee a perfect MP4. Missing audio renditions, incomplete live recordings, unsupported codecs, or damaged segments can make the output incomplete or unplayable.
Before troubleshooting, inspect a public or authorized playlist with the free M3U8 Inspector. It can help identify available variants and stream characteristics. Do not paste private signed URLs into tools unless you trust how they handle those URLs.
Frequently asked questions
Is an M3U8 file a virus?
An M3U8 is normally plain text, not an executable program. That does not make every link in it safe: a playlist from an untrusted source can reference malicious or deceptive servers. Use reputable software and do not run unrelated files offered as a supposed video fix.
What is the difference between M3U and M3U8?
Both are playlist formats. M3U8 explicitly uses UTF-8, which is important for non-English filenames and URLs. In HLS, the playlist text follows the HLS specification; a generic .m3u music playlist is not automatically an HLS stream.
Is M3U8 the same as MP4?
No. .m3u8 describes where to find and how to sequence media; .mp4 is a media container that can hold video and audio tracks. A small playlist file is not the same as a complete recording.
What is the difference between M3U8 and a TS file?
The playlist points to media; a .ts file can contain one MPEG-2 Transport Stream segment or a longer recording. HLS can use other segment containers too. See our guide to saving M3U8 streams as MP4.
Why does an M3U8 link work in the browser but fail in a downloader?
The site may supply authorization, cookies, referer headers, short-lived URLs, separate audio tracks, or DRM through its player. Compatibility and permissions vary by source. A player successfully displaying video does not guarantee that a standalone download will work.
Can I save a live HLS stream?
Some unprotected, authorized live streams can be recorded while the stream is running. A live playlist may expose only a rolling window of segments, so you generally cannot recover earlier footage that is no longer available.
The takeaway
An M3U8 file is the map, not the movie. Its master playlist selects a variant; its media playlist identifies the segments that a player retrieves. To keep a usable offline copy, you need the accessible media and an appropriate output format—not just the .m3u8 text.
For supported streams on Windows, Direct Link Downloader can simplify saving the available media as a playable file.
Only save content you own or are authorized to download. DRM-protected streams and access-control bypasses are not supported.