M3U

Last updated
M3U
Filename extensions
.m3u, .m3u8
Internet media type various; see § Internet media types
Initial releasec. 1996
Type of format Playlist
Extended to HTTP Live Streaming playlist

M3U (MP3 URL [1] [2] or Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator [3] in full) is a computer file format for a multimedia playlist. One common use of the M3U file format is creating a single-entry playlist file pointing to a stream on the Internet. The created file provides easy access to that stream and is often used in downloads from a website, for emailing, and for listening to Internet radio.

Contents

Although originally designed for audio files, such as MP3, it is commonly used to point media players to audio and video sources, including online sources. M3U was originally developed by Fraunhofer for use with their Winplay3 software, [4] but numerous media players and software applications now support the format.

Careless handling of M3U playlists has been the cause of vulnerabilities in many music players such as VLC media player, [5] iTunes, [6] Winamp, [7] and many others. [8]

File format

There is no formal specification for the M3U format; it is a de facto standard.

An M3U file is a plain text file that specifies the locations of one or more media files. The file is saved with the "m3u" filename extension if the text is encoded in the local system's default non-Unicode encoding (e.g., a Windows codepage), or with the "m3u8" extension if the text is UTF-8 encoded. [9]

Each entry carries one specification. The specification can be any one of the following:

Each entry ends with a line break which separates it from the following one. Furthermore, some devices only accept line breaks represented as CR LF , but do not recognize a single LF.

Extended M3U

The M3U file can also include comments, prefaced by the "#" character. In extended M3U, "#" also introduces extended M3U directives which are terminated by a colon ":" if they support parameters.

M3U extensions
DirectiveDescriptionExampleRequiredStandard
#EXTM3Ufile header, must be the first line of the file#EXTM3UYes
#EXTINF:track information: runtime in seconds and display title of the following resource#EXTINF:123,Artist Name – Track TitleNoYes
additional properties as key-value pairs#EXTINF:123 logo="cover.jpg",Track TitleNoIPTV
#PLAYLIST:playlist display title#PLAYLIST:Music TVIPTV
#EXTGRP:begin named grouping#EXTGRP:Foreign ChannelsNoIPTV
#EXTALB:album information, title in particular#EXTALB:Album Title (2009)AL, [10] M3A [11]
#EXTART:album artist#EXTART:VariousAL, [10] M3A [11]
#EXTGENRE:album genre#EXTGENRE:Jazz FusionAL [10]
#EXTM3Aplaylist for tracks or chapters of an album in a single file#EXTM3AM3A [11]
#EXTBYT:file size in bytes#EXTBYT:34124NoM3A [11]
#EXTBIN:binary data follows, usually concatenated MP3s#EXTBIN:NoM3A [11]
#EXTENC:text encoding, must be the second line of the file#EXTENC:UTF-8No
#EXTIMG:cover, logo or other image#EXTIMG:cover.jpgNoNo

Apple used the extended M3U format as a base for their HTTP Live Streaming (HLS) [12] which was documented in an Independent Submission Stream RFC in 2017 as RFC 8216. [13] Therein, a master playlist references segment playlists which usually contain URLs for short parts of the media stream. Some tags only apply to the former type and some only to the latter type of playlist, but they all begin with #EXT-X-.

