Live TV & IPTV

M3U, Xtream Codes, EPG: what the words mean and which one you have

Someone hands you a link and a password and says “put this in an IPTV app”. From there it is mostly vocabulary. There are two ways a subscription reaches a player, they behave very differently, and knowing which you were given explains almost everything about what the app can and cannot show you.

9 min read Updated 29 July 2026

A playlist is a text file
An M3U is a list of channel names and stream addresses. Nothing more — no guide, no catalogue.
An account is an API
Xtream Codes is a server the app can query: channels, films, series, guide and catch-up as separate calls.
The player supplies neither
Both point at your provider’s servers. An IPTV app is a client, the way a mail app is a client.

IPTV is a delivery method, not a service

IPTV means television delivered over an ordinary internet connection instead of an aerial, a satellite dish or a cable. That is the whole definition. It says nothing about who is sending the picture, whether they have the right to, or whether you are paying them — a national broadcaster streaming its own channels and a shady reseller both use the same technology.

An IPTV player is the client end of that: an app that takes an address, opens the stream and draws the picture. It has no channels of its own, in the same way a web browser has no websites of its own. This distinction is worth holding on to, because it is the difference between a legitimate app and a piracy tool, and it is also why the App Store is full of players with no content anywhere in them.

Where it gets confusing is that the two ways of handing a subscription to a player are so different in capability that people assume they are different products. They are not — they are the same channels, described to the app in two different ways.

M3U playlist versus Xtream Codes account

If your provider gave you a long URL ending in .m3u or .m3u8, you have the first. If they gave you a server address, a username and a password, you have the second.

M3U playlistXtream Codes account
What it isA text file listing channels and their stream URLsAn API the app queries for each kind of content
Live channelsYes, as one flat listYes, organised into categories
Films and seriesOnly if the provider mixed them into the same listYes, as a proper catalogue with seasons and episodes
Programme guideOnly via a separate XMLTV URL, if given oneBuilt in, per channel
Catch-up / replayNoWhere the provider offers it
UpdatesThe whole file is re-downloadedOnly what changed is requested
CredentialsUsually embedded in every stream URLSent per request, and can be stored separately

Many providers give you both for the same subscription. If you have the choice, the Xtream account is the better one to add — it gives the app enough structure to build a guide and a catalogue rather than a flat list of a hundred thousand names.

The rest of the vocabulary

EPG (XMLTV)
The programme guide: what is on now, what is next, what was on this morning. It arrives as a separate XML file, often tens of megabytes, and has to be matched to your channels by an id the provider sets. Mismatched ids are why a guide is sometimes right for half the channels and empty for the rest.
Catch-up (archive, replay)
The provider records a channel for a rolling window — usually one to seven days — so you can start a programme that has already aired. It only exists if they enabled it, per channel, and no player can add it.
VOD
Films and series held as individual files rather than a live stream. In an Xtream account these are separate sections with their own metadata; in an M3U they are just more entries in the list.
Connection limit
How many streams your subscription may play at once, counted at the server. Exceeding it is the most common cause of a channel that suddenly refuses to open — including when the second “connection” is your own phone, still holding the previous stream.
Transport stream (TS / HLS)
The two shapes a live channel arrives in. HLS is chopped into segments and tolerates a wobbly connection better; raw TS starts faster and is less forgiving. Providers usually offer both; either the app picks, or you do.

Adding a subscription to any player

The wording differs between apps; the sequence does not.

  1. Work out which of the two you have

    A single long link means a playlist. A hostname with a port, plus a username and a password, means an Xtream account. If you were sent an app with the details baked in, ask for the plain details — you are not obliged to use their player.

  2. Add it, and let the first import finish

    A large list takes a moment: tens of thousands of entries have to be parsed and stored. This happens once. If an app freezes here rather than showing progress, it is loading the whole file into memory, and it will do the same every time.

  3. Attach the guide if it came separately

    For an M3U, the EPG is a second URL you paste in. For an Xtream account it is already there.

  4. Sort out favourites before anything else

    Nobody browses a hundred thousand channels twice. Marking the twenty you actually watch turns the list into something usable, and it is the single highest-value five minutes you will spend.

  5. Test one channel from each category

    Providers frequently have whole categories that are dead. Finding that out now is better than during a match.

