Now Playing: A Windows Media Player Plugin

Hacks, Now Playing123 Comments

I gave up. Moved to open source on GitHub.

Other Editions: iTunes for Windows | iTunes for Mac OS X | Winamp



The Now Playing plugin allows you to easily publishing what you are listening to! The end result is something that could look like this on your web site!

Windows Media Player allow you to create plugins that can do various tasks for you. The Now Playing plugin monitors the song you are listening to and publishes the data in various ways:

  1. Creates a XML file with information on that song. A file called now_playing.xml is created in your Windows Media Player Plugins directory.
  2. The plugin also offers you the ability to FTP/SFTP that file to a server of your choosing after its updated.
  3. Create a ping with the song information.
  4. Post information on Twitter.
  5. Post information on Facebook.

The idea is that you publish the XML up to your web server and then through some scripting magic, you can display your currently playing song or your recently played tracks. To make your web site more interactive, the plugin also retrieves the following information for you to use:

  1. URL of the album image cover art from (if found).
  2. Link to the product page for the CD (if found).
  3. Link to the Apple iTunes Music Store product page with the song highlighted within iTunes (if found).

Installation Instructions

  1. Run the installer.
  2. Start Windows Media Player.
  3. The configuration screen will come up right away the first time you run Windows Media Player after installing. Fill in whatever information suits you and hit OK when you are done.
  4. Play a song!


About: Get version information.

Now Playing Options - About

Options: Configure a few basic options for the plugin.

  • Publish Stop: If you want the plugin to publish a message when you stop playing music. The playlist in the XML will be emptied but it is still cached for the next time you fire up Windows Media Player.
  • Clear Playlist: When the player exits, you can choose to keep or clear the playlist memory for the plugin.
  • Playlist Delay: The playlist will only keep a new entry if it plays for at least the amount of time specified. If you change tracks before the time elapses, the playlist entry for the song you skipped will be overwritten with the next song. So instead of advancing the oldest item off the list, it leaves the items in tact and just overwrites the prior.
  • Skip Shorter Than: If a track is shorter than this number of seconds, the track will be skipped from all output interfaces (XML, Twitter, Facebook, etc.). This is helpful if you have short sound effects in your playlist that you do not want to publish. If set to 0, the setting is effectively disabled and all tracks will be published.
  • Skip Kinds: If a track matches this list of kinds, the track will be skipped from all output interfaces (XML, Twitter, Facebook, etc.). This is helpful if you don’t want to publish video, for example. This is a comma separated list of values. The value for each kind should be taken from the XML’s kind tag.
  • Logging: If you are not getting the results you expect from the plugin, you may want to enable logging. A file called NowPlaying-Log.txt will be generated in the Program Files\Windows Media Player\plugins\Now Playing directory. If you contact me about an issue, I will be more likely to solve your issue if you send the log file with the event captured at the debug log level.
Now Playing Options - General

XML: Configure some options for the XML file that will be generated.

  • Output File: Specify the location of the file that is created when the song changes. This file will be uploaded to your FTP/SFTP server if configured to do so. You may use date/time formatting codes, such as %Y, in the filename.
  • Encoding: Select which type of encoding your want for the XML. UTF-8 is the recommended choice.
  • XSL URL: This URL will be insert into your XML. You may leave the it empty if you do not use that functionality.
  • Wrap XML tag values with CDATA: Some song properties have odd characters inside of them and you may need to safely encode the XML depending on your parser.
  • Playlist Length: Enter the total number of songs that you want to publish in the XML file.
Now Playing Options - XML

Upload: Enter your server information to configure FTP/SFTP. Be sure that you have permission on your server to upload the file.

  • Protocol: Choose from None, FTP, and SFTP.
  • Hostname: Your FTP/SFTP server name or IP address.
  • Username: Your FTP/SFTP login.
  • Password: Your FTP/SFTP password.
  • Filename: You may use date/time formatting codes, such as %Y, in the filename.
Now Playing Options - Upload

Ping: The plugin can send an HTTP POST request when the song changes. The request is sent after the upload of the XML file, if configured. Each of the XML tag names for the track are posted as fields.

  • URL: Enter a URL that will receive the POST request.
  • Extra Info: Enter a value that will be sent as a HTTP header called X-NowPlaying. You can use this to set a secret value that your script looks for to prevent unauthorized use.
Now Playing Options

Twitter: The plugin can post a tweet with what you are listening to.

  • Enabled: Turn the feature on or off.
  • Rate Limit: Enter the minimum number of minutes between tweets. This is used to comply with Twitter’s rate limiting. Also helps so you don’t annoy the crap out of your followers with a tweet for every track you play.
  • Message: Enter the text that you want to post for each new song that plays. You can use a combination of the tags listed below the field for the song data. The text will be substituted and should be less than 140 characters (Twitter limit).
  • Setup: You need to complete the three phase setup to add and authorize the plugin to work with Twitter. 1) Press Authorize to launch a web browser and give Now Playing access. 2) You will get a PIN from Twitter that you enter in the field. 3) Verify the PIN by pressing Verify. 4) You should see your Twitter name appear there with an option to reset if you want to start over or remove the association.
Now Playing Options - Twitter

Facebook: The plugin can update your Facebook news feed with what you are listening to.

  • Enabled: Turn the feature on or off.
  • Rate Limit: Enter the minimum number of minutes between posts. This is used to comply with Facebook’s rate limiting. Also helps so you don’t annoy the crap out of your friends with a post for every track you play. This is currently required to be 30 minutes or more because of Facebook’s ban on spammy apps.
  • Caption: Enter the text that you want to post for each new song that plays. You can use a combination of the tags listed below the field for the song data.
  • Description: Enter the text that you want for the description of the news feed item for each new song that plays. You can use a combination of the tags listed below the field for the song data.
  • Setup: You need to complete the two phase setup to add and authorize the plugin to work with Facebook. Press each of the buttons in sequence and follow the instructions. You should see your Facebook name appear there with an option to reset if you want to start over or remove the association when you have completed the steps.
Now Playing Options - Facebook