HLS M3U extensions
DirectiveExampleDescription
#EXT-X-START:TIME-OFFSET=0
#EXT-X-INDEPENDENT-SEGMENTSToggle without parameters
#EXT-X-PLAYLIST-TYPE:VOD or EVENT
#EXT-X-TARGETDURATION:10The maximum Media Segment duration in seconds
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0The Media Sequence Number of the first Media Segment appearing in the playlist file
#EXT-X-MEDIA:NAME="English", TYPE=AUDIO, GROUP-ID="audio-stereo-64", LANGUAGE="en", DEFAULT=YES, AUTOSELECT=YES, URI="english.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=1123000, CODECS="avc1.64001f,mp4a.40.2"Parameters have either one combined value or one per stream, separated by commas
#EXT-X-BYTERANGE:1024@256000
#EXT-X-DISCONTINUITYtoggle without parametersThe segment represents the start of a new period
#EXT-X-DISCONTINUITY-SEQUENCE:2Indicates start of numbering of periods
#EXT-X-GAPtoggle without parametersThe segment represents a "spacer" before a new period
#EXT-X-KEY:METHOD=NONEIndicates encryption method used and decryption key
#EXT-X-MAP:URI=MediaInitializationSection
#EXT-X-PROGRAM-DATE-TIME:2010-02-19T14:54:23.031+08:00 ISO 8601 format
#EXT-X-DATERANGE:ID=foo
#EXT-X-I-FRAMES-ONLY i-frame Toggle without parameters
#EXT-X-SESSION-DATA:DATA-ID=com.example.movie.title
#EXT-X-SESSION-KEY:
#EXT-X-ENDLISTEnd-of-list signal without parameters

M3U8

The Unicode version of M3U is M3U8, which uses UTF-8-encoded characters. M3U8 files are the basis for the HTTP Live Streaming (HLS) format originally developed by Apple to stream video and radio to iOS devices, and which is now a popular format for adaptive streaming in general.

The 2015 proposal for the HLS playlist format uses UTF-8 exclusively and does not distinguish between the "m3u" and "m3u8" file name extensions. [14]

Internet media types

The only Internet media type registered for M3U and M3U8 is application/vnd.apple.mpegurl, registered in 2009 and only referring to the playlist format as used in HLS applications. [15] [16]

The current proposal for the HLS playlist format acknowledges two media types which it treats as equivalent: application/vnd.apple.mpegurl and audio/mpegurl. [14] Likewise, these are the two types recommended for HLS use by Microsoft. [17]

For non-HLS applications, no media types were standardized or registered with the IANA, but a number of media types are nonetheless associated with the historical and ongoing use of the M3U and M3U8 formats for general playlists:

These types, plus application/vnd.apple.mpegurl and application/vnd.apple.mpegurl.audio, are supported for HLS applications by (for example) Microsoft's Windows 10 [17] and Internet Explorer 9, [18] and LG's WebOS. [19]

Examples

Example 1

This is an example of an extended M3U file on the Windows platform. Sample.mp3 and Example.ogg are the media files. 123 and 321 are the lengths in seconds. [20] A length of -1 or 0 may be used when the media file is a streaming file, as there is no actual, predefined length value. The value after the length is the title to be shown, which is generally the same as the location of the file which is on the second line. On the macOS and Linux platforms, Unix paths are used.

#EXTM3U   #EXTINF:123, Sample artist - Sample title C:\Documents and Settings\I\My Music\Sample.mp3   #EXTINF:321,Example Artist - Example title C:\Documents and Settings\I\My Music\Greatest Hits\Example.ogg
Example 2

This example shows how to create an m3u file linking to a specified directory (for example, a flash drive, or CD-ROM). The m3u file should contain only one string: the path to the directory. After starting, the media player will play all contents of the directory:

C:\Music
Example 3

Here is another example, using relative format. The M3U file is placed in the same directory as the music, and directories must be preserved when moving the playlist to another device if subdirectories are used. This method is more flexible, as it does not rely on the file path staying the same.

This is the same file as above, saved as sample.m3u in C:\Documents and Settings\User\My Music\

#EXTM3U   #EXTINF:123, Sample artist - Sample title Sample.mp3   #EXTINF:321,Example Artist - Example title Greatest Hits\Example.ogg

This format in an M3U allows copying to another device for playback. All files and directories referred to must also be copied.

Example 4

Here is a mixed example:

Alternative\Band - Song.mp3 Classical\Other Band - New Song.mp3 Stuff.mp3 D:\More Music\Foo.mp3 ..\Other Music\Bar.mp3 http://www.example.com:8000/Listen.mp3http://www.example.com/~user/Mine.mp3

Notes:

Example 5

References to other M3U playlists, for example, are generally not well-supported.

AnotherPlayList.m3u
Example 6

