M3U Playlists Explained: What's Inside and How They Work

Short answer: an M3U playlist is a plain text file that lists media addresses, one per entry, with optional lines describing each one. The format began around 1996 as the 'MP3 URL' playlist for Fraunhofer's WinPlay3 player; IPTV reuses it to list channels, with extra tags for the channel name, logo, group and guide ID. The non-obvious point is that the playlist contains no video and no programme guide: it's a list of pointers. If a link is dead, a logo is missing or the guide is blank, the fix is in those pointers, not in your player app.

At a glance

M3U in one box

What it is A text list of stream addresses
Extensions .m3u, or .m3u8 for UTF-8 text
Key IPTV tags tvg-id, tvg-logo, group-title
Guide data Separate XMLTV file, linked by tvg-id
Opens in Almost every media and IPTV player

Where the format came from

M3U is short for 'MP3 URL'. Fraunhofer, the institute behind the MP3 format, introduced it around 1996 for its WinPlay3 player, and Winamp and others adopted it soon after. The idea was simple: rather than copying songs into a list, store a text file that points to where each song lives.

Later, an extended M3U form added lines beginning with #EXT to carry titles and durations. Apple then built HTTP Live Streaming (HLS) on top of the extended format, and it was published as an internet standard, RFC 8216, in 2017. That's why so many video streams today end in .m3u8.

IPTV took the same file and added its own attributes for channels, logos and groups. The result is a format that's decades old, loosely specified and almost universally supported.

Anatomy of an IPTV playlist

Here is a two-channel example with invented addresses:

#EXTM3U url-tvg="https://example.com/guide.xml"
#EXTINF:-1 tvg-id="news.example" tvg-name="Example News" tvg-logo="https://example.com/news.png" group-title="News",Example News
https://example.com/live/news.m3u8
#EXTINF:-1 tvg-id="sport1.example" tvg-logo="https://example.com/sport1.png" group-title="Sport",Example Sport 1
https://example.com/live/sport1.m3u8

Line 1 is the header. #EXTM3U tells the player this is an extended playlist; many IPTV lists add url-tvg (or x-tvg-url) with the address of the guide file.

Each channel is two lines. An #EXTINF line describes it, and the next line is the stream address. The -1 means 'no fixed duration', which is what live channels use. The text after the final comma is the name the player displays.

The tags that matter

Tag What it does If it's wrong
tvg-id Links the channel to its guide entry Blank or wrong programme guide
tvg-name Alternative name used for matching Guide matched to the wrong channel
tvg-logo Web address of the channel logo Missing or broken logo
group-title Category the channel sits in Channels lumped into one long list
tvg-chno Preferred channel number Numbering out of order
tvg-shift Hours to shift guide times Guide an hour or more out
catchup attributes Tell the player how to request past programmes Catch-up unavailable

Not every player reads every tag. TiviMate, Kodi's IPTV Simple Client and most dedicated players honour the common ones; VLC reads the name and logo but ignores guide-related tags.

M3U vs M3U8

The two extensions cause more confusion than they should, because the same letters mean two related things.

As a file type, .m3u8 simply means the text is encoded in UTF-8, so channel names in any language display correctly. An IPTV playlist can use either extension.

As a stream, an address ending .m3u8 is usually an HLS stream. That 'playlist' lists short video segments a few seconds long, which the player fetches one after another. It's a playlist of pieces of one channel, not a list of channels.

So a channel list (.m3u) can point to channels whose streams are themselves HLS playlists (.m3u8). Both are text; they just work at different levels.

Where the TV guide comes from

The M3U itself carries no programme information. Listings come from a separate XMLTV file: an XML document listing channels and, for each, programmes with start and end times, titles and descriptions.

The link between the two is the tvg-id. If a channel's tvg-id in the playlist is sport1.example, the player looks for a channel with exactly that ID in the XMLTV file. One character out, including capital letters, and that channel's guide stays empty.