Why a channel buffers, and who can fix it

Buffering on IPTV is almost never the app. A live stream has no ability to slow down and catch up — it arrives at the rate the source sends it, and if that rate cannot be sustained the picture stalls. Three things cause it, and they are distinguishable.

If one channel stutters and the rest are fine, the source for that channel is overloaded or badly encoded. Nothing on your side will help; a different quality variant of the same channel sometimes will. If everything stutters at the same time of day, the provider is saturated at peak hours — the classic evening problem on oversold services. If everything stutters all the time, look at your own connection, and specifically at Wi-Fi: a phone two rooms from the router on a congested 2.4 GHz band is a far more common cause than bandwidth.

A larger buffer helps a wobbly connection at the cost of a longer wait when changing channel, and it cannot rescue a source that is simply not sending enough data. And if a stream opens for a second and dies, that is usually not buffering at all but the connection limit — something else is already playing on the same account.

What to look for in a player, once you have a subscription

  • It survives a huge list

    A big provider’s export runs to several hundred thousand entries — the one this page was checked against holds 701,017. A player that reads the list into memory will stall on import and be slow forever after. One that streams it into a database opens instantly at any size.

  • The guide sits next to the channels

    A programme guide you have to navigate away to see is a guide you will not use. On a tablet or a Mac there is room for both at once.

  • Your credentials are stored properly

    Xtream stream URLs embed your password. A player that writes those URLs into its database has written your password into its database. The Keychain is where that belongs.

  • It respects the connection limit

    Downloading while watching, on a one-connection account, means one of the two fails. A player that knows this can queue rather than collide.

  • Resume works on films and series

    VOD in an IPTV catalogue should behave like any other video: it remembers where you were, and the next episode is one tap away.

The three screens, for this specifically

iPhone

A remote control more than a television: fine for catching a match, and the place where a small favourites list matters most.

iPad

The best of the three for browsing a catalogue — the guide, the channel list and the picture all fit on screen at once.

Mac

A large channel list is genuinely comfortable here, with the player in its own window and the guide in another. No advertising in the Mac build at all.

Questions people ask

Does an IPTV app come with channels?

A legitimate one does not, and cannot. It is a client — you bring a subscription from a provider and the app plays it. Any app that arrives with channels already in it is distributing content, which is a very different thing legally and rarely a good sign.

Why is my programme guide empty for some channels?

The guide matches to channels by an identifier the provider sets. If a channel’s id in the playlist does not match any id in the XMLTV file, that channel gets no guide. It is a data problem at the provider’s end, and the only fix is a corrected list from them.

Why does a channel stop when I start a download?

Your subscription almost certainly allows one simultaneous connection. Playing and downloading are two, so one of them loses. Providers sell additional connections; some players also cap their own IPTV downloads to one to avoid tripping this.

Can I use one subscription on my phone and my Mac at the same time?

Only if it allows more than one connection. The limit is counted per account at the server, not per device, so a one-connection account means one screen at a time no matter how many devices you have set it up on.

FoxDL

What FoxDL does with a subscription you already have

FoxDL is the client half only. It provides, hosts and supplies no channels, films or streams of its own — you add a service you legally subscribe to.

  • M3U playlists and Xtream Codes accounts, with the catalogue, seasons, episodes and resume that an Xtream account makes possible.
  • EPG and catch-up where the provider offers them.
  • Lists at provider scale — a 485 MB, two-million-channel playlist imports in about two minutes for 9 MB of peak memory, because it is parsed straight to disk instead of into memory and every screen pages from the database rather than loading the catalogue.
  • Credentials live in the Keychain. Stream URLs that embed a password are built when needed and never written to the database.
  • Connection-aware: IPTV downloads are capped to one connection so they do not knock out what you are watching.
  • Favourites, search and recently watched across the whole list.

Free: the first playlist or account on iPhone and iPad, the first two on Mac. Pro removes the limit. Prices, channels and reliability are entirely your provider’s business, not ours.

Questions people ask about this

All questions

Keep reading

Your library, finally in one place.

Free to download. No account, no sign-up, and the whole feature set is in the free version.

Download on the App Store