The following is an example of a M3U playlist file for "Jar of Flies" album by "Alice in Chains" that was created by Mp3tag with the following custom option settings: [21] [22] [23]

 #EXTM3U  #EXTINF:419,Alice in Chains - Rotten Apple  Alice in Chains_Jar of Flies_01_Rotten Apple.mp3  #EXTINF:260,Alice in Chains - Nutshell  Alice in Chains_Jar of Flies_02_Nutshell.mp3  #EXTINF:255,Alice in Chains - I Stay Away  Alice in Chains_Jar of Flies_03_I Stay Away.mp3  #EXTINF:256,Alice in Chains - No Excuses  Alice in Chains_Jar of Flies_04_No Excuses.mp3  #EXTINF:157,Alice in Chains - Whale And Wasp  Alice in Chains_Jar of Flies_05_Whale And Wasp.mp3  #EXTINF:263,Alice in Chains - Don't Follow  Alice in Chains_Jar of Flies_06_Don't Follow.mp3  #EXTINF:245,Alice in Chains - Swing On This  Alice in Chains_Jar of Flies_07_Swing On This.mp3 

Software

Tag editors

The following tag editor software allows users to edit the ID3 tags in MP3 files, and has support for creating M3U files.

Linux
Windows

Media players

The following media player software supports playing M3U files.

Multi-platform
ProgramsPlatforms
WindowsmacOSLinuxAndroidOther
Amarok YesNoYesNoNo
Audacious YesNoYesNoNo
Banshee YesYesYesNoYes
Clementine YesYesYesNoYes
GNOME Videos NoNoYesNoNo
Kodi YesYesYesYesYes
MPlayer YesYesYesYesYes
mpv YesYesYesYesYes
VLC media player YesYesYesYesYes
iTunes YesYesNoNoNo
Android
macOS
Nintendo
Windows

See also

Other playlist file formats

Related Research Articles

<span class="mw-page-title-main">Winamp</span> Media player for Microsoft Windows

Winamp is a media player for Microsoft Windows originally developed by Justin Frankel and Dmitry Boldyrev by their company Nullsoft, which they later sold to AOL in 1999 for $80 million. It was then acquired by Radionomy in 2014, now known as the Llama Group. Since version 2 it has been sold as freemium and supports extensibility with plug-ins and skins, and features music visualization, playlist and a media library, supported by a large online community.

Shoutcast is a service for streaming media over the internet to media players, using its own cross-platform proprietary software. It allows digital audio content, primarily in MP3 or High-Efficiency Advanced Audio Coding format. The most common use of Shoutcast is for creating or listening to Internet audio broadcasts; however, there are also video streams. The software is available to use for free or as a paid cloud service with additional professional features.

<span class="mw-page-title-main">Playlist</span> Curated list of video or audio files

A playlist is a list of video or audio files that can be played back on a media player, either sequentially or in a shuffled order. In its most general form, an audio playlist is simply a list of songs that can be played once or in a loop. The term has several specialized meanings in the realms of television broadcasting, radio broadcasting and personal computers.

<span class="mw-page-title-main">RealPlayer</span> Media player app

RealPlayer, formerly RealAudio Player, RealOne Player and RealPlayer G2, is a cross-platform media player app, developed by RealNetworks. The media player is compatible with numerous container file formats of the multimedia realm, including MP3, MP4, QuickTime File Format, Windows Media format, and the proprietary RealAudio and RealVideo formats. RealPlayer is also available for other operating systems; Linux, Unix, Palm OS, Windows Mobile, and Symbian versions have been released.

PLS is a computer file format for a multimedia playlist. It is typically used by media players for streaming media over the Internet, but may also be used for playing local media.

XML Shareable Playlist Format (XSPF), pronounced spiff, is an XML-based playlist format for digital media, sponsored by the Xiph.Org Foundation.

Music Player Daemon (MPD) is a free and open source music player server. It plays audio files, organizes playlists and maintains a music database. In order to interact with it, a client program is needed. The MPD distribution includes mpc, a simple command line client.

<span class="mw-page-title-main">WinPlay3</span>

