Technical reference

M3U Playlist Format Reference: Tags, URLs & EPG

Use this reference when you need to read, create, or troubleshoot an M3U playlist. It explains the common playlist structure and metadata you are likely to encounter, while separating the playlist format from the media service and access rights behind it.

M3U foundations9 min read

The basic M3U structure

An M3U playlist is plain text. A common extended playlist begins with #EXTM3U, followed by one or more item descriptions and the media locations those descriptions refer to.

The playlist is an index, not the media itself. A player parses the text first and then attempts to open each referenced location.

Minimal authorized example
#EXTM3U
#EXTINF:-1,Sample documentary
https://media.example.org/authorized/sample-documentary.mp4

What #EXTM3U means

#EXTM3U is commonly used as the extended-playlist header. It signals that the file uses the extended M3U form and may contain metadata lines such as #EXTINF.

The header does not make a source public or grant permission to access the media referenced later in the file.

What #EXTINF means

#EXTINF describes the media item that follows. In the common form, it contains a duration value and a display name. IPTV-oriented playlists may add attributes after the duration to provide channel metadata.

Common #EXTINF shape
#EXTINF:-1,Sample channel
https://media.example.org/authorized/channel.mp4

Common IPTV playlist metadata

IPTV playlists often include metadata attributes that help a player label and organize channels. Support varies by player, so treat these attributes as playlist conventions rather than universal requirements.

  • tvg-id: a channel identifier commonly used to associate a channel with programme-guide data.
  • tvg-name: a display or matching name for the channel.
  • tvg-logo: a URL or reference used by supporting players for channel artwork.
  • group-title: a category or group label used to organize entries.
Illustrative metadata example
#EXTINF:-1 tvg-id="sample.example" tvg-name="Sample Channel" tvg-logo="https://media.example.org/logo.png" group-title="News",Sample Channel
https://media.example.org/authorized/channel.mp4

The media URL comes after the metadata

In the common extended-playlist pattern, the media location appears on the line after the #EXTINF entry. It may be a local path or a remote URL that the player is authorized to access.

If the playlist loads but playback fails, test the media location separately. Parsing the playlist and retrieving the media are different stages.

M3U and EPG data are separate layers

An M3U playlist can identify channels while an electronic programme guide supplies programme metadata. A player may connect the two using a channel identifier or another documented matching field.

An M3U file does not automatically contain a complete EPG. Check the playlist, player, and EPG provider documentation to see how programme data is connected.

M3U vs M3U8

M3U8 identifies an M3U-style playlist encoded as UTF-8. It is also widely used by HTTP Live Streaming, where playlists contain HLS-specific tags and rules. Changing a file extension does not convert its contents or encoding.

M3U file vs M3U URL

The same playlist text can be stored locally as a file or delivered by a URL. A URL is simply a way for a compatible client to retrieve playlist data; it does not change the underlying playlist semantics.

Validation checklist

When a playlist fails, validate one layer at a time instead of changing the file, player, network, and source simultaneously.

  • Confirm the file is plain text and begins with the expected playlist header when using the extended form.
  • Check that each metadata line is followed by the media location it describes.
  • Check URLs for truncation, spaces, expired credentials, or other source-specific changes.
  • Confirm the player supports the playlist metadata and media protocol being used.
  • If EPG data is expected, verify the EPG source and channel identifiers separately.
  • Keep a small known-good sample so formatting problems can be isolated from source or network failures.

Authorized-use boundary

Playlist syntax does not establish ownership, licensing, or permission. Use examples and sources you own, license, or are clearly authorized to access, and do not use playlist tooling to bypass authentication or access restrictions.

Further reading

Sources and documentation

Quick answers

Common questions

What is the basic structure of an M3U playlist?

A common extended M3U playlist starts with #EXTM3U, then uses #EXTINF metadata followed by the media location for each item.

What does #EXTINF mean in an M3U file?

#EXTINF commonly describes the following media item, including its duration and display name. IPTV playlists may add metadata attributes that compatible players can use.

What is tvg-id used for?

tvg-id is commonly used as a channel identifier so playlist entries can be matched with programme-guide data when the player and EPG source support that convention.

Does an M3U playlist include EPG data?

Not necessarily. Playlist entries and programme-guide data are separate layers unless the player and playlist explicitly connect them.

Can I use this format reference for any IPTV playlist?

Use it as a practical reference for common M3U conventions, but check the documentation for the specific player, playlist provider, and metadata conventions because support can vary.