Skip to content
KLYVOPLAY

October 29, 2026 · 7 min read

What is an M3U file? M3U and M3U8 playlists explained

An M3U file is a plain-text playlist: a list of channel names and stream addresses. Here is how it is built, how M3U8 differs, and how Klyvo Play reads an M3U link.

An M3U file is a plain-text playlist: a list of entries, each with a name and the address of a stream. In IPTV, an M3U playlist lists live channels — sometimes films and series too — with their logo, their category and the identifier used by the TV guide. M3U8 is the same format saved in UTF-8, which keeps accents and non-Latin names intact, and it is also the extension used by HLS streams. This guide explains what an M3U file looks like, how M3U and M3U8 differ, what an M3U link is, and how Klyvo Play handles one.

Klyvo Play is a player. It does not provide any channel, film or series: you connect the service you already have and are authorized to use, with its Xtream login or its M3U link.

What is an M3U file?

The format was born for music: early media players used .m3u files to remember a list of songs. Each line was the path of a file to play, one after the other. IPTV kept the idea and replaced file paths with internet addresses. A playlist is still just text — you could open one in any text editor — but a single file can describe thousands of channels.

Because it is so simple, the M3U format is read by almost every media app. Its simplicity is also its limit: it says what to play, not much more.

Inside an M3U playlist: #EXTM3U and #EXTINF

An IPTV playlist uses the extended M3U format. It starts with a header line, then repeats a pair of lines for each channel:

  • #EXTM3U — the first line, which says the file is an extended playlist. It can carry an attribute such as url-tvg, the address of a TV guide.
  • #EXTINF:-1 followed by attributes and the channel's name — the description line. The -1 means the duration is unknown, which is the case for a live stream.
  • The stream address on the next line — for example http://server.example:8080/live/username/password/1234.ts.

A typical description line looks like this: #EXTINF:-1 tvg-id="news.example" tvg-name="News HD" tvg-logo="http://img.example/news.png" group-title="News",News HD. The attributes you will meet most often are:

  • tvg-id: the channel's identifier in the TV guide, used to match it with its programmes in an XMLTV file — see what an EPG and XMLTV are.
  • tvg-name: the channel's name as the guide knows it.
  • tvg-logo: the address of the channel's logo.
  • group-title: the category, or bouquet, the channel belongs to.
  • catchup attributes, on some playlists, that describe how to reach past programmes.

M3U vs M3U8: what is the difference?

The two words cover two different situations, which is why they are often confused:

  • M3U8 as a playlist file: the same extended M3U, saved in UTF-8. The 8 stands for that encoding. For a channel list, M3U and M3U8 are read the same way; M3U8 simply guarantees that names such as “Télé Région” or names in Arabic script display correctly.
  • M3U8 as an HLS stream: HTTP Live Streaming, the streaming method used by many services, describes a single stream as an .m3u8 playlist of short video segments. That file is not a list of channels: it is the inner mechanics of one channel, read by the player as it plays.

So a channel address ending in .m3u8 is an HLS stream, while a playlist named list.m3u8 is a channel list. The player tells them apart by their content.

M3U file vs M3U link

Most services do not send a file you download once. They send an M3U link: an address that generates the playlist on their server each time it is opened, so that it always reflects the current channel list. For an Xtream-compatible service, that link looks like this: http://server.example:8080/get.php?username=YOUR_NAME&password=YOUR_PASSWORD&type=m3u_plus&output=ts.

  • get.php is the address on the server that builds the playlist.
  • username and password are your personal login — the same as your Xtream login.
  • type=m3u_plus asks for the extended format, with logos, categories and guide identifiers.
  • output=ts asks for live addresses in MPEG-TS; output=m3u8 asks for HLS.

In other words, an M3U link from an Xtream-compatible service is the Xtream login written as a single address. That is why the two forms of access lead to exactly the same channels — see Xtream login or M3U link and what the Xtream Codes API is.

How Klyvo Play reads an M3U link

Klyvo Play accepts the get.php M3U link that an Xtream-compatible service gives. When you paste it, the app reads the server, the username and the password inside it, and then talks to the server through the Xtream API. This brings things a raw playlist cannot offer: live channels, films and series in separate sections, posters and details, the guide per channel, catch-up when the service keeps an archive, and the status of your line.

To be clear about the limits: a plain M3U playlist file, or an M3U link that does not come from an Xtream-compatible service, is not supported. If the link is not recognised, the app says so and suggests pasting your service's get.php link or using the Xtream tab. Step-by-step instructions are in how to add an M3U playlist.

You can also avoid pasting a long link on a TV: each installation of Klyvo Play shows a code that looks like a MAC address and a Device Key, and your reseller or you can attach the playlist to them on the customer portal — see the device portal.

Why a raw M3U playlist has limits

  • Size: a playlist with tens of thousands of channels and films becomes a heavy text file that must be read in full before anything appears.
  • Few details: there is no synopsis, no season structure and no account information in the format itself.
  • Guide matching: the guide relies on tvg-id values that must match those of the XMLTV file exactly; one difference and a channel shows no programme.
  • Static copies: a downloaded file goes out of date as soon as the service changes its list, which a live link avoids.

This is why Klyvo Play works with the API behind the link: categories are loaded when you open them, and even very large playlists stay quick — see managing a large playlist.

Keep your M3U link private

An M3U link contains your username and password in clear text. Anyone who has it can open your line, use your connections and get it blocked for sharing. Do not post it in a forum, a group or a screenshot. If you think it has leaked, ask your service for new credentials. In Klyvo Play, the details of a saved playlist are kept encrypted and are never shown again in full.

FAQ

Can I open an M3U file in a text editor? Yes. It is plain text, which is useful to check what a playlist contains — just never edit or share someone else's.

Is M3U8 better than M3U? For a channel list, M3U8 only adds UTF-8 encoding, so names with accents display correctly. As a stream, .m3u8 means HLS, which works in Klyvo Play just like MPEG-TS.

Why does my M3U link show “not recognised”? Klyvo Play expects the full get.php link from an Xtream-compatible service, with username and password. A truncated link, or a playlist that does not come from such a service, is not accepted.

Does an M3U link include films and series? It can, depending on the service. In Klyvo Play, films and series are read through the API behind the link, so they appear in their own sections.

Where do I get an M3U link? From the service you subscribe to and are authorized to use. Klyvo Play is a player and does not provide playlists.

Add your M3U link to Klyvo Play

An M3U file is a simple list of channels; an M3U link from an Xtream-compatible service is your login in a single address. Paste that link into Klyvo Play and you get a full, organised catalogue instead of a raw list. Download Klyvo Play for your device and try the full app free for 10 days.

Try Klyvo Play

On the App Store for iPhone, iPad and Apple TV, on Google Play for Android, and for Windows. Every device starts with 10 days free.

Download the app