M3U8 Tools

What is M3U8? A Complete Guide to HLS Playlist Files

M3U8 is a UTF-8 encoded text file that serves as the playlist for HTTP Live Streaming (HLS), Apple's adaptive streaming protocol. It tells video players where to find media segments and how to play them back in sequence.

What is HLS (HTTP Live Streaming)?

HTTP Live Streaming (HLS) is a media streaming protocol developed by Apple and widely adopted across the web. Instead of sending a single large video file, HLS breaks the video into small chunks calledsegments (typically 2-10 seconds each) and delivers them over standard HTTP.

The key advantage of HLS is adaptive bitrate streaming (ABR): the player can dynamically switch between different quality levels (e.g., 720p, 1080p, 4K) based on the viewer's network conditions. This ensures smooth playback without buffering, even on slow connections.

M3U8 File Structure

An M3U8 file is a plain text file with specific tags that describe the stream. Here is a simple example:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
segment-001.ts
#EXTINF:10.0,
segment-002.ts
#EXTINF:10.0,
segment-003.ts
#EXT-X-ENDLIST

Key tags explained:

  • #EXTM3U — Marks this as an extended M3U playlist
  • #EXT-X-VERSION:3 — HLS protocol version
  • #EXT-X-TARGETDURATION:10 — Maximum segment duration in seconds
  • #EXTINF:10.0, — Duration and optional title of the next segment
  • #EXT-X-ENDLIST — Signals end of a VOD (Video on Demand) stream

Master Playlist vs Media Playlist

There are two types of M3U8 files:

Master Playlist

Also called a Variant Playlist. It lists multiple versions of the same content at different quality levels. Uses #EXT-X-STREAM-INF tags. The player picks the best quality based on available bandwidth.

Media Playlist

Contains the actual list of TS segment URLs. This is what the player uses to fetch and play video chunks sequentially. A Master playlist references one or more Media playlists.

What are TS Segments?

TS stands for MPEG Transport Stream. Each .ts file is a short chunk of video (typically 2-10 seconds) containing multiplexed audio and video data. The player downloads these segments in order and plays them seamlessly as a continuous stream.

Because segments are independent, they can be cached by CDNs, delivered over standard HTTP, and played back before the entire video is downloaded. This is why HLS is the dominant protocol for live streaming and on-demand video delivery.

Adaptive Bitrate Streaming (ABR)

Adaptive Bitrate Streaming is the core innovation of HLS. A Master playlist offers the same video at multiple resolutions and bitrates (e.g., 360p, 720p, 1080p, 4K). The player monitors network conditions and automatically switches between these variants:

  • When bandwidth drops, the player switches to a lower quality to avoid buffering
  • When bandwidth improves, it switches to a higher quality for a better viewing experience
  • Switches happen at segment boundaries, making them seamless to the viewer

How to Open or Play M3U8 Files

You can open and play M3U8 files in several ways:

  1. Use our online M3U8 player — Just paste the URL and start watching instantly. No software installation required.
  2. VLC Media Player — Open VLC, go to Media → Open Network Stream, paste the M3U8 URL, and click Play.
  3. Safari browser — Safari has native HLS support. Simply open an M3U8 URL directly in Safari on macOS or iOS.
  4. hls.js — A JavaScript library that enables HLS playback in browsers that don't natively support it (Chrome, Firefox, Edge).

M3U8 vs MP4 vs DASH

FeatureM3U8 (HLS)MP4DASH
TypeStreaming playlistSingle file containerStreaming manifest
Adaptive BitrateYesNoYes
Browser SupportSafari native; hls.js for othersUniversaldash.js or Shaka Player
DRM SupportFairPlay, WidevineN/AWidevine, PlayReady
Use CaseLive & VOD streamingDownload & local playbackPremium streaming services

Ready to work with M3U8 files?

Use our free online tool to play, analyze, or download any M3U8 stream.

Open M3U8 Tools →