Amazon: The plugin will query for additional information about your song, such as a link and the album image cover.

  • Enabled: Turn the lookup on or off.
  • Locale: Choose “us” for Amazon in the US, “ca” for Amazon in Canada, “uk” for Amazon in the United Kingdom, “de” for Amazon in Germany, or “jp” for Amazon in Japan.
  • Associate ID: Amazon allows you to collect referral fees on items sold when users click-through from your site. Enter your associate ID here.
  • ASIN Hint: Since Amazon’s search is quirky for some albums, you can use this feature to specify the exact album you want to match. Check this box if you want the plug-in to assume the value of the track’s “music category description” field (WMP 10 and below) or “Subgenre” field (WMP 11 and higher) is an Amazon ASIN.
Now Playing Options - Amazon

Apple: The plugin will query Apple’s iTunes Music Store for additional information about your song, such as a link.

  • Enabled: Turn the lookup on or off.
  • Affiliate ID: Want to receive a commission when users click-through and buy songs from your site at the iTunes Music Store? Join the Apple iTunes Affiliate program. Find out what your Affiliate ID is and plug it in here.
Now Playing Options - Apple

License: If and when you purchase a license, you will enter your registration information on the license tab. Enter the e-mail address you used for the PayPal transaction and the license key I sent you after the purchase.

Now Playing Options - License


The XML has the following format for a single song playlist. If you configure the playlist for more than 1 entry, there will be multiple song tags.

<?xml version="1.0" encoding="UTF-8"?>

<now_playing playing="1" timestamp="2004-05-24T23:12:46-07:00">

<song timestamp="2004-05-24T23:12:46-07:00">


<artist>Linkin Park</artist>



<kind>MPEG audio file</kind>



<comments>I like it.</comments>











<composer>Brandon Fuller</composer>









Frequently Asked Questions

  • Q: I lost my registration key. Can you resend it?
    A: You can retrieve it yourself here.
  • Q: How do I uninstall the plugin?
    A: Go to the Windows Control Panel, choose Add/Remove Programs, and then select Now Playing.
  • Q: How can I get a debug log?
    A: Go to the plugin’s configuration screen and select the Options tab. For Logging, select Debug. Reproduce your issue now. A file called NowPlaying-Log.txt will be generated in the Program Files\Windows Media Player\plugins\Now Playing directory.
  • Q: How can I get back to the configuration screen?
    A: To configure any plugin, go to the menubar and choose Tools->Options->Plugins. Choose the Background category. Now Playing will appear on the right. Choose Properties.
  • Q: Why aren’t my Amazon or Apple links populated in the XML?
    A: It is because the Amazon or Apple search engine cannot find the album. These engines can be picky at times.
  • Q: Can you show me how to parse the XML file on my server?A: Sure. This sample will work for a single song or multiple songs.
    $file = "now_playing.xml";
    $xml_parser = xml_parser_create();
    if ( is_file( $file ) )
    $fp = fopen( $file, "r" );
    $data = fread( $fp, filesize( $file ) );
    fclose( $fp );
    xml_parse_into_struct( $xml_parser, $data, $vals, $index );
    xml_parser_free( $xml_parser );
    if ( $debug )
    echo "<pre>";
    echo "Index array\n";
    echo "\nVals array\n";
    echo "</pre>\n\n";
    if ( $vals[ $index["NOW_PLAYING"][0] ]["attributes"]["PLAYING"] == 1 )
    foreach ( $index["TITLE"] as $i => $j )
    $title = $vals[ $index["TITLE"][$i] ]["value"];
    if ( strlen( $title ) > 0 )
    $artist = $vals[ $index["ARTIST"][$i] ]["value"];
    $album = $vals[ $index["ALBUM"][$i] ]["value"];
    $genre = $vals[ $index["GENRE"][$i] ]["value"];
    $kind = $vals[ $index["KIND"][$i] ]["value"];
    $track = $vals[ $index["TRACK"][$i] ]["value"];
    $year = $vals[$index["YEAR"][$i] ]["value"];
    $comments = $vals[ $index["COMMENTS"][$i] ]["value"];
    $time = $vals[ $index["TIME"][$i] ]["value"];
    $bitrate = $vals[ $index["BITRATE"][$i] ]["value"];
    $rating = $vals[ $index["RATING"][$i] ]["value"];
    $playcount = $vals[ $index["PLAYCOUNT"][$i] ]["value"];
    $compilation = $vals[ $index["COMPILATION"][$i] ]["value"];
    $urlamazon = $vals[ $index["URLAMAZON"][$i] ]["value"];
    $urlapple = $vals[ $index["URLAPPLE"][$i] ]["value"];
    $imagesmallurl = $vals[ $index["IMAGESMALL"][$i] ]["value"];
    $imageurl = $vals[ $index["IMAGE"][$i] ]["value"];
    $imagelargeurl = $vals[ $index["IMAGELARGE"][$i] ]["value"];
    $composer = $vals[ $index["COMPOSER"][$i] ]["value"];
    $grouping = $vals[ $index["GROUPING"][$i] ]["value"];
    $urlsource = $vals[ $index["URLSOURCE"][$i] ]["value"];
    $filename = $vals[ $index["FILE"][$i] ]["value"];
    echo "Now Playing is " . $title . " by " . $artist;
    echo "Now Playing is stopped.";
  • Q: I don’t understand all of this PHP stuff but I still want to do all these cool things. Can you help?
    A: Ok, I have zipped up the actual code I use on my own web site. You can download it and use it for your site or as a starter. Please don’t mail me to customize it for you. I don’t have time. So to use this: 1) Take the zip file and extract and place the files on your PHP-enabled web server. 2) Put the images into /images on your server. 3) Insert the following code in the web page that you want to display the music.

    <script type="text/javascript" src=""></script>


I have done my fair share of free plugins lately. This one took a little more work so I decided to release it as shareware. So download the plugin and test it out. Make sure it does what you want. Once you are happy, order the licensed version for $5. You will receive a registration key via e-mail once I receive your purchase confirmation from PayPal. Oh yeah — be cool and keep your registration to yourself.

Also, if you would, you can put the Now Playing badge on your web site with a link back to this page. The more people that donate, the more I will be asked to develop new and interesting features that you will be able to take advantage of!

Now Playing

Here is the code for your site:


<a href="">

<img src="" alt="Now Playing" />




Download the current version from the link below. Past versions are not archived.

Download Now Playing for Windows Media Player Installer (2.19 MB)

Version History

A chronological list of how we got here.

v3.9.4.0 — 2013-11-11
  • Updated to work with Apple’s new iTunes affiliate program. Sign up here.
v3.9.3.0 — 2013-03-15
  • Fixed Facebook integration. Again. Facebook started doing something “smart” when we give them URLs to Amazon albums. It blows away all your custom text and uses text scraped from Amazon. This does not appear to happen with iTunes links. I use iTunes anyway. So I switched to iTunes links and they seem to be showing up more like they are intended, in most cases. In some cases, you continue to get an iTunes text scrape with it. The other choice would be to remove the link all together which might be the next answer.
  • Changed the default Facebook message because “actor” no longer works.
  • Removed Facebook rate limit limit of 30 minutes.
v3.9.2.3 — 2013-03-03
  • Fixed Twitter authorization issue after Twitter changed OAuth endpoint.
v3.9.2.2 — 2012-12-01
  • Fixed error where plugin thinks its the first run if XML file not configured.
v3.9.2.1 — 2012-10-16
  • Fixed Twitter posting. Again. Some users getting “bad authorization” with code 215.
v3.9.2.0 — 2012-10-11
  • Fixed Twitter posting. Twitter deprecated the API the plugin used.
v3.9.0.5 — 2012-02-28
  • Fixed logging configuration user interface that I busted.
v3.9.0.4 — 2012-02-12
  • Lower Facebook Rate Limit to 30 minutes minimum.
v3.8.1.3 — 2011-05-31
  • Fixed issue with Amazon lookups involving dots, underscores, and tildes in the artist or album name.
  • Prevent use of email addresses as Amazon Associate IDs as those are not valid.
v3.8.1.2 — 2011-05-03
  • Internal updates to support usage tracking.
v3.8.1.1 — 2011-04-27
  • Facebook rate limit fixed at 360 minutes.
v3.8.1.0 — 2011-04-26
  • Facebook integration has been restored. Details.
v3.8.0.9 — 2011-03-15
  • Fixed issue where some Amazon cover art wasn’t being displayed in Facebook news feed posts because of URL encoding issues.
v3.8.0.8 — 2011-02-25
  • Changed default rate limits from 60 to 0 to prevent user confusion.
v3.8.0.4 — 2010-08-11
  • Apple changed the iTunes Link Maker again. Updated to work with new API.
  • Added imageLocalSmall and imageLocalLarge elements to the XML output in order to help with media center integrations.
v3.8.0.3 — 2010-04-28
  • Removed Facebook error message dialog box. Message in error log.
v3.8.0.2 — 2010-03-13
  • Fixed issue where some international characters were not displayed properly in Twitter and Facebook messages and screen names.
  • Fixed issue where Facebook description value was not saved.
  • Fixed issue where Facebook message in news feed only had cover art and no text.
v3.8.0.0 — 2010-03-02
  • Added ability to customize the Facebook description for posting news feed items. Previously, it posted the comments field.
  • Added ability to skip kinds of media. Maybe you don’t want to post video updates, for example.
  • Changed Facebook news feed items so that they do not post as status if no Amazon URL is found.
v3.7.0.3 — 2010-02-25
  • Fixed issue where Apple iTunes lookup did not deal with non-ASCII characters properly.
v3.7.0.2 — 2010-02-10
  • Fixed issue where Twitter OAuth signatures were too short because of a buffer issue. Prevented authorization in some cases.
v3.7.0.1 — 2010-02-09
  • Fixed issue where Twitter Rate Limit option not being stored properly.
  • Add more debug logs for Twitter authorization process to help troubleshooting.
v3.7.0.0 — 2010-02-07
  • Changed Facebook option to publish to status or news feed. You must perform the 1, 2, 3 setup on the configuration page again. More info.
  • Changed Twitter option to use OAuth login.
  • Added rate limit option to Twitter.
v3.6.6.0 — 2010-01-23
  • Added “Skip Shorter Than” to Options configuration.
  • Moved comments to DISQUS for better interaction.
v3.6.5.4 — 2009-11-09
  • Apple changed iTunes links again.
v3.6.5.3 — 2009-08-18
  • Amazon began requiring requests to be signed so signatures added.
v3.6.5.2 — 2009-03-27
  • Updated installer dependency order to fix Windows 7 install registration issue.
v3.6.5.1 — 2009-03-16
  • Reports of install failures so upgraded DLL registration method in NSIS.
v3.6.5.0 — 2009-01-05
  • Added timestamp and hasAmazon tags to Facebook function.
  • Added default Facebook message.
  • Fixed Apple lookup for new server URL.
v3.6.4.2 — 2008-11-17
  • Added support for new Facebook profile.
  • Added file permission checks in installer for log and XML files.
v3.6.4.1 — 2008-07-08
  • Stopped URL encoding Facebook image URLs because Facebook does not like them anymore.
  • Added urlAmazon as a Facebook tag.
v3.6.4.0 — 2008-02-20
  • Migrating to Amazon Associates Web Service 4.0.
v3.6.3.0 — 2007-08-18
  • Removed FTP and SFTP warning dialog boxes. All errors are logged in the log instead.
v3.6.1.0 — 2007-08-03
  • Added Amazon image tags to Facebook output tags.
  • Adjusted list of Facebook output tags based on plugin edition.
v3.6.0.1 — 2007-07-17
  • Added Facebook “Add Application” button.
  • Fixed incorrect error message on Facebook authorize.
v3.6.0.0 — 2007-07-05
  • Added Facebook support.
v3.5.0.0 — 2007-03-22
  • Added Twitter support.
v3.4.1.1 — 2007-01-14
  • Fixed artwork ID value in XML to use UTF-8 characters before MD5 hashing.
v3.4.1.0 — 2006-12-19
  • Added UTF-8 encoding for ping data.
v3.4.0.3 — 2006-09-14
  • Apple broke the music store links — again.
  • Support for pinging SSL sites.
v3.4.0.2 — 2006-07-27
  • Update software version check.
