Skip to content
M3U.Click— Home

Guides and help

The M3U and M3U8 format reference

Every part of an M3U or M3U8 playlist explained, from #EXTM3U and #EXTINF to attributes, player-specific lines, paths, encoding and line endings.

Last updated 2 November 2026

M3U started as the playlist format of the Winamp media player. It was never published as a formal standard, so players agree on the basics and differ on the extras. This reference describes what is widely supported and points out where players differ.

The simplest playlist

The simplest M3U file is a list of entries, one per line:

Music/Artist/01-first-song.flac
Music/Artist/02-second-song.flac
https://radio.example.com/jazz
  • Each non-empty line that doesn’t start with # is an entry: a file path or a web address.
  • Lines that start with # are comments or directives. Players ignore the ones they don’t understand.
  • Blank lines are ignored.

Extended M3U

Most playlists today use the extended form, which adds a header and a description line before each entry:

#EXTM3U
#EXTINF:245,Artist – First song
Music/Artist/01-first-song.flac
#EXTINF:-1,Jazz radio
https://radio.example.com/jazz

#EXTM3U

Must be the very first line. It tells the player to read the #EXT… lines. Without it, many players treat the file as a simple list and ignore names and other details.

#EXTINF:<duration>,<title>

Describes the entry on the next line:

  • duration: the length in seconds. -1 (or 0 in some files) is the usual way to say “unknown” or “continuous”, for example for a radio stream;
  • title: the name the player shows, everything after the first comma.

Attributes

Many players also read key="value" attributes between the duration and the comma:

#EXTINF:-1 tvg-id="jazz.example" tvg-logo="https://example.com/jazz.png" group-title="Radio",Jazz radio
https://radio.example.com/jazz
Attribute Common meaning
tvg-logo Address of a logo image for the entry
group-title The group or folder the entry belongs to
tvg-id An identifier used to match the entry with programme-guide data
tvg-name An alternative name used for that matching

These attributes are a convention, not a standard. Players support different sets, and some ignore them completely. M3U.Click is built to keep every attribute in its original order, including ones it doesn’t recognise, so nothing is lost when you save.

Other directives you may see

Line Meaning Support
#EXTGRP:<name> Puts the following entries in a group Some players; VLC 3 ignores it
#PLAYLIST:<title> A title for the whole playlist VLC reads it
#EXTALBUMARTURL:<url> Album art for the entry VLC reads it
#EXTVLCOPT:<option> An option only VLC understands VLC only

Players skip lines they don’t understand, so player-specific lines are harmless elsewhere. M3U.Click keeps them exactly as they are, attached to their entry.

Entries: paths and addresses

An entry can be:

  • an absolute path, such as C:\Users\Sam\Music\song.flac on Windows or /home/sam/Music/song.flac on Linux and macOS;
  • a relative path, such as Music/song.flac, which players read as relative to the folder that contains the playlist file;
  • a web address, such as https://example.com/podcast/episode-42.mp3;
  • a network path in the form a player understands, such as a shared folder on your network.

Relative paths make a playlist portable: you can move the playlist together with its media folder. Our guide to relative and absolute paths explains how VLC, Kodi and media servers handle them.

Encoding: why M3U8 exists

  • An .m3u8 file is UTF-8. The HLS specification (RFC 8216) requires playlists to be UTF-8, and VLC expects .m3u8 files to be valid UTF-8.
  • An .m3u file has no fixed encoding. VLC, for example, reads an .m3u file that isn’t valid UTF-8 as Latin-1, so Arabic, Cyrillic or Chinese names in such a file can display as garbled characters.

Recommendation: save playlists as UTF-8 with the .m3u8 extension, without a byte-order mark (BOM). RFC 8216 forbids a BOM in HLS playlists, and some older players show it as stray characters before #EXTM3U.

Line endings

Lines can end with a line feed (Unix, macOS) or a carriage return plus line feed (Windows); players accept both. Mixing them in one file can confuse simple tools, so M3U.Click keeps the style your file already uses.

M3U8 and HLS streaming

HTTP Live Streaming also uses .m3u8 files, defined in RFC 8216. An HLS playlist describes one stream, cut into short segments, with lines such as #EXT-X-TARGETDURATION and #EXT-X-STREAM-INF. It is not a list of things to choose from. If you have an HLS address, add it as a single entry in your own playlist. M3U.Click is designed to recognise HLS files and treat them as streams rather than as lists to edit.

Media types

When a web server sends a playlist, it labels it with a media type:

  • application/vnd.apple.mpegurl is registered with IANA for .m3u8 and .m3u files;
  • audio/mpegurl is also allowed by RFC 8216;
  • audio/x-mpegurl is widely used for .m3u files.

If a browser shows a playlist as text instead of downloading it, the server is probably sending a generic text type. Save the page or file and open it in M3U.Click or your player.

Sources

We checked what this guide says about other software against these official sources. Their menus and features can change between versions.