WinPlay3 was the first real-time MP3 audio player for PCs running Windows, both 16-bit and 32-bit. Prior to this, audio compressed with MP3 had to be decompressed prior to listening. It was released by Fraunhofer IIS, creators of the MP3 format, on September 9, 1995. The latest version was released on May 23, 1997. Since then, the Fraunhofer Society has removed any trace and mention of WinPlay3 from their web sites. However, the software remains available by utilizing the Web Archive, or one of the links below.

<span class="mw-page-title-main">Music on Console</span> Console audio player

Music On Console (MOC) is an ncurses-based console audio player for Linux/UNIX. It was originally written by Damian Pietras, and is currently maintained by John Fitzgerald. It is designed to be powerful and easy to use, with an interface inspired by the Midnight Commander console file manager. The default interface layout comprises a file list in the left pane with the playlist on the right. It is configurable with customizable key bindings, color schemes and interface layouts. MOC comes with several themes defined in text files, which can be modified to create new layouts. It supports ALSA, OSS or JACK outputs.

<span class="mw-page-title-main">Audacious (software)</span> Free and open source audio player

Audacious is a free and open-source audio player software with a focus on low resource use, high audio quality, and support for a wide range of audio formats. It is designed primarily for use on POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows. Audacious was the default audio player in Ubuntu Studio in 2011–12, and was the default music player in Lubuntu until October 2018, when it was replaced with VLC.

Webjay was a web-based playlist service launched in early 2004. Playlists consisted of links to Vorbis, MP3, WMA, RealAudio and/or other audio files on the web. Webjay users could create new playlists by copying from existing playlists, or by web scraping audio file links from external web pages or playlists. The site was created by Lucas Gonze.

WPL is a computer file format that stores multimedia playlists. It is a proprietary file format used in Microsoft Windows Media Player versions 9–12. The elements of WPL files are represented in XML format. The top-level element, smil, specifies that the file's elements follow the SMIL structure.

<span class="mw-page-title-main">Netgear Digital Entertainer</span>

Netgear's Digital Entertainer line of products are digital media players that can pull multimedia content from home computers to the typical audio/video entertainment center. There are three products in the line, the EVA700, the HD EVA8000 and the current EVA9150 Digital Entertainer Elite. All support high definition video, the EVA700 via component output up to 1080i and the EVA8000/EVA9000 up to 1080p with both component and HDMI connectors. All models support audio, video, image and streaming audio and video formats and can be networked via wired and wireless Ethernet. The EVA700 is Intel Viiv certified.

<span class="mw-page-title-main">Mp3tag</span> Tag editor for Microsoft Windows and Apple macOS

Mp3tag is a metadata tag editor that supports many popular audio file formats. It is freeware for Microsoft Windows, while it costs USD $19.99 for Apple macOS in the Mac App Store.

<span class="mw-page-title-main">Mpxplay</span>

Mpxplay is a 32-bit console audio player for MS-DOS and Windows. It supports a wide range of audio codecs, playlists, as well as containers for video formats. The MS-DOS version uses a 32-bit DOS extender.

<span class="mw-page-title-main">Sansa Fuze</span> 2008 portable media player by SanDisk

The Sansa Fuze is a portable media player developed by SanDisk and released on March 8, 2008. The Fuze is available in three different Flash memory capacities: 2 GB, 4 GB, and 8 GB and comes in six different colors: black, blue, pink, red, silver, and white. Storage is expandable via a microSDHC slot with capacity up to 32 GB, and unofficially to 64 GB or more via FAT32 formatted SDXC cards. All models have a 1.9 inch TFT LCD display with a resolution of 220 by 176 pixels and a built-in monaural microphone and FM tuner; recordings of the latter two are saved as PCM WAV files.

HTTP Live Streaming is an HTTP-based adaptive bitrate streaming communications protocol developed by Apple Inc. and released in 2009. Support for the protocol is widespread in media players, web browsers, mobile devices, and streaming media servers. As of 2022, an annual video industry survey has consistently found it to be the most popular streaming format.

