Glossary

Streaming and IPTV

Live television over the internet borrowed its vocabulary from three different places — broadcasting, the web, and one particular panel software that became a standard by accident. These are the words that come up.

HLS

HTTP Live Streaming

Apple's streaming protocol, and the one nearly everything uses. Video is cut into short segments listed in a text playlist, and the player fetches them in order over ordinary HTTP.

HLS won because it needs no special server: segments are files, the playlist is a file, and any web server can deliver both. It is natively supported everywhere on Apple platforms and almost everywhere else.

Its design has one consequence people meet constantly — there is no single video file to save. What you are watching exists only as a thousand pieces and a set of instructions for fetching them.

See also: ManifestSegmentAdaptive bitrate

Manifest

playlist, .m3u8

The text file listing what a stream consists of. A master manifest lists the available quality levels; each of those points at a media manifest listing the actual segments.

Open one and it is a few dozen lines: a header, some parameters, and addresses. Everything you watch is somewhere else. For a live broadcast the player refetches this file every few seconds, because it grows as the broadcast continues.

Manifest addresses are usually signed and time-limited, which is why a link that worked this morning frequently points at nothing by the afternoon.

See also: HLSSegment

Segment

chunk

One short piece of a stream, typically two to ten seconds, delivered as its own file. An hour of video is hundreds to thousands of them.

Segmenting is what makes switching quality mid-playback possible: the player simply requests the next piece from a different quality level, and the change happens at a boundary rather than as an interruption.

It is also what makes downloading a stream a rebuild rather than a copy. Every segment has to be fetched and then written into a single container with a proper index — the step that gives the result a working scrub bar.

See also: HLSRemux

Adaptive bitrate

ABR

Offering the same content at several quality levels and letting the player move between them as the connection changes. It is why streams degrade in sharpness rather than stopping.

The player measures how quickly segments are arriving and picks the highest quality it believes it can sustain. When the connection tightens it steps down, usually before the buffer runs dry.

This is the single biggest difference between watching a stream and downloading a file. A download wants the best version and will wait; a stream would rather look softer than pause.

See also: HLSBufferingBitrate

Buffering

A player holding a few seconds of video ahead of what you are watching, so a brief network hiccup does not become a pause. When you see the word, the buffer has run out.

A larger buffer rides out more disruption at the cost of taking longer to start and reacting more slowly to a channel change. Live streams keep it small on purpose, which is why they are more fragile than on-demand video.

When an IPTV channel stutters, the cause is almost always somewhere between the provider and you — their server, the route, your connection. The same app on the same device plays a local file of the same bitrate without a flicker, which is the quickest way to tell the two apart.

See also: Adaptive bitrateIPTV

IPTV

Television delivered over the internet rather than over the air, by cable or by satellite. As a word it describes a delivery method and says nothing about who is entitled to deliver what.

What a subscription actually consists of is a list — an M3U playlist, or an account on a panel — that names channels and gives an address for each. The player turns that into a channel guide; it neither hosts nor supplies anything.

Which is the important part legally as well as technically. An app that plays IPTV ships no channels, and whether a given provider has the right to carry what it carries is a question about that provider.

See also: M3U playlistXtream CodesEPG

M3U playlist

A plain-text list of channel names and stream addresses, and the most common way an IPTV subscription is delivered. It contains no video at all.

Each entry is a line naming the channel — with a logo, a group and an identifier attached by convention — and a line giving its address. None of those conventions were ever standardised, so every provider writes them slightly differently.

Provider lists have grown far beyond what the format anticipated: hundreds of thousands of channels and hundreds of megabytes of text are ordinary now, and an app that reads one into memory before parsing it will be killed by iOS long before it finishes.

See also: IPTVXtream Codes

Xtream Codes

A panel software whose API became a de facto standard. Instead of a playlist file you get a server address, a username and a password, and the app asks the panel for channels, films, series and the guide.

The company behind it was shut down in 2019; the API outlived it, because thousands of providers had already built on it and their customers expected it. Software described as "Xtream compatible" is implementing that interface, not using that company's product.

It differs from a plain playlist in two useful ways: the catalogue arrives as structured data rather than as a flat list, and the panel enforces a connection limit — which is why a download and a live channel at the same time can knock each other off.

See also: IPTVM3U playlistEPG

EPG

electronic programme guide

The schedule: what is on each channel now, what is next, and what was on earlier. Delivered separately from the channels themselves, usually as an XMLTV file.

The guide is matched to channels by an identifier the provider puts on each one. When those identifiers are missing or inconsistent — which is common — channels show no programme information even though the guide data is present and correct.

A full guide for a large provider is a substantial download in its own right, covering days of schedule for thousands of channels.

See also: IPTVCatch-upXtream Codes

Catch-up

timeshift, archive

Watching something that has already been broadcast, by asking the provider's server for a past time on a channel. It only exists where the provider records; nothing is stored on your device.

Where it is offered, an app can turn a past programme in the guide into a request for that window of that channel. Typical archives run a few days.

It is entirely the provider's capability. An app cannot add catch-up to a channel that has none, and a guide entry from last week is not evidence that the recording exists.

See also: EPGIPTV

DRM

digital rights management

Encryption that only licensed playback software can undo, using keys fetched from a licence server. FairPlay on Apple platforms, Widevine on Android and most web browsers.

A DRM-protected stream is encrypted end to end, and the key is released only to software that has proved it will obey the rules attached to it — no saving, no capturing, sometimes no external display.

This is not a difficulty to be worked around; it is the mechanism working. Any tool claiming to download a DRM-protected stream is misrepresenting either what it does or what the stream is.

See also: HLSIPTV

The other subjects