That's why guide problems are almost always matching problems. Many players let you manually assign a guide entry to a channel, which overrides a wrong or missing ID.

M3U links vs Xtream logins

Providers usually offer an account in one or both of two forms.

An M3U link is a single web address that returns the whole playlist. It works in nearly every player, including VLC and Kodi, but the player downloads everything at once, which can be slow with very large lists.

An Xtream-style login is a server address, username and password. Compatible players ask the server for categories, channels and guide data separately, and can show the account's expiry date and connection limit. It's faster with big catalogues but only works in players that support it.

Often both describe the same account. Our Xtream Codes login explainer covers the second form in detail.

Reading and editing a playlist

Open it as text. Download the file, or open the link in a browser, and view it in any text editor. On a phone, a text-viewer app does the same.

Remove what you don't watch. Delete a channel by removing both its #EXTINF line and the address line beneath it. A smaller list loads faster everywhere.

Fix a guide ID. Change the tvg-id to match the ID in the guide file.

Mind the trade-off. An edited local copy won't pick up changes your provider makes later. If stream addresses change, you'll need to download and edit again. Many players offer hiding and favourites as a way to tidy the list without editing the file.

Keep it private. Provider playlists often contain your username and password inside every address. Don't post a playlist online, even to ask for help.

Common playlist problems, decoded

'Playlist is empty' or fails to load. Open the link in a browser. If you get an error page rather than text starting with #EXTM3U, the address, account or server is the problem.

Loads, but every channel fails. Often an expired account or a connection limit already reached; the playlist is served but the streams refuse you.

Some channels fail. Those individual stream addresses are dead or temporarily offline. Nothing in the player will fix them.

Strange characters in names. The file is UTF-8 but saved or read as another encoding. Renaming it to .m3u8 often solves it.

Everything in one enormous group. The playlist has no group-title tags. Some players let you create groups yourself; otherwise, ask the provider for a categorised list.

Slow to open on a TV stick. Large playlists with tens of thousands of entries strain low-memory devices. A filtered list, or an Xtream login in a compatible player, loads far faster.

The format is neutral: broadcasters, public-service organisations and licensed providers all publish M3U playlists, and opening one is entirely normal.

What matters is the source. Lists that bundle premium sport and film channels for a fraction of their market price are unlicensed; they are what rights holders pursue, and they often vanish without warning. Free public lists of free-to-air channels exist, but go stale quickly and should be treated as best-effort.

Because the format is loosely defined, malformed playlists have in the past triggered bugs in media players. Keep your player updated, and only load playlists from sources you trust. Our subscription guide covers choosing a provider.

Quick answers

What is an M3U playlist? A plain text file listing media addresses. In IPTV, each entry is a channel: a descriptive #EXTINF line followed by the stream address.

What does M3U stand for? MP3 URL. The format was introduced around 1996 for Fraunhofer's WinPlay3 MP3 player.

What is the difference between M3U and M3U8? An .m3u8 file is an M3U playlist saved as UTF-8 text. Separately, stream addresses ending .m3u8 are usually HLS streams, which list short video segments rather than channels.

Does an M3U playlist include the TV guide? No. Guide data comes from a separate XMLTV file. The playlist links to it through each channel's tvg-id and sometimes a url-tvg address in the header.

Why are some channels missing logos or guide data? The tvg-logo address may be broken, or the tvg-id may not match any channel in the guide file. Both are fixed in the playlist, not the player.

Can I edit an M3U playlist? Yes, in any text editor. Remove both lines for a channel to delete it. An edited copy won't receive later changes from your provider.

Which apps can open M3U playlists? Almost all: VLC, Kodi with the IPTV Simple Client, TiviMate and most dedicated IPTV players on phones, TVs and computers.

Are M3U playlists legal? The format is legal and widely used by broadcasters and licensed services. Legality depends on the content a playlist points to.


The M3U format itself changes rarely, but player support for individual tags and attributes varies between apps and versions. Checked September 2026.