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.
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.
#EXTM3U
#EXTINF:-1,Sample documentary
https://media.example.org/authorized/sample-documentary.mp4What #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.
#EXTINF:-1,Sample channel
https://media.example.org/authorized/channel.mp4Common 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.
#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.mp4The 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.
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.