The following comparison of audio players compares general and technical information for a number of software media player programs. For the purpose of this comparison, "audio players" are defined as any media player explicitly designed to play audio files, with limited or no support for video playback. Multi-media players designed for video playback, which can also play music, are included under comparison of video player software.

<span class="mw-page-title-main">JetAudio</span>

JetAudio is a shareware media player application for Microsoft Windows and Android released in 1997, that offers playback options for a wide range of multimedia file formats.

References

  1. 1 2 Fraunhofer Gesellschaft, Fraunhofer Institut für Integrierte Schaltungen-A (1996-10-30). "WinPlay3 - Windows real-time ISO/MPEG Audio Layer 3 Player". Archived from the original on 1997-06-06. Retrieved 2018-01-21.
  2. 1 2 Gruett, Matt. "M3U FILES AND STREAMING". LockerGnome. Archived from the original on 2001-04-26.
  3. Nero. "Nero MediaHome 4 - Manual" (PDF). Archived (PDF) from the original on 2015-09-05.
  4. "WINAMP.COM | Winamp Documentation". June 6, 2002. Archived from the original on 2002-06-06.
  5. "VideoLAN-SA-0804 (CVE-2007-6683)". 2008. Arbitrary file overwrite and other abuses through M3U parser and browsers plugins.
  6. "CVE-2012-0677: Heap-based buffer overflow in Apple iTunes before 10.6.3 allows remote attackers to execute arbitrary commands". cve.circl.lu.
  7. "CVE-2000-0624: Buffer overflow in Winamp 2.64 and earlier allows remote attackers to execute arbitrary commands via a long #EXTINF: ext". www.cvedetails.com.
  8. "247 search results". Packet Storm . Retrieved 2018-01-23.
  9. "Nero 2015 Platinum - System Requirements". MP3 URL + UTF-8 (M3U8)
  10. 1 2 3 "Album List for Winamp". albumlist.sourceforge.net.
  11. 1 2 3 4 5 "Data". birdcagesoft. Retrieved 2019-10-21.
  12. "About the Common Media Application Format with HTTP Live Streaming | Apple Developer Documentation". developer.apple.com.
  13. R. Pantos; W. May (August 2007). "4.3 Playlist Tags". In Pantos, R (ed.). RFC 8216: HTTP Live Streaming. RFC Editor. doi:10.17487/RFC8216. ISSN   2070-1721.{{cite book}}: |journal= ignored (help)
  14. 1 2 Pantos, Roger; May, William. "HTTP Live Streaming". tools.ietf.org.
  15. "Media Types". www.iana.org.
  16. "Data". iana. Retrieved 2019-10-21.
  17. 1 2 "Simplified Adaptive Video Streaming: Announcing support for HLS and DASH in Windows 10 – IEBlog". blogs.msdn.microsoft.com.
  18. "HTMLVideoElement". MDN Web Docs.
  19. "::: LG Developer | Audio & Video :::". Archived from the original on 2015-12-22. Retrieved 2015-12-12.
  20. "DigiLinX Application Note - Creating Playlists to Work with the Streaming Music Manager" (PDF). 2007-10-05.
  21. "Mp3tag Help - Configuration > Export". help.mp3tag.de.
  22. "Mp3tag Help - Configuration > Playlist". help.mp3tag.de.
  23. "Mp3tag Help - Scripting functions". help.mp3tag.de.
  24. "Loading..." astroplayer.com. Archived from the original on December 1, 2009.
  25. "Astro Player (old) - Sidenis LLC". Archived from the original on March 3, 2016.
  26. "Astro Player - Sidenis LLC". Archived from the original on March 3, 2016.
  27. "n7player Music Player - Apps on Google Play". play.google.com.
  28. "n7player 1.0 - Apps on Google Play". play.google.com.
  29. "Musicolet Music Player [No ads] - Apps on Google Play". play.google.com. Retrieved 2020-11-02.
  30. Hindley, Nathan. "XMPlay 3.8.2". XMPlay. Un4seen Developments. Retrieved 11 July 2016.