iiPTV
Open player
All guides

M3U playlists explained

Learn how M3U files and playlist URLs work, read a practical format example, and import your playlist without confusing it with the video itself.

An M3U playlist is a text file containing media locations. It can add channel names, groups and identifiers, but it normally contains references rather than the video itself. A remote M3U playlist URL points to that text file; the entries inside point to separate media resources. This guide explains how to read a list, import it safely and distinguish a file problem from a stream that cannot play.

A conceptual playlist document linking named entries to separate media sources
Conceptual illustration of an M3U list, not an actual app screenshot.

What an M3U playlist contains

An M3U playlist gives a player an ordered set of media locations. Those locations can be full URLs, relative paths or local paths, depending on the producer's intended workflow. A browser tool cannot treat every kind of address as a remotely playable stream. The file format and the player's access capabilities are separate questions.

A list is not a video download

Saving an M3U playlist saves its text. It does not automatically download the programmes referenced by its entries. A list can be only a few kilobytes while its selected stream continuously transfers media. Keep the original source address when saving a copy, because you may need it to resolve paths or obtain updates.

Read a practical M3U example

This example illustrates structure only. The example.com addresses are not working channels.

#EXTM3U
#EXTINF:-1 tvg-id="education-example" group-title="Learning",Education example
https://example.com/live/education.m3u8
#EXTINF:-1 group-title="Archive",Archive example
https://example.com/video/archive.mp4

Header, entry and address

#EXTM3U introduces an extended M3U playlist. An #EXTINF line describes the following media entry; the next line gives its location. The name after the comma is a useful display label. Here, the two entries reference different media types, showing why one M3U playlist can contain sources with different playback requirements.

Conventions differ between producers

IPTV attributes such as tvg-id and group-title help organize information but are not a universal guarantee of player behaviour. Community projects document their conventions; see iptv-org's contribution guide. A missing attribute is different from a missing media address. Do not reject an otherwise readable entry solely because its optional metadata is sparse.

Files, URLs and relative paths

Importing a local M3U file

The browser reads a chosen text file on your device. It does not upload the M3U playlist to a saved library. This removes the initial remote download step, but selecting a channel still requires access to its media host. A local copy can also become stale when the producer updates the original.

Loading a playlist URL

A direct URL lets the importer fetch the current M3U playlist text. A repository preview, download landing page or login screen is not the file response. The source must permit the browser request. MDN's CORS guide explains why opening an address in a tab does not prove another website can read it.

Relative addresses need a base

In a remote M3U playlist, live/channel.m3u8 can resolve against the playlist URL. A local text file has no equivalent remote base. Replace relative entries with complete permitted HTTPS addresses before importing a local copy. Local disk paths are not substitutes for hosted browser media.

Import and inspect the list

  1. Preserve the original M3U playlist before making edits.
  2. Open the M3U player and choose the appropriate input method.
  3. Import the file or direct URL, then check the visible names and groups.
  4. Search for one recognizable entry instead of testing every channel immediately.
  5. Select that entry and press Play; record import and playback as separate results.

A readable M3U playlist proves only that entries were parsed. If the list appears correctly but a channel fails, move to the media layer. Repeatedly importing identical text does not change a source's codec, access requirements or availability.

Understand names, groups and metadata

Labels help you navigate

A name after #EXTINF lets you identify an entry without exposing its full media URL. Group metadata can divide an M3U playlist into meaningful subsets. Producers may use different naming schemes, so a missing group should not be mistaken for a broken stream. Search and group filtering operate on the imported entries, not a provider's entire catalogue.

A stable identifier can help a producer distinguish two similarly named entries. If you edit a personal copy, change the display label without accidentally merging unrelated media addresses. Keep one media address per entry, and make group names consistent enough to use as filters. Those small organizational choices improve a list's usability without pretending to verify the streams.

Metadata cannot authorize playback

A channel identifier does not log you into a subscription. A logo does not establish ownership, and a polished label does not verify availability. This player does not automatically fetch third-party playlist logos. Keep private query tokens and provider account details out of names when creating a list you intend to share.

Work through a broken-list example

Consider a permitted M3U playlist with two entries. The first uses a full HTTPS URL; the second uses clips/example.mp4. Both resolve when the list is loaded from its original web address. You download the text, import the local copy and the relative entry is rejected. That hypothetical case points to the missing base address, rather than an unsupported MP4 codec.

A different case begins with an HTML page copied into a file named channels.m3u. Renaming it did not create an M3U playlist. Open the file as text, compare its structure with the example, and return to the published download link. Use playlist loading help for fetch and parsing failures.

If an actual media address is present but its stream will not start, consult playback help. The M3U versus M3U8 guide also explains why an HLS manifest is not the same task as a multi-channel M3U playlist.

Maintain and share your M3U playlist carefully

Record where the list came from, when you obtained it, and what use the source permits. Update addresses from the original publisher rather than copying unexplained replacements. A recent file date is useful context, not proof that every entry works.

Keep personal M3U playlist credentials private. Parsed entries, including media URLs, are cached in this browser after refresh; use Clear or clear website storage to remove them. Retain your original file yourself. When reporting a problem, describe the failed stage and provide a minimal redacted example rather than sending a complete private collection.