2026-07-036 min readm3u8 tags reference, hls extended tags, m3u8 tags list

M3U8 Extended Tags: A Complete Reference Guide

Complete reference for M3U8 extended tags used in HLS streaming. Every tag explained with syntax, examples, and use cases.

Basic Tags

TagSyntaxDescription
#EXTM3U#EXTM3UFile header, must be the first line
#EXTINF#EXTINF:<duration>,<title>Segment information
#EXT-X-VERSION#EXT-X-VERSION:<n>HLS protocol version
#EXT-X-TARGETDURATION#EXT-X-TARGETDURATION:<s>Maximum segment duration in seconds
#EXT-X-MEDIA-SEQUENCE#EXT-X-MEDIA-SEQUENCE:<n>Sequence number of first segment
#EXT-X-ENDLIST#EXT-X-ENDLISTIndicates no more segments will be added

Stream and Media Tags

  • #EXT-X-STREAM-INF:BANDWIDTH=1280000,RESOLUTION=720x480,CODECS="avc1.66.30,mp4a.40.2"
    Describes a variant stream. Next line is the URL to the media playlist.
  • #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",URI="audio.m3u8"
    Describes an alternate rendition (audio, subtitles, etc.)
  • #EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=128000,URI="iframe.m3u8"
    References a playlist of I-frame segments for trick play

Live Stream Tags

  • #EXT-X-PLAYLIST-TYPE:EVENT or #EXT-X-PLAYLIST-TYPE:VOD
    Specifies playlist type. Omit for live streams.
  • #EXT-X-DISCONTINUITY
    Indicates a break between segments (e.g., ad insertion, codec change)
  • #EXT-X-PROGRAM-DATE-TIME:2026-01-01T00:00:00Z
    Associates a timestamp with a segment for synchronization
  • #EXT-X-SERVER-CONTROL:SKIP-UNTIL=... CAN-SKIP-UNTIL=... CAN-BLOCK-RELOAD=...
    Low-latency HLS control parameters

Encryption Tags

  • #EXT-X-KEY:METHOD=AES-128,URI="https://key.server/key.bin",IV=0x...
    Specifies encryption method and key location. The METHOD can be AES-128, SAMPLE-AES, or NONE.
  • #EXT-X-SESSION-KEY:METHOD=AES-128,URI="..."
    Used in master playlists to specify encryption keys before playback begins

Session Data Tags

  • #EXT-X-SESSION-DATA:DATA-ID="com.example.title",VALUE="Example Video"
    Carries metadata in the master playlist
  • #EXT-X-START:TIME-OFFSET=30
    Recommends a starting offset for the playlist
  • #EXT-X-DATERANGE:ID="ad1",START-DATE="2026-01-01T00:00:00Z",CLASS="ad"
    Marks date ranges for events like ad breaks

Related Articles