What's Playing
Home
Downloads
Documentation
FAQ
Contact
Bugs
Mailing Lists
Reviews
Source
Donate


Documentation

Before you install the plugin, exit Winamp. The actual installation process is very straight forward and unless you have changed the default installation directory of Winamp 3, you just need to click "Next" all the way! Once the installation is over, start Winamp. Please not that there has been a lot of change in v1.4. If you have been using v1.2, please read the documentation again as the syntax for features supported in v1.2 has been changed slightly in v1.4. If you have been using v1.3, check out the new features. Already existing sytaxs remain the same (as that of v1.3).

All the configurations that can be done on What's Playing is through the "Preference" window. Press Control-P to bring up the Preference window. Then scroll down the list of the left hand side of the window, until you come to "Whats Playing". Click on it to open the preference options on the right hand side of the window. The configurations are split into two screen - "Basic Setup" and "Customisation". We will go one by one.

Basic Setup screen

  • "Enable What's Playing"
    This, as the name implies, should be selected to enable the working of What's Playing.
  • "Enable Immediate duplicate check"
    This option is used to prevent update of the list if the presently playing song is same as the previously played song. This prevents the junk output if you have only one song in your playlist and you have set Winamp for repeat mode.Keep this enabled unless it it messing up with your output.
  • "Path to output file"
    Using this field the user can choose the location for saving the output file. An example would be "C:/whatsplaying.html". You don't need to enter those double-quotes shown in the example. Press "Enter" after you key in the path. Yes, you have to press "Enter".
  • "Command to execute"
    Here you can specify the executable file you want to execute every time the file is changed. I use this option to execute my FTP client to upload the file to my web server from my deaktop. Example entry would be "C:/Program Files/WS_FTP/WS_FTP95.exe". You don't need to enter those double-quotes shown in the example.

    You can also create a "BAT" file to call the FTP client and upload the file. This "BAT" file generator might help. Thanks Ben for the URL.

    Press "Enter" after you key in the value. if you don't want to execute any command, leave this field empty. But do press "Enter".
  • "Arguments to the command"
    Now, when I call the command I specified using the option discussed above, (example FTP), I don't want to enter details like my website address, username, password, local directory etc. Most good FTP clients can store them in session details. Then these session details can be specified as arguments to the executable. This options is the place to enter the arguments you want to pass to the executable. If you don't want to pass any arguments, make sure this option is empty. Press "Enter" after you finish typing, even if the field is empty.

    IPSWITCH's WS_FTP client HOWTO on calling the client from the command prompt will help you if you are using WS_FTP. It can be found here.

    For those using CuteFTP, maybe this will help.
  • "History"
    Here you can define the number of songs you want to keep in the list. Maximum possible is 100 and minimum is 1. This value includes the currently playing song too (if you are playing one!). So, if I enter 10, the list will show the currently playing song and 9 previously played song.
  • "Update Frequency"
    Here you specify the frequency of the file update and command execution. Ok, listen carefully. This is how it works. If I enter, say, 2, the list will be produced/updated and command executed, when the first songs is played. After that the list is updated and command is executed every 2 songs. Thus, the list will be updated when the following songs are played - 1,3,5,7,9.... If you enter the value 5 for frequency, the list will be updated and command executed when the 1,6,11,16... songs are played.

    Set this option to a nice value so that you won't be irritated by the frequenct execution of the FTP client. Default value of 1 means that the update and execution will happen when each song is played. Yup, press "Enter".
  • "URL"
    If you think you don't like the output file template or if you dislike the command execution method of updating the list, this section is for you. Here you can specify the URL/location of a Perl/PHP/ASP script that can receive a HTTP POST request containing the information. The URL should be something like "www.examplesite.com/cgi-bin/whatsplaying/post.pl" You should NOT add "http://" in the front (this is different from v1.2 where you had to have the "http://")

    Details of the HTTP POST request is discussed below. It is useful if you want to understand how the data is sent so that you can write your own script.

    The POST data sent uses the following variables:
    • p: can have values 1 or 0 depending on whether Winamp is still active (p=1)or it has been closed (p=0). Thus, the value of the field 'p' can let you know whether you are listening to anything now, or not.
    • history: This variable takes the value of the number of individual song details the POST is carrying. So, if you are playing a song and had played 5 others before this, history will be 6 (5+1). Since the maximum history value is 100, the maximum value this varible can have is 100.
    • time: This variable contains the local time of the computer that is running the winamp session. It will be of the format yyyy-mm-dd hh:mm:ss This variable is always sent as long as HTTP POST is enabled. New in v1.4
    • playlistname: This variable takes the value of the playlist name. Simple as that. So if you want to retrive the name of the playlist you are playing right now, get this variables value. Of course you have to enable the output of "Playlist Name" tag. See below on how to enable the tag. New in v1.4
    • Artistn: This is sent if you have enabled output of "Artist" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Artist1 will contain the value of the artist of the song you are presently playing (if p=1) or the song you played last (if p=0), while Artist2 will have info on the artist whose song you played before that, and so on.
    • Albumn: This is sent if you have enabled output of "Album" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Album1 will contain the value of the album of the song you are presently playing (if p=1) or the song you played last (if p=0), while Album2 will have info on the album you played before that, and so on.
    • Titlen: This is sent if you have enabled output of "Title" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Title1 will contain the value of the title of the song you are presently playing (if p=1) or the song you played last (if p=0), while Title2 will have title on the song you played before that, and so on.
    • Genren: This is sent if you have enabled output of "Genre" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Genre1 will contain the value of the genre of the song you are presently playing (if p=1) or the song you played last (if p=0), while Genre2 will have genre of the song you played before that, and so on.
    • Yearn: This is sent if you have enabled output of "Year" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Year1 will contain the value of the year of the song you are presently playing (if p=1) or the song you played last (if p=0), while Year2 will have year of the song you played before that, and so on.
    • Commentn: This is sent if you have enabled output of "Comment" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Comment1 will contain the value of comment tag of the song you are presently playing (if p=1) or the song you played last (if p=0), while Comment2 will have value of the comment tag of the song you played before that, and so on.
    • Trackn: This is sent if you have enabled output of "Track" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Track1 will contain the value of track tag of the song you are presently playing (if p=1) or the song you played last (if p=0), while Track2 will have value of the track tag of the song you played before that, and so on.
    • Lengthn: This is sent if you have enabled output of "Song Length" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Length1 will contain the value of length of the song you are presently playing (if p=1) or the song you played last (if p=0), while Length2 will have value of the length of the song you played before that, and so on. The length is represented as mm:ss (i.e. minutes:seconds)
    • Posn: This is sent if you have enabled output of "Track Position" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Pos1 will contain the value of position of the song (in the present playlist) you are presently playing (if p=1) or the song you played last (if p=0), while Pos2 will have value of position of the song (in the present playlist) you played before that, and so on.
    • PLSizen: This is sent if you have enabled output of "Playlist Size" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, PLSize1 will contain the value of size of the playlist while you were playing the present song (if p=1) or while you played last (if p=0), while PLSize2 will have value of the playlist while you were playing the song before that, and so on. Note that unless you change the playlist (by adding/deleteing songs from it), PLSize1, PLSize2 etc will have the same value.
    • Qualityn: This is sent if you have enabled output of "Quality" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Quality1 will contain the value of quality of the present song (if p=1) or the song you played last (if p=0), while Quality2 will have value of the song before that, and so on. Note that the quality gives information about (*)Bit rate (eg. 128kpbs) (*)Mono/Stereo (*) Sampling rate (eg. 44.1 kHz)
    • Filenamen: This is sent if you have enabled output of "Filename" tag. See below on how to enable the tag. The n is replaced with numbers 1,2,3...history. Thus, Filename1 will contain the full path and filenameof the the present song (if p=1) or the song you played last (if p=0), while Filename2 will have value of the song before that, and so on. The value contains the full paths of the directory in which the file is, the file name and its extension. An example will be "file:c:\My Music\Artist\Album\song1.mp3" (without the double quotes of course). (New in v1.4)
  • "URL Username"
    If you have saved the Perl/PHP script in a password protected directory, you enter the username here.
  • "URL Password"
    If you have saved the Perl/PHP script in a password protected directory, you enter the password here.
  • "Proxy"
    If you are behind a proxy server, fill the field with the URL of the proxy server. Eg.:

    www.urproxyserver.com:port. Again, do not use "http://"
  • "Proxy Username"
    If you need to authenticate befire using the proxy server you enter the proxy's username here.
  • "Proxy Password"
    If you need to authenticate befire using the proxy server you enter the proxy's password here.
Customisation screen
  • "Tag details to be sent with HTTP POST"
    By checking or unchecking the boxes, you can decide with information about the file you are playing now will be output and which will not be. Note that except for "Song Length", "Track Position", "Playlist Size" and "Quality", all the other values are got from the ID3V1 or ID3V2 tags of the MP3 file. So, if you have selected a field, but the corresponding ID3V1 and ID3v2 tag does not contain any information, the string "-" will be displayed as default.
  • "Update only after"
    There may be cases where you would not want What's Playing to keep record of songs you had just skipped after listening for some seconds. You can prevent What's Playing from using these details, by specifying how long What's Playing should wait before it records the details of the song. You can either sepcify it as "sec" or as % of song played. So, for example if you specified "10 sec", your song details will be recorded only after you have listened to the song for 10 seconds. If you go to the next song before this, the song's detais will not be captured.
  • "Playing template"
    The template to use to render the output file specified in "Basic Setup", when Winamp is playing. Read more on the templating syntax here. The file at the default value provides an example of the allowed template syntax. Note: the default value assumes that you have installed winamp at "C:\Program Files\Winamp3". If you have installed it anywhere else, you will have to change the default value accordingly yo get it to work.
  • "Not playing template"
    The template to use to render the output file specified in "Basic Setup", when Winamp has closed. Read more on the templating syntax here. The file at the default value provides an example of the allowed template syntax. Note: the default value assumes that you have installed winamp at "C:\Program Files\Winamp3". If you have installed it anywhere else, you will have to change the default value accordingly yo get it to work. Note that if your Winamp3 installation path is not C:\Program Files\Winamp3\ you will have to change the default value for "Playing template" and "Not playing template" according to your path.
  • "Extra POST data"
    This is new to v1.4. There were a couple of requests for allowing the HTTP POST to send data defined by the user. If you need to send anything to the script, this is the place to define it. Note that the data defined here it static. It does not update automatically. You have to enter it and if required, you have to change it, manually. An example of a situation where you may need to send data like this is as follows: You share a web server with your loved one. You have a script that handles the HTTP POST data, but you don't want to replicate the script for each of your loved ones. You rather have one single script that everyone can have. But based on who is sending the data, you want to output the result to different files. So, you want to define users for the script. You do it here! The syntaxt is of the format
    var_name1=value1&var_name2=value2&var_name3=value3

    An example would be:
    username=abcd&actual_name=XYZ

    Two very important things to remember when using this field. The values you specify has to be url encoded. The plugin will not encode it for you. That means you cannot have characters like white space in your variable name or its value. Second thing to remember is that each var=value pair has to be joined together by the "&". However, do not put a "&" at the end. This means:
    var_name1=value1var_name2=value2 <---- Wrong (no '&' seperating value1 and var_name2)
    var_name1=value1&var_name2=value2& <---- Wrong (do not put '&' in the end)
    var_name1=value1&var_name2=value2 <---- Right

    The POST encoder page by Muhammad Nasaruddin makes this whole process easier to do.



Note:
1. Press "Enter" after typing value in each field.
2. Do not use double-quotes in any of the values entered.
3. This plugin will not work with Winamp 2.
4. Make sure that the URL and proxy does not start with "http://"


© 2003 Srijith.K
SourceForge.net Logo