Announcement

Collapse
No announcement yet.

M3U and PLS Specification

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • M3U and PLS Specification

    The Unofficial M3U and PLS Specification

    Winamp playlists are just a text file containing links to the location of the proper file. You can crate or edit a playlist in any text editor. It could be anything to MP3, WMA, or even another playlist. Just because something is in a playlist, doesn't mean Winamp can play it though. Winamp will just skip over unknown file formats. This document will hopefully try to clarify the differences of the playlist formats available.

    Generic M3U/PLS
    A list of links to files makes a valid generic playlist. The entry can be relative (i.e. \files\song.mp3) or specific (i.e. c:\media\files\son.mp3). Also, URLs can he inserted to point to a stream or a file on the Internet.

    Here are a few sample generic MP3/PLS files:

    A Simple M3U

    sample.m3u
    code:

    Alternative\Band - Song.mp3
    Classical\Other Band - New Song.mp3
    crap.mp3
    F:\more music\foo - bar.mp3
    http://www.site.com:8000/listen.pls
    http://www.site.com/~user/mine.mp3

    - Alternative and Classical are sub-directories of the directory that this playlist is stored in.
    - "Song" and "New Song" are in sub-directories that this playlist is stored in.
    - "Crap" is in the same directory that the playlist is stored in.
    - "Foo - Bar" is in the specified directory, which may or may not be the same directory the playlist is in.
    - http://www.site.com:8000/listen.pls is a Shoutcast stream.
    - "Mine" is a MP3 stored on a web server somewhere.

    These path options hold true of the extended playlists described below.

    Extended M3U

    Let's first look at an extended M3U file then I will describe everything below

    sample2.m3u
    code:

    #EXTM3U
    #EXTINF:233,Everclear - So Much For The Afterglow
    Alternative\everclear - SMFTA.mp3
    #EXTINF:227,Weird Al - Everything You Know Is Wrong
    Comedy\Weird Al - Everything You Know Is Wrong.mp3
    #EXTINF:187,Weird Al Yankovic - This is the Life
    Weird Al - This Is The Life.mp3
    #EXTINF:129,Weird Al: Bad Hair Day - Gump
    http://www.site.com/~user/gump.mp3
    #EXTINF:-1,My Cool Stream
    http://www.site.com:8000/listen.pls

    Explanation of entries:
    #EXTM3U At the VERY top of the Extended M3U file is this header, which signifies this is an extended M3U file. '#EXTM3U" must be all capital letters.

    #EXTINF:233,Everclear - So Much For The Afterglow: This is the line that tends to confuse people. Let's break it up into parts
    - #EXTINF:: This signifies this is an Extended Information field. It ends with a colon (.
    - 233,: This is the time of the file in seconds followed by a comma. (233 seconds = 3:53). On the last entry there is a negative one, this is usually seen on streams, it tells the program to ignore the time entry.
    - Everclear - So Much For The Afterglow: Title to display. This is usually the title read from the file name or ID3 tags. This also can be the name of a stream. No characters follow the title.
    Alternative\everclear - SMFTA.mp3: File location as described above with basic playlists.

    M3U8

    M3U8 is a Unicode UTF-8 version of M3U files for support of Unicode/"international" characters/text. M3U8 follows the same principles as explained above.

    Extended PLS (PLSv2)

    Same playlist from the M3U section in PLS format.

    code:

    [playlist]
    File1=Alternative\everclear - SMFTA.mp3
    Title1=Everclear - So Much For The Afterglow
    Length1=233
    File2=Comedy\Weird Al - Everything You Know Is Wrong.mp3
    Title2=Weird Al - Everything You Know Is Wrong
    Length2=227
    File3=Weird Al - This Is The Life.mp3
    Title3=Weird Al Yankovic - This is the Life
    Length3=187
    File4=http://www.site.com/~user/gump.mp3
    Title4=Weird Al: Bad Hair Day - Gump
    Length4=129
    File5=http://www.site.com:8000/listen.pls
    Title5=My Cool Stream
    Length5=-1
    NumberOfEntries=5
    Version=2

    Explanation of entries:
    [playlist]: Signifies that this is a playlist. This is case sensitive.

    File#=: Location of the file in any of the formats described above. This is also case sensitive. Also the # sign after "File" signifies what file number it is. The first file in the playlist is "File1", the second is "File2" and so on.

    Title#=: Title to display. This is usually the title read from the file name or ID3 tags. Like the other fields, this is case sensitive. This also can be the name of a stream. Like "File#" the pound sign (#) is replaced by the entry number that is in the playlist.

    Length#=": Length in seconds, this is also case sensitive. On the last entry there is a negative one, this is usually seen on streams, it tells the program to ignore the time entry. Like "File#" the pound sign (#) is replaced by the entry number that is in the playlist.

    NumberOfEntries=#: The total number of entries in the playlist. This should match the last number on the "File#", "Title#", and "Length#" fields. Also case sensitive.

    Version=2: This required entry near the bottom tells the player what format the PLS is in. Older versions of the PLS format did not include this. Like everything else, it is case sensitive.

    [edit 25 September 08 > JonnyMac] removed URL tags from URL examples, removed defunct WA3 B4S specification topic header [/edit]

    [edit 11 April 08 > JonnyMac] Added M3U8 info [/edit]
Working...
X
😀
🥰
🤢
😎
😡
👍
👎