v3.4.0.0 — 2006-06-29
  • Overhauled the ping functionality to support POST of all data elements to URL.
  • Added extra info field to ping.
  • Fixed Apple iTunes Music Store links. Apple changed format of link maker again.
  • Removed choice of Amazon image size from configuration.
  • Added all Amazon images sizes to the XML and ping.
v3.3.1.6 — 2006-03-31
  • Fixed issue with Amazon lookups when colons or apostrophes were in album or artist name.
v3.3.1.5 — 2006-02-13
  • Changed duplicate track detection mechanism.
  • Fixed issue with log file path which caused log not to generate.
v3.3.1.4 — 2005-11-13
  • Fixed iTunes Music Store lookups after Apple changed the link generator.
v3.3.1.3 — 2005-10-31
  • Better detection for duplicate tracks in playlist.
v3.3.1.2 — 2005-10-12
  • File uploads were causing problems when full path was not specified for the local XML file. Configuration now requires full path for local XML file.
  • Revised the Internet upload error dialog messages.
v3.3.1.1 — 2005-10-10
  • Fixed file upload issue when configuration did not have a path for the upload filename.
v3.3.1.0 — 2005-09-15
  • Added option to disable Amazon and Apple lookups.
v3.3.0.5 — 2005-09-08
  • Fixed uninstaller issues.
v3.3.0.4 — 2005-08-05
  • Prevent installation when media player is running.
v3.3.0.1 — 2005-07-25
  • Fixed FTP defect introduced in
v3.3.0.0 — 2005-07-24
  • Removed podcasting feature.
v3.2.8.4 — 2005-07-14
  • Fixed issue where I assumed the ping URL entered had a ? in it.
v3.2.8.3 — 2005-05-30
  • Fixed DllRegisterServer errors in installer for libcurl.dll, libeay32.dll, and libssl32.dll.
v3.2.8.2 — 2005-05-27
  • Podcasting download issue where the plugin would only download the first enclosure in the feed in some cases.
v3.2.8.1 — 2005-05-10
  • Added an XML parse error log to help diagnose bad feeds.
v3.2.8.0 — 2005-03-08
  • Added Canada to Amazon locale choices.
v3.2.7.1 — 2005-01-27
  • Updated SFTP component to latest version.
v3.2.7.0 — 2004-12-15
  • Added configuration option to turn off inbox playlist.
v3.2.6.0 — 2004-12-14
  • Added proxy support for podcast downloads.
  • Added option to surpress FTP failed prompts.
v3.2.5.2 — 2004-12-13
  • More debug logging.
  • Show error when invalid FTP credentials are used.
v3.2.5.1 — 2004-12-05
  • Changed podcast engine to only download one enclosure per feed per cycle. This will help when adding new feeds.
v3.2.5.0 — 2004-12-02
  • Changed podcast download library to use cURL. Previous MS XML library was not properly dealing with redirects.
  • Changed BitTorrent client to provide uploads after download is completed for the amount of time that download took if uploading is available.
  • Stopped downloading .torrent file and just access it via HTTP now.
v3.2.4.1 — 2004-11-30
  • Delete troubleshooting log on WMP startup.
  • Added new MIME type: audio/mp3
v3.2.4.0 — 2004-11-13
  • Added the ability to customize the XML and upload filename with various date attributes to enable rotating logs.
v3.2.3.0 — 2004-11-05
  • Fixed defect for compliation matches on Amazon for playlists of length greater than 1.
  • Separated the publish stop message into a publish stop and clear playlist on exit.
  • Reorganized dialogs.
v3.2.2.1 — 2004-10-30
  • Fixed issue where rating item in XML was off by one.
  • Changed user agent to be “NowPlaying” so we can track usage.
  • Added new logging functionality to aid in troubleshooting bad podcast feeds.
  • Fixed a memory leak caused by podcast downloads.
  • Added a registry setting to control passive FTP.
  • Removed the begin and end popup balloons for the podcast downloads.
  • Added audio/x-mpeg-3 as a supported MIME type.
  • Changed default RSS interval to 6 hours.
  • New download history management via XML.
  • Added an option to suppress the creation of a playlist per RSS channel.
  • Changed RSS update interval to hours from minutes.
v3.1.2.0 — 2004-10-07
  • Changed ASIN hint to use music category description field because it is the same metadata element as iTunes’s grouping field.
v3.1.1.0 — 2004-10-05
  • Create the directory selected for the XML file if it does not exist.
  • Added an option to suppress the creation of a playlist per RSS channel.
  • Changed RSS update interval to hours from minutes.
v3.1.0.0 — 2004-09-25
  • Added BitTorrent support for RSS enclosure downloads.
  • Fixed issue with saving Apple iTunes Affiliate ID.
v3.0.1.0 — 2004-09-21
  • Added ability to specify an associate ID for links to the iTunes Music Store.
  • Added URL into the comments field for MP3s downloaded through RSS enclosures.
v3.0.0.0 — 2004-09-14
  • Added RSS media enclosure downloading, also known as iPodder technology.
v2.5.0.0 — 2004-09-14
  • Works for me.


For questions, suggestions, bug reports, and anything else, please e-mail or leave a comment. Please be sure to review the FAQ above before asking a question. Requests from those who have donated receive higher priority.

I am also trying to offer updates and support via Twitter. Follow nowplayingtool.

  • Hey Brandon. I think that I’m so fed up with iTunes inability to write CD Text when burning, that I’m actually switching back to WMP. After all, the only reason I switched to iTunes was to use your plugin ( Flatter Knob Thrusters to “9” ). Are you recognizing any of your current iTunes licensees if they request a WMP license? Oh, and one more question: Does the ASIN look-up VIA the <grouping> field work with the WMP plug-in? =)

  • WMP does not expose a “grouping” field. They have a “set” field instead, so I used that one. I haven’t thought about the license swap.

  • Hey Brandon, I’m not seeing the “set” field in WMP 10. Help!!! There’s a shit-ton of other fields that I don’t use.. far more than iTunes has. Which should I use? Here’s what my choices are:

  • Do this…right click on a track inside the WMP list of songs. There is a menu item called “Advanced Tag Editor”. It will bring up a tabbed dialog. Set is in there. It is probably aliased in that dialog you sent the picture of but I don’t know what as.

  • Brandon: First, let me say how much I appreciate the work that you do. I’ve realized that in WMP the “Group Description” field holds all of my ASIN hints that I input into the “Grouping” field in iTunes! I’m sure you know where I’m going with this. Is there a way you can switch “set” to “group description” field in the next release of the WMP plug-in?

  • Good idea. New version posted that does this.

  • i just have idea to put music in my website so i put wma player in the bottom but i can’t get the music’s plugins so i m looking for it i think i got it cuz its downloading ..

  • Does this plugin work for ?

    I know nuts about php or xml so I’m gonna need all the help I can get.

    This plugin is just so cool.

  • My installation doesn’t seem to be generating the iTunes link, even when my xml file has the urlApple variable. Is this a problem, or is there something I’m not doing correctly? I didn’t change the php file in this respect (the only thing I changed was the heading). When I get rid of the $urlapple link I do get the icon, just no link, naturally. With it included, I get neither. I don’t suppose you have any ideas? Thanks.

  • A couple things to note. 1) Make sure you use the latest version. iTunes changes their links often and I have to release a new plugin to support it. 2) The search for music is far from exact. iTunes doesn’t provide a real API for doing this so the plugin is making a best guess/try. It isn’t perfect and probably won’t ever be.

  • Good Afternoon,

    I was wondering if you knew how to send an overwrite optoin witht the FTP part of your plug in? I am getting errors when the xml file already exists. Thanks


  • I did some quick searches and I don’t see any obvious way to force an overwrite. I think I would have to delete and then copy. Possible. Lots of articles said that your FTP server configuration can be changed. That might be an option. I will look at doing the delete option in a future release.

  • I don’t suppose you’re toying with the idea of developing a plugin for other players, such as winamp? I’ve been comparing WMP’s sound quality lately and have found it greatly lacking.

  • A suggestion for anyone running the Now Playing plugin and using the PHP script provided above: if you’re using WMP to watch movies, you may wish to change a line in the script so that the titles of movies aren’t displayed on the page. This is especially important if you are watching certain “movies” that you might not want the world to know you are watching. You know, like The Sound of Music 🙂

    Delete the line that reads:

    if ( strlen( $title ) > 0 )

    And replace it with the following two lines:

    $kind = $vals[ $index[“KIND”][$i] ][“value”];

    if ( strlen( $title ) > 0 && ( strcmp(“mp3”, $kind) == 0 || strcmp(“wma”, $kind) == 0 ) )

    If you use audio formats other than mp3 and wma, you will need to edit the second line of code to include them.

    Of course, it would be better if there was an option in the plugin to prevent the xml file from being updated with certain types of media playing. Brandon?

  • Brandon –

    Excellent plugin. Quick question. I’ve been using your now_playing.php script which I’ve modified slightly. Works great. Now I want to have a page with all 20 songs from the xml and I want my front page to only display 3. How do I edit your script to only display the 3? Changing the foreach function……..

  • Hi,

    The plugin is great. Would there be a way to get the information about the next song in the playlist and the song before that. If you check out our website we are using the plugin to update our campus television’s website with what is currently being shown (our channel is driven by a WMP playlist).


    Louis S.

  • You wouldn’t be will to start a WMP plug-in writing tutorial would you? Or at least some good links (not MSDN examples, I can’t make heads or tails of them).


    Louis S.

  • I just used the SDK provided by MS. They have a nice WM plugin wizard that helps get you going.

  • this is quite possibly the coolest thing of all time…

    I have it working the way I want it to, however, there is just one thing I would like to know, is it possible to make the blue lines around the album art and iTunes link go away? I don’t know php that well, so any help would be appreciated. If I can do that, I will register this software and use it forever… (or until I grow bored of it, or too many people make fun of my bad taste in music ;))

  • You can customize any and every aspect of the output…with a little PHP knowledge.

  • diarra venner

    windows media player is a good music player

  • Nico Domino

    Is there anyway that I can get it to say what i am listening to in my AIM buddy profile?

  • Brandon,

    Regarding “now playing wmp plugin”.

    I operate an internet radio station.

    Does this plug-in show my listeners the song currently playing in their wmp?

    Can it also display the last 5 songs played for them? And it can display album art correct?

    I use winamp to stream my station music to my stream provider. Thanks so much.

  • No. It doesn’t display in the listener’s WMP.

  • Hi,

    I’ve run the installer for the plugin but it isn’t appearing in WMP10. I tried adding the pluging manually by telling it the location of the dll but it says it could not be loaded. Please help.

  • Run the installer again. Check the “Show Details” screen and be sure it shows the register operation.

    Then be sure you are looking in the right spot in WMP for plugins. It will be listed in the “Background” category.

  • I’ve redownloaded the installer and run it again. By the Show Details area, it extracts a file called blg.dll (or something like that) into the system32 folder, and it then creates an installer. There is no register operation.

    I went into WMP, and it was still missing, so I clicked the add button, browsed to that file and I get an error.

    Sounds like a problem with the installer somewhere.

  • You have to uninstall and reinstall to force it to re-register. You can do in manually by just running the following command. Adjust to fit the paths on your machine.

    regsvr32 C:\Program Files\Windows Media Player\plugins\Now Playing\NowPlaying.dll

  • Ryan

    I have the plugin installed using WMP 10 (I had to go in and manually add it) and I have it configured for how I want… but it isn’t generating the XML file!

    I have checked, the plugin is selected as running, and I have restarted multiple times, but for some reason it never creates the xml file. I have tried multiple locations (finally just trying to write to the c:\ just to see if that would work, and it isn’t).

    Any ideas?

  • Turn on the logging to the debug level and then play some songs. Then look in the log or send it in to me.

  • funkmeister

    First off, great product, keep up the good work.

    Just got around to posting this…for the last several weeks I’ve been having an issue whereby the XML file on my local machine isn’t being generated/updated everytime a new song is played. I have to go into the Plug-in options and disable/enable several times to force it to spit out the XML. The FTP option is working fine, it’s just getting the XML to be updated that is the issue. When disable/enable doesn’t work, I uninstall and reinstall, that does it for a short time. It’s not just a one-off problem, it occurs quite frequently. By doing the above I can force it to work, but it’s getting quite annoying now, so wondered if it’s a known issue?

    I’m on with WMP 10, if that helps.


    PS: Any timeframes when the OS-X iTunes version will get it’s next update?

  • funkmeister

    I should also mention when I turn on logging (Debug) things also begin to work again. Then when I turn off logging, it stops working! Wierd.

  • funkmeister

    What does this mean in the Debug log file:

    2006-01-14 12:42:10 Debug NowPlayingEvents.cpp, 200 0xF64 UserRating = 0

    2006-01-14 12:42:10 Info Utilities.cpp, 3817 0xF64 Duplicate track; skipping

    Why would it skip something? Shouldn’t it just take whatever I throw at it? Perhaps this is what my issue is?

    Sorry for the all the rapid fire posts. Thanks again.

  • funkmeister, the plugin skips the song if it thinks the prior song is the same as the current song. The method for detecting this isn’t perfect but its been getting better. If you don’t have much info in your MP3 tags, you may get this more than you like.

  • Justin


    I have just installed the plugin, and set it up. It seems that it will make a local XML file, but it will not use the FTP, I have double checked and all the details I entered are correct, it just refuses to connect.

    Any suggestions?

  • Excellent plug-in!! Before I actually buy the plug-in there is one issue I would like to correct. Everything seems to work fine, but the album art is not saved to my server. What can I do to fix this?

  • The WMP version of the plugin gets its artwork from Amazon. Its never stored on your server.

  • For your records, Now Playing/WMP for Windows does not work with PHP 4.4.2. I’ve tried it on two different computers. It works with 4.4.1 and 5, just not 4.4.2

  • The plugin just publishes XML. What you do with that is up to you.

  • My mistake, I meant to say that the code you have provided to parse the XML file does not work with PHP 4.4.2

  • Where’s the error? What line gives the problem? What is the problem?

  • The error is with the PHP interpreter on the server machine. In the browser, the page doesnt load past Now Playing.

  • That isn’t an issue with the scripts. Its an issue with PHP. I googled a few things and there seem to be lots crashes in that module around that version. In particular, this one looked interesting:

    I suggest you upgrade your version of PHP.

  • Andy

    Nice plugin :). Just bought reg key :), just wondering why though.. sometimes when i open a song through explorer when a song is already playing it doesn’t report it to the xml file.. is this just for me? or is it happening to anyone else?



  • Nick

    Great plugin, but just wondering if there’s anyway to render a JPEG file from a template image and have that upload via FTP.

    This would be ideal for signatures on a forum, that kind of thing. I’ve had a look around by there doesn’t appear to be much info on rendering XML into a JPEG image.

  • Andy

    you could set the forum avatar or sig to a php or perl app which renders the image on the fly using some cgi graphics library. would require some knowledge of some cgi language though, but wouldn’t be too complicated. i might try this myself actually =]

  • Rob

    Brandon, thanks for the great plugin. I’ve been using the WMP plugin for awhile now, and I’m really happy with what I can do now on my website.

    I installed WMP11 on XP recently and that works fine.

    But today I decided to move my music listening over to Vista Beta 2, which also has the WMP11 beta. When I tried to install Now Playing, the installer throws an error that Windows Media Player isn’t installed on this machine.

    Are you expecting to find a particular folder that maybe doesn’t exist in Vista?

  • Yes, I look in the registry under:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe

    I take the location of WM from there and do some checks to be sure wmplayer.exe exists then install in that directory. They must have changed something in Vista. Contact me via email if you want to work with me on getting it going. I can’t install Vista myself.

  • Rob

    Well, the registry key still exists, and it points to a valid folder.

    Is there something else that your’e doing?

    By the way, I was able to install the WMP plugin.

  • Sajid Khan

    Hi Brandon,

    Love the plugin. Just wondered whether you are intending to update the app, such that users can be selective about what sort of meta data to update – i.e not to publish video date etc.

    I have used Tweek’s amended PHP parse code but this does not work 🙁


  • I am not going to update to be selective about video. Some people want it shown, some don’t. So the best thing to do is to fix up your PHP code to show it or not show it based on your preferences I think.

  • Hi, I’ve bought both the itunes and the WMP versions of this handy plugin. Nice job!

    I parse the XML and load the last 25 songs into a webpage on my site.

    I’ve spotted a bug in the XML tho. The Amazon link is only accurate for the first track.

    All other tracks are given this same link, whilst retaining all other unique details.

    To see what I mean, try

  • Okay, I fixed the bug and it was my code, not your XML. The Amazon URL’s ended with the same text hence the confusion :p

    If it helps, I’ve posted the ASP code I use to parse your XML output on my site here:

  • Bill

    Great plugin for WMP. After installing it and running WMP the first time I got the setting dialog that aloud me to set all the options as listed on your site. Now, when I go back into the Plugin options window in WMP (by the way I’m using WMP 11) and select the Now Playing plugin…no options are displayed in the window to make changes to the setting? Any ideas how to correct this. I need to make a change to the FTP server information but can’t get to the settings window.


  • You need to include the PHP I provide by using the <script> tag as I show in the example. Looks like you might have just done a PHP include or something.

  • you asshole your program works like a charm its just im such a broke mofo i cant afford to purchase this peice of work… thanks for nothing man

  • Ryan Rose

    Currently I use WMP to update my Twitter Status.

    I have a suggestion:

    Can I have 2 separate message fields, one for audio formats, the other for video formats.

    That way my:

    Audio Status can read…

    is listening: –


    Video Status can read…

    is watching: –


    Ryan A Rose

  • Aaron

    Hey Brandon,

    I downloaded the plug-in for the purpose of posting my “now playing” song on Twitter. I think I did everything correctly. I’m playing a song on Windows Media Player, but I don’t see where it’s published on Twitter. What am I missing?


  • johan svensson


  • Vincent


    Great plugin! Excellent job done!

    One question though before I buy it. Is it possible to add the amazon affiliate link to my tweets? With the first couple of songs it didn’t work.

    I hope to hear from you.


  • No Amazon links in tweets. The Amazon link itself would probably eat up a lot of the 140 character tweet limit. I guess the next option would be to send the URL to a service like or or something.

  • Yes I understand, makes sense.

    I’ll check back in a while if there are any changes made (perhaps the tinyurl option).


  • Phillipa

    I want to change the setup of what it diplays on twitter title artist etc.. the message part but i cannot work out how to get the now playing configuration screen back up again? how do you do this? Thankyou

  • Hi!

    “Now Playing: A Windows Media Player Plugin” is cool application.

    Why don’t I include Japanese and other language to message?

    Thank you.

  • Danial

    Too bad its not mirc compatible

  • Mark

    You can easily script something to read the xml (there’s dll’s for mirc also).

    Script I used:

    /np {

    %i = 1

    while ($read(FOLDERS/now_playing.xml,%i)) {

    var %line = $ifmatch

    if ( isin %line) { %title = $gettok($gettok($v2,2,62),1,60) }

    if ( isin %line) { %artist = $gettok($gettok(%line,2,62),1,60) }

    if ( isin %line) { %album = $gettok($gettok(%line,2,62),1,60) }

    if ( isin %line) { %playCount = $gettok($gettok(%line,2,62),1,60) }

    inc %i


    me is now listening to $+(07,%title,) by $+(12,%artist,) $iif(%album,from the album $+(14,%album,)) $iif(%playCount,$chr(40) $+ played $+(07,%playCount,x,$chr(41)))


    Not too advanced, but it gets the title, artist, album and playcount. (Note you should set it to only output ONE song, or it will keep returning the last in the list as it finds a new one, and overwrites the var).

    I like the plugin, but am afraid I can’t spend that money on it now.

  • debanjana

    Is it possible to specify the duration (secs) that a track should be played and then automatically switching to the next track.

  • DLed the new update. On the Twitter tab when you click the Authorize button nothing happens. Is there a way get a PIN number

  • Be sure you have version Prior versions had issues with the Authorize button for some people. If you have that and still have problems, send me a debug log via email. Instructions in the FAQ.

  • dj1derful

    That did the trick. Thanks!

  • charliezingerline

    Brandon, I love now_playing. It does what I wanted, so I sent you $15. But I’ve run into a problem.

    In WMP 9 and 11, if I check (turn it on) now_playing plugin, it runs fine. If I stop the WMP, and restart it, now_playing is now unchecked and not running. In my particular use, now_playing has to be on every time WMP starts up. Is there something in WMP or now_playing that I missed, to have the plugin ALWAYS running?

    Thanks for your help.

  • I haven’t seen that. There is nothing in the plugin that enables or disables itself. I have heard rumors of WMP disabling plugins that crash. Are you seeing crashes?

  • charliezingerline

    This action of an inactive now_playing plugin seems irregular. This morning, now_playing came up fine. Even when it failed yesterday to be running on WMP start-up, there were no error messages.

    The only thing different was a power failure: a tree nearby dropped a branch on the main power lines and set itself on fire. The ‘production’ machine just died because the UPS ran out of power before I got to it. So that computer came up from a cold start. Perhaps that made the difference, but I don’t see how or why.

    Incidentally, I am now running WMP v 11 only, on both my computers: the development one and the one that will be the ‘production’ machine once I finish my project. So any future comments will be related to version 11 alone.

  • Question about the new version and facebook.

    I still have version and I like that it only posts to the nowplaying app that I have on my wall, and only updates that app. With the new version is this still possible?

  • No. 3.8 posts to your status or your news feed.

  • Please supprt international chacters. On my environment(WMP12+Twitter), Message included Japanese is cut less 140 chacters.

  • Not that familiar with what Twitter does with Unicode limits but probably 140 chars. If you can send me a debug log via email along with a description of what it should have done as well as the tweet URL, I can fix it. Otherwise, I will try to make up a similar test.

  • acousticism

    How can the XML playlist count be set to infinite?

  • No.

  • cmurdock

    Is there a way to get the plugin to not clear the XML outpu file everytime WMP closes?

  • Sounds like you have “clear playlist” checked on the Option tabs. Uncheck that.

  • Have you compile this plug-in for 64-bits windows media player?

  • No. I just distribute 32 bit for now.

  • Svensk Pirat Radio

    This plugin is great, but if there is a timeout or it cant connect with or and it forces WinAmp to allocate memory that it is not using and this is never released. Perphaps a



    // Code to Connect to the internet service here!


    catch (InvalidCastException e)


    throw (e); // Rethrowing exception e


    Procedure would fix this, if you implement it at all levels of connections to the internet.

  • Sri

    Can I get the xml schema.

  • Chaithukvk

    I just downloaded the plug-in and also purchased the license key for WMP . But when I go to Tools > Plig-in > and select ‘Now playing’ the Properties button is disabled. How can I change my settings on Now Playing Plug-in.

  • Be sure you are selecting the plugin under the Background category and not the Now Playing category.

  • rusonjitsu

    I’ll definately purchase this if youre able to implement a manual post to facebook and/or twitter button/right click menu/shortcut or something! 😉 Otherwise I’m loving it! ;oD

    Keep up the good work!

  • Mike

    I would really like to buy this since I used the trial version for Winamp a while back but use WMP12 more often and don’t use PayPal since they royally screw me over a year or two back although I forget now what reason. Is there any other way I could buy this plugin or have you considered another method? =(

  • Sometimes I take Amazon or iTunes gift certificates too.

  • G Galli

    Hallo Brandon I installed (also bought) the Now playing plug in for WMP. Now comes always the notice: Trial version, but I have a serial nr, but I cant it put it in the program. What may I do? Please help me asap. Thanks very much


  • On your license email, it says what media player the key is for. You are probably trying it with the wrong one. Maybe you purchased for a different media player?

  • Aw man…any chance you could just slide me a key to unlock and use this for ya? Or maybe just un-cripple the trial version or something because 5 mentions a session makes this completely useless for people that have absolutely no money to spend on sleek, suave, luxuries like this! Not to mention if I was balling out of control and could afford this I would still be taking a lot of risk with my money having invested in the product without having experienced it in the field and properly evaluate its assimilation to the workflow of my daily routine! No idea how it operates during any length of time either. And now I’m suspicious of possible flaws existing that may only become apparent during longer sustained use; which would explain the trial limit used…I could see the necessity for a nice plugin like this, whose content is sent on to a slew of destinations (some of which go live online), needing to connect to various destinations through more interfaces and authentication procedures than a player’s typical plugin would – and somehow during it’s development a crucial resource leak was discovered but could not be tracked down and debugged after trying for what seemed like days at a time; finally ‘solved’ by just imposing the crazy small limit during trial! Is that what’s going on here? That would be crazy if it was lol!

    In all seriousness though – You don’t have too but….Could you give me a key just so I can use your product to it’s fullest extent! [In advance I…] Thank You! And the of course proceed to tell everybody I know how cool it is, how it’s affect on standard WMP usage is surprisingly lightweight/unnoticable, and how they need to come here to and purchase a key from you immediately! And maybe there’s something else I could do in exchange? Of course I’m willing to compensate for the c0d3 in this device written during personal time (assuming that’s the case)…just not with $$$ because I would like to continue regularly eating food and living inside lol! Anyways, just let me know!

  • Seiyas

    When used in a Japanese environment, because the character is garbled, can not use this plug-in.

    Japanese also can be used in for this plug-in, so I want to work.

  • mzzl

    I’m using Media Player and this plugin is exactly was I was looking for for a long time! It’s working great!

    Only thing is that I want to keep track of what I’m viewing in Media Center, I thought Media Center was using Media Player to process al media, but apparently it’s using it just for playing audio.

    Is there a way to track what video is being played in Media Center?

  • Amazing! Thank You, man.

  • Brandon, Still no update on my twitter even with new version… Can ya help ? I’m using the version for Windows Media Player .

  • thanks ! it’s working again ! with the

  • Thanks for fixing twitter (again).

  • I bought a license last night, however none of my music is posting to facebook. I have authorized and validated it. I use WMP and your latest plugin version. Any ideas?

  • Make sure you are getting an Amazon match for the art. It will only post when you do. Otherwise, see the FAQ for sending me a log and I can tell you why.

  • I cannot purchase your app via Paypal. Are there any alternate means of payment?

  • Send me an gift cert? Or iTunes?

  • Bob

    I’ve got a “Couldn’t connect to MySQL”…? for Authorizing facebook

    my UPLOAD tab is set up either on: Hostname:, Filename: I kept your example, well this is correct?

  • Fixed. Just try again. I had changed web hosts over the weekend and missed something.

  • Bob

    Great! thanks a lot, it works fine!

  • Darr247

    It would be nice if there was a [LT]filename[GT] tag since what [LT]file[GT] actually returns is [LT]UNCname+fullpath+filename[GT].

    (had to sub [LT] for to get the board to display what I actually typed.)


  • Darr247

    For my string to twitter I use

    WMP Play-To TX-NR807: <artist>\<album>\<title>.<kind>

    With the backslashes replicating the directory structure of the songs stored on my media server (as viewed from windows, anyway).

    So what *should* display is something like

    WMP Play-To TX-NR807: Rolling Stones\Their Satanic Majesties Request (SHM-CD)\06 – She’s A Rainbow.flac

    Which is what… 102 characters?

    But instead, all that comes through is

    WMP Play-To TX-NR807: \\06 – She’s A Rainbow.flac

    If I use

    WMP Play-To TX-NR807: <artist> <album> <title>.<kind>

    then playing the same song what’s sent looks like

    WMP Play-To TX-NR807: Rolling Stones Their Satanic Majesties Request (SHM-CD) 06 – She’s A Rainbow.flac

    So it would appear to be peculiar to the back slashes… what am I missing?

    Changing \ to %5C in the string doesn’t help, by the way.

    Oh – and the “Skip Shorter Than” option seems to be broken for twitter (the ‘About’ tab says… with that set to 15 seconds, it still posts all sound files opened in WMP, even if they’re only a few seconds long, or if WMP is stopped and closed within a few seconds of beginning to play the sound file.

  • Colby Richmond

    Please check your email, Email sent from

  • Stathi

    Where is the manual that goes into detail about each setting?

  • Stathi

    Question, is this plugin only suppose to post the First song you play after installing the plugin and then stop working after that? Is that what the “free” version does? I was thinking if you were playing a playlist, it would automatically post what is “now playing” as WMP goes thru the playist, assuming the song is played long enough to meet the minimum one my set in the settings. I set it at 30 seconds.

  • ibiyemi ayodele

    brandon good job i made payment last week 27 of june for the now playing plugin and up till now i have not got the license i just sent you an email

  • I will resend but check your spam folder. Its in there.

  • ibiyemi ayodele

    thanks got it

  • ibiyemi ayodele

    hello Brandon my wmp refuse to post to facebook eventhough is connected and its license, it was posting on facebook two days ago and i tried same songs but still not posting on facebook but i can post on twitter pls help

  • Stathi

    What is minimum time between posts (“Rate Limit”) set to? Mine was set to 360. Try setting it to 1. I figured this out by accident thinking it was a much more complex issue. I ended up enabling debug logging and noticed the last entry said it was skipping facebook which pointed me to configuration issue. I am testing it now to find out if that is what it was. One thing I am not clear on is if when an option change is made, its dynamic without any disable/enable, restarting WMP, etc… required.

  • Stathi

    Bought a license recently. One suggestion, if there is a way you can make the purpose of “Rate Limit” option a little more descriptive within the UI itself, it might eliminate some confusion.

  • Isaac


  • It was never free.

  • Isaac

    Please make it free!!!

  • andromeda_girl

    just got the latest version and set it up for FB but nothing happens, actually. (yes it is turned on in the options for FB) validated fine, confirmed validation fine. odd thing is, when i did the validation step and it got me to my FB page, it clearly stated that the app only wants my public profile and friends list and has no ability to post anything to my page. kind of not what it’s supposed to be, isn’t it? is it not supposed to post the album i am listening to, etc. ? it definitely isn’t posting anything.

  • Vyerachka

    Yes, I’m having this issue as well.

  • Vyerachka

    I’d be happy to pay for it, but only if it’s going to work.