What Is EXTM3U?
EXTM3U is an extended version of the M3U playlist format, identified by the #EXTM3U header at the top of the file. While a standard M3U file simply lists stream URLs, the extended format adds rich metadata tags that describe each channel — including its name, logo, group category, and EPG (Electronic Program Guide) data. This is why IPTV providers overwhelmingly prefer EXTM3U over the basic M3U format.
The extended format enables IPTV players like TiviMate, IPTV Smarters, and GSE Smart IPTV to display channel logos, organize channels into groups, and map EPG data for a cable-like viewing experience. Without these metadata tags, your IPTV player would only show a list of raw URLs with no channel names or categories, making navigation cumbersome and confusing.
EXTM3U is fully backward-compatible with standard M3U players. If a player doesn't support the extended tags, it will still play the streams — it just won't display the additional metadata. This makes EXTM3U the safest and most versatile format for IPTV playlists.
Playlist Structure
Every EXTM3U playlist follows a consistent structure. It starts with a header line (#EXTM3U) followed by one or more entries. Each entry has two parts: a metadata tag beginning with #EXTINF that holds the channel name and attributes, and the stream URL on the following line.
Here's a typical EXTM3U entry:
#EXTINF:-1 tvg-logo="bbc.png" group-title="News",BBC World News
http://provider.com/stream/bbc-world-news.m3u8
Breaking this down:
#EXTINF— The tag that begins each channel entry-1— Duration (always -1 for live streams)tvg-logo="bbc.png"— Path or URL to the channel logogroup-title="News"— Category for grouping channelsBBC World News— The channel name displayed in your playerhttp://...— The actual stream URL on the next line
| Tag | Purpose | Example |
|---|---|---|
| #EXTM3U | File header (must be first line) | #EXTM3U |
| #EXTINF | Channel metadata | #EXTINF:-1 tvg-logo="logo.png" group-title="Sports",ESPN |
| tvg-logo | Channel logo URL or path | tvg-logo="https://example.com/logo.png" |
| group-title | Category for channel grouping | group-title="Movies" |
| tvg-name | EPG channel identifier | tvg-name="BBC One" |
| tvg-id | Unique channel ID for EPG matching | tvg-id="BBCOneUK" |
| URL | Stream location | http://provider.com/stream.m3u8 |
Additional attributes you'll often encounter in EXTM3U files include:
tvg-id— A unique identifier used to match the channel with EPG data from external sourcestvg-name— The channel name as recognized by your EPG providertvg-shift— Time offset for EPG data (useful for timezone differences)audio-track— Specifies the audio language track for multi-language streams
Many IPTV providers now use Xtream Codes in combination with EXTM3U, where the playlist is dynamically generated from a server API. However, the underlying EXTM3U format remains the same whether you're using a static file or a dynamic URL.
How to Edit Your Playlist
Because EXTM3U is plain text, you can open it in any text editor. This makes it incredibly flexible for customization. You can reorder channels, rename them, remove ones you don't watch, or even merge multiple playlists together — just keep each #EXTINF line paired with its URL.
Recommended text editors for editing EXTM3U playlists:
- Windows: Notepad++ (free) or Sublime Text
- macOS: Visual Studio Code (free) or BBEdit
- Linux: gedit or Vim
- Online: Any browser-based text editor with UTF-8 support
Key editing tips:
- Always use UTF-8 encoding — This preserves international characters in channel names and prevents display issues
- Save as
.m3u8— The.m3u8extension signals UTF-8 encoding and is widely supported by IPTV players - Make backup copies — Before making bulk changes, save a copy of your original playlist in case something goes wrong
- Use bulk find-and-replace — Most editors support search and replace, which is useful for updating logos or group names across hundreds of channels
For advanced users, there are dedicated playlist editors that automate these tasks. Tools like m3u4u, IPTV Editor, and Xtream Editor offer visual interfaces where you can drag and drop channels, bulk-edit metadata, and apply changes to hundreds of entries in a single click. These are especially useful when managing playlists with 10,000+ channels.
.m3u8 to preserve special characters in channel names. And always back up your original file before making bulk changes!If you're editing a playlist that was provided as a URL (rather than a local file), you'll need to download it first, make your changes, and then upload it to a server or your IPTV player. Some IPTV players also allow you to edit the playlist directly within the app, though this varies by platform.
Frequently Asked Questions
#EXTINF is the metadata tag that stores a channel's name and details, such as duration, logo URL, group category, and EPG identifiers. It always precedes the stream URL and is essential for IPTV players to display channel information properly.
Yes, you can edit with Notepad on Windows, but it's not recommended for large playlists. A UTF-8-aware editor like Notepad++ or Visual Studio Code is better for preserving international channel names and handling large files efficiently.
The #EXTM3U header tells the player this is an extended playlist with metadata tags, enabling features like channel names, logos, groups, and EPG data. Without this header, the player may only display raw URLs.
The .m3u extension typically indicates ISO-8859-1 encoding (Latin), while .m3u8 explicitly signals UTF-8 encoding. For international channel names with special characters, .m3u8 is the better choice.
Add the tvg-logo attribute to each #EXTINF line with the URL or path to your logo image. For example: tvg-logo="https://example.com/logo.png". Make sure the image is accessible and properly formatted (PNG or JPG).