Old 16th November 2001, 02:58   #1
Sawg
Guest
 
Posts: n/a
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]
  Reply With Quote
Reply
Go Back   Winamp & SHOUTcast Forums > Tech Support Greatest Hits

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump