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://"
|