<H2>M3U (WinAmp) Play List Specification</H2>
<P>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 toy to clarify the differences of the playlist formats available. </P>
<CENTER>
<SCRIPT type=text/java script><!--
google_ad_client = \"pub-3057977486983051\";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = \"728x90_as\";
google_ad_type = \"text_image\";
google_ad_channel =\"\";
google_color_border = \"DDAAAA\";
google_color_bg = \"ECF8FF\";
google_color_link = \"0033FF\";
google_color_url = \"0033FF\";
google_color_text = \"000000\";
//--></SCRIPT>
<SCRIPT src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\" type=text/java script>
</SCRIPT>
</CENTER>
<H3></H3>Generic M3U file
<H3></H3>
<P>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. </P>
<P>Here are a few sample generic MP3/PLS files: </P>
<TABLE class=notice cellSpacing=0 cellPadding=5 border=1>
<TBODY>
<TR>
<TD><PRE>Alternative\\Song.mp3
Classical\\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
</PRE></TD></TR></TBODY></TABLE>
<UL>
<LI>Alternative and Classical are sub-directories of the directory that this playlist is stored in.
<LI>\"Song.mp3\" and \"New_Song.mp3\" are in sub-directories that this playlist is stored in.
<LI>\"Crap.mp3\" is in the same directory that the playlist is stored in.
<LI>\"Foo_Bar.mp3\" is in the specified directory, which may or may not be the same directory the playlist is in.
<LI>http://www.site.com:8000/listen.pls is a Shoutcast stream.
<LI>\"Mine.mp3\" is a MP3 stored on a web server somewhere. </LI></UL>
<P>These path options hold true of the extended playlists described below. </P><BR><BR><BR>
<H3>Extended M3U</H3>
<P>Let\'s first look at an extended M3U file then I will describe everything below </P>
<TABLE class=notice cellSpacing=0 cellPadding=5 border=1>
<TBODY>
<TR>
<TD><PRE>#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
</PRE></TD></TR></TBODY></TABLE>
<UL>
<LI>#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.
<LI>#EXTINF:233,Everclear - So Much For The Afterglow<BR>This is the line that tends to confuse people. Let\'s break it up into parts
<UL>
<LI>#EXTINF:<BR>This signifies this is an Extended Information field. It ends with a colorn.
<LI>233,<BR>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.
<LI>Everclear - So Much For The Afterglow<BR>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. </LI></UL>
<LI>Alternative\\everclear_SMFTA.mp3: File location as described above with basic playlists. </LI></UL>
<P>WinAmp also understands the <A href=\"http://www.schworak.com/programming/music/PlayList_PLS.asp\">PLSv2</A> play list format. Windows Media Player understands M3U and <A href=\"http://www.schworak.com/programming/music/PlayList_ASX.asp\">ASX</A> play list formats. </P>
<SCRIPT type=text/java script>
try
{
StillLoading = 0;
ShowLoading();
}
catch(er)
{
// Ignore any error
}
</SCRIPT>
<BR> |