Guide

M3U playlists: the format behind every IPTV list

An M3U list is not a television service: it is a text file containing names and addresses. Understanding how it is put together explains most of the problems people run into when setting up a player.

Quick answer

The M3U format is a list of tracks or streams, born for music players and adopted by IPTV in its extended M3U8 variant, which adds metadata: channel name, group, logo and the identifier used for the programme guide.

The file contains no video. It contains addresses pointing elsewhere: if those addresses stop responding, the list remains valid but plays nothing. That is why a playlist that “works” stops working without anybody having touched it.

How an M3U file is built

An extended playlist file starts with a header line and continues in pairs of lines: one describes the channel, the next carries the address of the stream.

#EXTM3U x-tvg-url="https://example.tld/epg.xml"
#EXTINF:-1 tvg-id="channel.one.it" tvg-name="Channel One" tvg-logo="https://example.tld/logos/one.png" group-title="General",Channel One
https://example.tld/live/channel-one/index.m3u8

Each element has a precise job:

  • #EXTM3U opens the file; the x-tvg-url attribute tells the player where to find the programme guide.
  • #EXTINF:-1 opens the channel description. The -1 means indefinite duration, as for a live stream.
  • tvg-id is the identifier linking the channel to its schedule in the EPG file. It is the field that causes the most trouble: if it does not match exactly, the guide stays empty for that channel.
  • tvg-name and tvg-logo are the name and logo shown in the interface.
  • group-title defines the group, meaning how channels are gathered together in menus.
  • The text after the comma is the name displayed when tvg-name is absent.
  • The following line is the stream address, typically an HLS .m3u8 manifest.

Local playlist, remote playlist, Xtream portal

There are three ways a service hands over the source, and each changes how the app behaves.

MethodWhat you receiveRefreshNote
Local fileAn .m3u file to load into the playerManual: the file stays as it isUseful for testing, awkward over time
Remote addressA URL that returns the playlistThe player re-downloads it periodicallyThe most common case
Xtream Codes portalServer address, username and passwordDynamic: channels, EPG and archive arrive through the APIRequires a player that supports it

The third case is the one that most often causes confusion: someone holding Xtream Codes credentials does not have “a list”, and looking for an .m3u file leads nowhere. What is needed is a player that states support for it — the relevant column is in the comparison table.

On iPhone and iPad, players such as UHF, IPTVX, Smarters Player Lite and GSE import M3U and M3U8 playlists or Xtream credentials, depending on the format the service supplies; the comparison for Apple devices is in the guide to iOS IPTV players.

Why a playlist stops working

The file is static; the addresses inside it are not — on how transmission works, the introductory guide explains the segment mechanism. The most frequent causes, in order of likelihood:

The origin server no longer responds. The address pointed at a stream that has been moved, switched off or cut. No player setting can make up for that.

The playlist has expired. Many services generate addresses carrying a temporary token: once it expires, the address remains formally valid but the server refuses the request.

The connection limit has been reached. If the service allows two simultaneous devices and you have three active, the third gets an error the player often shows as a black screen.

The stream format is not supported by the device. The channel is there and responding, but that hardware cannot decode the codec. You can recognise it because other channels in the same list work.

The fastest way to tell these cases apart is to open the playlist with VLC on a computer, as described in the guide for Windows and macOS. The other technical guides are collected in the dedicated section.

An M3U file is an open, neutral format, exactly like a .txt file. What matters is what the addresses inside it point to and who has the right to distribute those streams.

There is a perfectly lawful use of the format: many public and local broadcasters distribute their own stream freely, and some open-source collections aggregate their official addresses. A legitimate service, in the same way, hands its subscribers a personal playlist: that is the standard way IPTV is distributed.

Frequently asked questions

How do I open an M3U file?

With any IPTV player, or with VLC for a quick check. With a text editor you can read its contents: it is plain text.

Where can I find the best IPTV lists?

If the question means collections of premium channels, we do not point to them: they are unauthorised redistributions. The legitimate source of a playlist is the service you subscribe to, which supplies it along with your access.

What are self-updating lists?

Remote playlists that the player re-downloads at regular intervals. “Self-updating” therefore describes how the player reads them, not a property of the file.

Can I create my own M3U list?

Yes, with a text editor, following the structure shown above. It makes sense for gathering streams you have the right to play, such as the free live feeds of broadcasters who publish them.

Can I use an M3U list on an iPhone?

Yes. You install a player from the App Store — UHF, IPTVX, Smarters Player Lite or GSE — and paste the .m3u address, or import the file from the Files app or iCloud Drive. The player comparison is in the guide to iOS IPTV players.

The list works on my phone but not on the TV.

Nearly always a codec or local network problem rather than one with the playlist. The causes are collected in the buffering guide.

Sources

  1. RFC 8216 — HTTP Live Streaming (the M3U8 format) (opens in a new tab)
  2. Kodi Wiki — configuring PVR IPTV Simple Client (opens in a new tab)
  3. VideoLAN — official VLC documentation (opens in a new tab)