Now Playing: An iTunes for Windows Plugin

Hacks, Now Playing446 Comments

I gave up. Moved to open source on GitHub.

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



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!

iTunes 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 iTunes Plug-ins 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 iTunes.
  3. The first time you start iTunes with the plugin installed, the configuration screen will come up. If you don’t see it or you miss it, you can reopen the configuration screen at any time by selecting Now Playing as the Visualizer. In the latest version of iTunes, you can do this on the View, then Visualizer menu. Then return to that menu and choose the Options item.


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 iTunes.
  • 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 iTunes\Plug-ins 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.
  • Artwork: The plugin will export the album artwork for the current track and upload it along with the XML if checked. The image will be resized to be a maximum width of that specified. Setting the value to 0 will cause no resizing to occur. The height is calculated based on the width-height ratio of the original image.
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: Check this box if you want the plug-in to assume the value of the track’s grouping field is an Amazon ASIN. Since Amazon’s search is quirky for some albums, you can use this feature to specify the exact album you want to match.
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 iTunes\Plug-ins\Now Playing directory.
  • Q: How can I get back to the configuration screen?
    A: To configure any plugin, you must select it as the Visualizer. In the latest version of iTunes, you can do this on the View, then Visualizer menu. Then return to that menu and choose the Options item.
  • Q: If I turn the visualizer off, will the plugin still run?
    A: Yes.
  • Q: Why does part of my album cover get cut off in the Visualizer?
    A: This happens because you have “Small” mode selected. Change to “Large” on the Visualizer menu.
  • 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: How can I parse these ISO-8601 dates used in the XML?
    A: There are a handful of sites with functions to do this.
  • 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"];
    $numtracks = $vals[ $index["NUMTRACKS"][$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"];
    $disc = $vals[ $index["DISC"][$i] ]["value"];
    $numdiscs = $vals[ $index["NUMDISCS"][$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"];
    $filename = $vals[ $index["FILE"][$i] ]["value"];
    $artworkID = $vals[ $index["ARTWORKID"][$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 iTunes Installer (2.16 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.

Version History

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.
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-21
  • Changed permission checks for temp directory.
  • Added error message for log if artwork export write on local machine fails.
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.1 — 2006-07-10
  • Fixed issue where artwork was not being exported if no album name existed in ID3 tag.
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.
  • Improved image quality of exported artwork.
  • Fixed artwork defect where width was always 160 pixels.
v3.3.0.2 — 2005-07-29
  • Allow exported artwork to be saved locally if FTP/SFTP path is empty and upload artwork is on.
v3.3.0.1 — 2005-07-25
  • Fixed FTP defect introduced in
v3.3.0.0 — 2005-07-24
  • Removed podcasting feature.
  • Added new file element in XML.
  • Added artwork export and upload option.
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-26
  • Updated SFTP component to newer 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
  • Fixed defect where some users where getting duplicate podcast downloads.
  • 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 iTunes startup.
  • Added new MIME types: audio/mp3, audio/x-m4b
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 where iTunes would crash during certain cases of bad cover art from Amazon.
  • 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 defect where if the podcast download directory does not exist, the podcast history file could not be written creating repeat downloads of each podcast.
v3.2.2.0 — 2004-10-29
  • Changed user agent to be “NowPlaying” so we can track usage.
  • Added new logging functionality to aid in troubleshooting bad podcast feeds.
v3.2.1.1 — 2004-10-28
  • Fixed a memory leak caused by podcast downloads.
  • Fixed a problem were new podcasts were not added to playlists if any item in that playlist was not found on disk.
v3.2.1.0 — 2004-10-26
  • When purging files, plugin now deletes all empty parent directories of the deleted file.
  • Added a registry setting to control passive FTP.
  • Slowed visualizer redraw because iTunes 4.7 would lock up.
v3.2.0.2 — 2004-10-22
  • Removed the begin and end popup balloons for the podcast downloads.
  • Fixed issue where podcasts were not being deleted properly during purge.
  • After deleting a podcast file, it will attempt to delete the container directory if empty.
v3.2.0.1 — 2004-10-14
  • Added audio/x-mpeg-3 as a supported MIME type. Blogdigger uses this.
v3.2.0.0 — 2004-10-11
  • Changed default RSS interval to 6 hours.
  • Added full file management capabilities.
  • New download history management via XML.
  • Removed download files if iTunes is copying track when added.
  • 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
  • Update your iPod if connected after downloading new RSS enclosures.
  • 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-16
  • Added RSS media enclosure downloading, also known as iPodder technology.
v2.5.0.0 — 2004-09-14
  • Re-architected portions of plugin to create a version for Windows Media Player.
  • Changed the default of sending stop signal to false.
  • Only show trial message once per session.
v2.4.0.1 — 2004-09-07
  • Fixed links to Apple iTunes Music Store. Apple keeps changing the links so the plugin has to adapt.
v2.4.0.0 — 2004-08-22
  • Added support for locales Germany and Japan to the Amazon lookup.
  • Added XML encoding support for ISO-8859-1.
  • Reorganized options dialog.
v2.3.0.0 — 2004-08-12
  • Fixed link to Apple iTunes store. Apple recently changed their URL.
  • Added timestamp to each song tag in the XML.
  • Changed XML output encoding to UTF-8.
v2.2.1.0 — 2004-08-09
  • Improved timezone handling to better handle BST and others.
v2.2.0.0 — 2004-08-06
  • Changed the visualizer to show the album’s cover art from Amazon instead of the flashing patterns to avoid triggering epileptic seizures.
  • Fixed so duplicate playlist items are not shown when pausing and then unpausing songs.
v2.1.0.0 — 2004-07-27
  • Added ability to use track’s grouping field as an ASIN hint for Amazon lookups.
v2.0.4.0 — 2004-07-20
  • Improved Amazon search for soundtracks/compilations by removing artist from query when compilation is set to yes for the song.
v2.0.3.1 — 2004-06-25
  • Fixed issue where playlist load on startup didn’t begin at the right spot.
v2.0.3.0 — 2004-06-24
  • Fixed issue where song updates did not occur when tracks changed while playing music from a CD.
  • Updated installer to new look.
v2.0.2.0 — 2004-06-06
  • Added ability to specify the location of the XML file created.
v2.0.1.1 — 2004-06-02
  • Added CDATA encoding option for XML string fields.
  • Fixed printing of max size strings in comments field.
v2.0.0.8 — 2004-05-28
  • Fixed timestamp bug related to daylight savings time.
v2.0.0.7 — 2004-05-27
  • Changed XML node names for Amazon and Apple URLs to make simple XML parsing easier.
v2.0.0.6 — 2004-05-26
  • Fixed issue with combo boxes not dropping down on Windows 2000.
  • Fixed installer so it creates the plugin and MSSOAP directories if they do not exist.
  • Added composer field into the XML.
  • Fixed issue with self-registering msxml3r.dll and mssoap1.dll.
v2.0.0.5 — 2004-05-25
  • FTP now uses passive mode to ensure smooth firewall operation.
  • More data fields available in the XML: genre, kind, track, numtracks, year, comments, time, bitrate, rating, disc, numdiscs, playcount, and compilation.
  • SFTP is now native and does not require any 3rd party software.
  • Ability to utilize’s Web Services to retrieve URL for album and URL for album cover artwork. Works for US and UK stores.
  • Ability to generate a URL that takes you to the song in the iTunes music store.
  • Added a timestamp into the XML.
  • Improved file upload error messages.
v1.6.3.0 — 2004-05-19
  • Added a software update notification that checks for updates weekly.
v1.6.2.0 — 2004-05-13
  • Automatically show the options screen on startup of a new installation.
v1.6.1.0 — 2004-04-30
  • Fixed ping bug introduced in previous release.
  • Added version to About page.
  • Fixed shutdown bug.
  • Fixed URL encoding of pings.
v1.6.0.0 — 2004-04-29
  • Changed options dialog to a set of property pages.
  • Added new licensing mechanism.
v1.5.1.0 — 2004-04-28
  • Added ability to specify an optional XSL stylesheet for formatting.
  • Expose a configuration option for the playlist delay.
  • Restructured loading of configuration values.
v1.5.0.0 — 2004-04-27
  • Added encoding of special characters in song information to ensure proper XML.
  • Added a 15 second buffer to the playlist update. If you change songs within 15 seconds, the first item in the playlist will be overwritten without rotating a song off the playlist. The FTP and ping updates still occur when the track changes.
v1.4.0.0 — 2004-04-21
  • Improved performance by multi-threading requests.
v1.2.0.0 — 2004-04-12
  • Added ability to turn off the publishing of the stop signal.
  • Added variable playlist lengths.
v1.1.0.0 — 2004-03-30
  • Added ability to have the plugin do a TrackBack ping.
  • Changed so that it only publishes the stop signal when iTunes exits.
  • Added a playlist mode that publishes the last 10 songs played in the XML file.
v1.0.0.0 — 2004-02-07
  • 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.

  • Matt

    Thanks for making the changes to the script that I requested. I’m glad to see that somebody has finally made a plugin to work with iTunes for Windows.

    I purchased the licensed version and it was definately money well spent. It’s nice not having to click “OK” after each song and it includes a lot of nice features.

  • Any possibility to add a ssh/sftp option since I am security minded and don’t have FTP turned on my box?

  • SFTP support added. If you have SecureFX installed, the plug-in will now use it to perform the transfer. This was the quickest way to add this functionality. Thought about adding Putty support also but opted now to for now. Or else you could always use Stunnel to setup a secure FTP connection.

  • L.

    I don’t like the idea of the use of FTP or SFTP – any chance of getting the plugin to send (POST or GET) to a specific URL – much easier to deal with at the webserver end. You could either encode the data as parameters or do a file send.

    Or how about a web services interface?

  • You can use the TrackBack option. It allows you to put in a URL path of your choosing and then it appends the music’s info to the end of it.

  • kim

    ala L, what about an SCP option? my blog has issues with trackback pings. ftp is open on my site, so it’s not a problem. just a suggestion for someone in L’s situation.

  • Thanks for this excellent plugin 🙂 Has made me brush up my xsl too 😀

    OK – I am getting it printing the same song twice sometimes 🙁 Any ideas?

  • Please consider adding support for Internet radio stations and/or music downloaded from or other sources.

  • Tell Apple. They don’t expose information on the radio stations through their APIs. Music downloaded from iTunes music store works just fine.

  • radio station info depends on the radio station.

  • I made an ASP Album Cover displayer thing which is at.

    See it in action at

  • I just created a badge that you can use on your web site to show that you use Now Playing. Download it from the plug-in home page. I figure the more folks that learn about it and use it, the more new features that you will see.

  • Karl Bedingfield

    With reference to the above PHP parse code. Could someone tell me how to add a line to say that ‘user is probably offline’ if Itunes is switched off.

  • Back in March, Will Smith wrote “If your Now Playing app could send configurable trackback pings, I’d buy it in a heartbeat.”

    You replied “Added in version”

    I must be missing something because I can’t see a way to customize the ping that is submitted via Trackback. Any help would be appreciated. 😀

  • Have a look at the screen shots above on this page. You will see a Ping/TrackBack page. That is where you configure the ping.

  • All I see is the field where you enter in the URL to ping. What about being able to send Artist Name, Album Title, etc?

    Are you saying that I can use a ping like the following:




    If so, what syntax is supported?

    I’m sorry that I’m so dense, but I really need it spelled out for me. 😛

  • The song title, artist and album are all automatically appended onto the ping URL that you setup. They are formatted for your similar to the format you printed in the comment. I suggest you install the trial and give it a try.

  • Drew

    It’s not really working for me…After clicking the install button on the website, the “License Agreement” appears, and I clicked “I Agree”, I get the option to Cancel or Go Back. However, the option to install the program is not available…

  • Drew, there is something wrong with your iTunes installation then. The install button will become enabled once you select a directory with iTunes.exe inside of it. Usually this is auto-selected for you.

  • Re: Placing a thing up to say the user/iTunes is probably offline.

    This could be achieved if you used the “Last Played” item in conjunction with the system date. Basically, use time() (in PHP) to see how long ago the track at #1 on the Now Playing list was played. If it’s more than, say, an hour ago then either iTunes or the user isn’t there.

    I would put code in but I’ve been doing stupid web bits for hours now and the last thing I want to think about is PHP 🙂

    (NB. I haven’t actually got the latest Now Playing yet so I don’t know if the Last Played attribute is parsed out to the .xml or not)

  • Adam, you can use the timestamp that is printed inside of the now_playing XML tag. Compare that with the current time if you want to know how long its been since you played the tune. If you just want to stop displaying a song when iTunes is close, then just enable the publish stop message and use the PHP sample above that detects it.

  • Dear Brandon,

    I am trying to run this plugin on a laptop, which maps to a network drive on my home server and as such there is no ftp server. Is there any way to change the location where the now_playing.xml can be saved. I tried changing the filename, but this didn’t appear to change either the output file or location.

    Sorry if I’m being dense.

    Great Plugin though.

    Many thanks for your time


  • All you have to do is ask. New version posted with the ability to specify the output path on the Options tab. (I was surprised nobody else asked for this yet!)

  • Brandon; Great plug-in man. Just purchased a license a few days ago- totally worth it. Keep up the good work.

  • Matt

    I just wanted to suggest that you add an XML tag such as # so each song has a unique ID number. I would like to make a script where each song in my list would have a link to something like “songinfo.php?id=282901520”. The page would display more info on a particular song such as all the info.

    If you could add this feature I would be really appreciative!

  • Like a serial number for each song? There is no such ID available. You can create one yourself by concatenating some data together such as “artist_album_song” or something. Then you would get a unique song per string that you could create a page for.

  • hey Brandon,

    Great plugin; I’ve already bought a license. Just a small nit: song information still gets uploaded when I stop a song before the alotted delay time. This is not true when skipping to the next song, which is the expected behaviour.

  • Terrance, that is the way it is supposed to work. It will update the song as soon as you change the track but it won’t advance the playlist counter until the delay passes. This way you get the benefit of the buffer but also the instant song update.

  • Wow, just what I was looking for pretty much. This combined w/ wbloggar’s itunes plugin is nifty to have. I haven’t tried it yet, but is there any future possibility to publish the playlist? Like the last x songs played smartlists.

    I know there’s something out there for macs, but I don’t think I’ve seen anything for windows.

  • Yes, this plugin publishes your last X songs played.

  • Thanks for the quick bugfix!

  • javadevil

    Can’t get the Visualizer > Now Playing conrol panel to open so I can re-config the ftp settings. Tried reinstalling, but that didn’t bring the confing panel up again. Any suggestions?

  • Follow the steps in detailed in the installation instructions on this page.

  • JB

    Thanks for the great plugin! Just bought a license today. Very much worth the ten bucks 🙂

  • Shawn

    hey brandon, i’ve installed the trial and it’s working very well. you’ve done an amazing thing here, my friend! i’m fairly new to scripting and i’m wondering how customizable the php scripts are. can i change the font size, color, etc.? i did figure out how to make it so it is not centered, and i felt really proud of myself (please don’t laugh). also, before i pay to register, can you compile a list of all the benefits of registering? or point me to a page you’ve already made that kinda outlines this? many thanks!

  • Shawn

    and does the registration provide for a lifetime of free updates?

  • You can do whatever you want with the scripts. Throw them away and start from scratch if you want. If you register, the annoying trial messages go away. Plus, in the trial, it only uploads 5 songs and then stops. I am not promising a lifetime of free updates but that will probably be the case.

  • Shawn

    Brandon, I just paid for registration.. Thanks for such a great plugin!

  • andy

    Brandon, I just bought a reg key – great plugin! I’d like to request another feature. I display the last 6 played songs on my webpage which works great as long as I am not listening to an audio stream. Then it just displays the same stream name 6 times without any song information. Would it be possible to add an option that only refreshes the XML file once when an audio stream is detected leaving the last 5 played songs as is?

  • hey Brandon, is there any way to make the Artist link to the info page for that artist on rather than to Amazon/Barnes & Noble? i was thinking i’d like to give my visitors more of an informational link rather than one to purchase. this is a great plugin by the way, and i’m enjoying it very much. thanks!

  • You can generate whatever links you want by customizing the PHP code as you wish. The Amazon lookup is a bit more complicated so its done by the plugin for you but you don’t have to use the data it produces.

  • Great peace of software, well worth the 10 USD. I implemented it in minutes on my site ( , see the Now Playing box in the left column).

    I customized it with two icons for both the no-image disc and the off status. They are in an old vu-meter style and you can see them here:

    Just to share the wealth, Brandon: the labels are in italian, but if you appreciate the work and would like to add the images to the distribution, just tell. I’ll customize them in English.

    Gretings from Italy!

  • Thanks for the plugin – registered it today. Feature request though: to improve searching of tracks in soundtracks (compilations) can a bit be set to only query the album title for songs where compilation = true?

  • OK, so this is by far the best windows iTunes plug-in that I have found thus far. However, I have a couple of quirks.

    In order to have the picture display, both the Album and Artist have to be the Album and Artist. This causes a problem when I have a song such as a Soundtrack or Mixed compliation-type where the required artist is “Various”, however I have the real artist for the tag.

    Any solutions/work arounds??? I would even be willing to look up the names of the CD’s on amazon so they exactly match up…

  • This, straight from Amazon’s AWS site, may answer many people’s questions:

    Why does AWS sometimes return the wrong paths to product images?

  • To help address the issues with Amazon searches related to soundtracks, I just posted a new version that does a better job of dealing with compilations.

    Eventually, for those albums that just won’t match up, I want to give the option of specifying an ASIN somewhere in the song’s properties that I could just use to lookup the album. There isn’t a perfect sport for this. The choices are use the “Grouping” field. Grouping by ASIN isn’t too crazy. Or something in the comments field. Suggestions?

  • The new handling of soundtracks (compilations) is working much better, Thank You!

  • Here’s my two-cents: I think using the Grouping field for the ASIN is a perfect solution! I never use this field for anything, ever. Anything that would allow a “manual point” to a particular album, in the event that the automatic lookup fails, is a great idea.

  • I agree with Shawn, I have been looking through my files, and right now there is nothing in the grouping section. It would be great if the plugin could first check for the ASIN number in the grouping field, and if it couldn’t find text there, to go ahead with the secondary options…so in short, yes! (o:

  • And I, in turn, agree with Christopher. If something is in the Grouping field, it should act as an -override- to the automatic lookup.

  • I agree with Shawn and Chris, being able to set an ASIN in the grouping field would be excellent. It’d solve the problems I’ve been having with a number of my anime soundtracks still not being located properly on Amazon.

  • I forgot to say to Brandon..excellent job with the soundtracks, so far it is working flawlessly!

  • Why did my comments get deleted?? Are we not allowed to post comments unless we’ve paid for the plug-in?

    I’m still wondering how I can get the date and the time that the track was played, to list out in output. I tried using the timestamp but since the timestamp is only on the most recent song, that didn’t work.

    Any suggestions?

  • Hey Daisyhead, you should buy the plugin.. $10 isn’t much to pay and it’s totally worth it! I’m sorry, I can’t help with your question ’cause I simply don’t know how to do what you’re proposing. But yeah, buy the plugin, it’s great. Good luck! 🙂

  • Well, I would buy it right now but considering our financial situation I just can’t afford to. As soon as things settle down and we can afford it, I more than likely will.

    In the meantime, I’d still like some help with the product. I mean, if I’m not going to get support for it, then why pay for it? You know? That’s why it upset me when I saw my comments had been deleted. I’m still testing it out. If I like it, if it’s easily configurable, if I get support, then I have no problem paying the price.

  • Daisyhead, right now, the plug-in only provides a timestamp of when the file was uploaded. It doesn’t provide a timestamp of when each individual track was played. I never really saw a need for it but I will put it on the wishlist for a future release.

    In regards to your comments, I regularly go through and “prune” comments off this page. I usually remove ones exactly like yours where you post something like “I have a problem with XYZ” and in a later comment you post “Oh, I figured it out” and don’t provide any tips for somebody else who might have the same issue. It just doesn’t add any value to the digital conversation IMHO. I also delete comments where people ask for features that I later deliver. Since its now in the product, it doesn’t make sense to me to keep the comment it around. Its nothing sinister, just keeping things tidy and up to date.

  • All, I posted a new version that allows you to put the Amazon ASIN into the Grouping field for a track. If its there and you have this lookup feature turned on, it will use that for the Amazon lookup. There is a new option on the Amazon configuration tab to turn this on. Enjoy. BTW, its not working for UK yet. I have a query into Amazon on why not.

  • Hate to do this Brandon, but the ASIN update only seems to work if the “is part of a compilation” box is checked. Otherwise it ignores the ASIN completely. At least that has been my experience thus far…

  • My guess is that you probably didn’t turn the new feature on. Go to the Amazon tab and be sure to check the ASIN hint box.

  • The new lookup feature is working for the UK now. I didn’t realize that the ASIN for US are different than UK. That was my issue.

  • Great work with the ASIN hint, Brandon. My library output is now flawless!

  • Now Playing version is now available. Changes include: 1) Changed the visualizer to show the album’s cover art from Amazon instead of the flashing patterns to avoid triggering epileptic seizures. 2) Fixed so duplicate playlist items are not shown when pausing and then unpausing songs.

  • Chris Luebbe

    Daisyhead, I suppose you could take the now_playing timestamp for entry #1, subtract the time of entry #2 from that, subtract time of entry #3 from that, and so on. I haven’t tried it in code yet, but it sounds good on paper (or on screen).

  • Chris Luebbe

    I just realized that my suggestion will only work if you did not skip ahead or pause any tracks. Oh well, maybe release 🙂

  • Matt

    For some reason the playlist delay has stopped working. It’s worked fine for the past 3 months or so but now all the sudden it’s uploading songs the second they play instead of 30 seconds after the song starts. I’ve tried installing the latest version and reseting the Playlist Delay but it’s still instantly uploading the song.

    Is anybody else having this problem? Can you tell me how to fix it if it’s something I need to do on my end?

  • Matt, its working as designed. This plug-in always uploads the XML file with the new song as soon as you change tracks for maximum speedy results on your web site.

    What the playlist delay does is if you change tracks within X seconds of starting a new song, it will overwrite your previous playlist entry with the new one. So instead of advancing the oldest item off the list, it leaves the items in tact and just overwrites the first.

    This design allows the plug-in to have the fastest upload possible and the ability to skip songs from the playlist.

  • Matt

    I must be losing my mind because I could have sworn that mine always posted a song only if it played for 30 (the setting I entered) seconds or more. Is there anyway you could add this feature in a future version? If so, I would really appreciate it. Keep up the good work with the plug-in!

  • As I said, I considered everything people were wanting and came up with the design I described above. Its the best of both worlds.

  • It seems to be a great piece of software. Is there any chance it could query Thank you

  • I’m getting ready to purchase the software after having tried out the demo for a while now. I see that on the latest release Brandon, you’ve incorporated time stamps for each song played.

    Is there an easy way to add that info to the output so that it will list the day and/or time that the songs were played?

    Thanks for a great product!

  • You mean the .php code required to parse it out and print it. I don’t have it off hand. I am sure somebody has written it and will post it.

  • If anybody wants to design an icon for Now Playing, I would appreciate it. I need something to use for listings on some sites.

  • Dean Ashton

    I’ve run into a couple of problems with Now Playing.. one is kinda stopping me from evaluating it, the other is really just a visual issue. If you have any ideas as to how to fix them, then I’d really appreciate it.

    First, I’m unable to bring up the options for ‘Now Playing’. I know the installation instructions say that I should expect a colourful button of some kind, in the top right of the iTunes window (under the window control objects), but I’ve got nothing there. Nada. Zip. I’ve got ‘Now Playing’ selected under visualisation,, I’ve uninstalled/reinstalled a number of times, I’ve just downloaded but no dice. Any clues? The only time I’ve seen the options dialog is when I’ve done a fresh install.. 🙁

    Second, when ‘Now Playing’ is running (albeit with the options that I’m unable to change), if I turn on visualisation I get only a portion of the image available from Amazon. Specifically, the top left quarter of the image (like *exactly* a quarter. It appears in the right place, but in the spaces where the other quarters of the image should be, nothing but empty space. This happens regardless of the image size in options (which I set after uninstall/install), and regardless of which Amazon site I use (I’m in the UK).

    My iTunes version is, my OS is Windows XP Professional (running SP2) and 2GB RAM Video card is an ATi Radeon 9800 Pro with 128Mb RAM, running Catalyst drivers 4.4..

    Hope you can help,


  • Regarding the configuration, I just added a link to a screenshot under the FAQ section. You should be able to see what I am talking about there. If you don’t have it, maybe you have an old version of iTunes that doesn’t support this.

    Regarding the chopped visualization, I haven’t seen that. Send me a screen shot along with the ASIN of the Amazon item that its not working for. Is it the same for all albums?

  • Dean Ashton

    I’m away from my home PC for a few days, but the screenshot probably shows what my problem is. I’ve been running the visualisation in full screen mode. Doh! I’ll check it in not-full-screen-mode when I get a chance, and let you know how I get on.

    The chopped visualisation, btw, happens on all albums. Maybe the fact that I’m in full-screen visualisation mode is to blame here too?



  • It needs to be shared with all of you that for whatever reason you may want to do this, you can. The ASIN # that you enter into the grouping field of the track doesn’t necessarily have to be the ASIN of an album cover. You can use the ASIN for any item “for sale” on For example, the college radio station that I work at needed a picture, so I’m using the ASIN for the Barbie Happy Family Doctor doll in the Toys ‘n’ Games shop at Great joy! =)

  • MrBlank

    Now you can be an iTunes affiliate. Is there any plan to add to the plug-in to work with affiliate links, instead of linking to Amazon?

  • iTunes affiliate links would be awesome.

  • I signed up for the affilate program so I could figure it out but I am lost. I went through the Apple site, got my LinkShare account, but now what? How do they track which ones you sold? With Amazon, your associate ID is embedded in the link. With Apple, there is no such tag that I can find yet. So I guess I don’t understand how this is supposed to work. If you get it working, let me know and I will add it. The plugin already builds links to Apple’s music store. BTW, at 5% of 99 cents you have a long way to go before you get to buy that new car! 🙂

  • Hi Brandon, thanks for the great plugin. I had tried it out several months ago, but failed to get it working. Attempt number 2, and I am golden (I registered it). However, every now and then, my iTunes seems to be hanging on exit. I thought perhaps that it was my installation, so I reinstalled iTunes and PlayingNow. Unfortunately it still happens. Basically, if iTunes doesn’t start the next time, I typically have to go into the task manager and shut it down from a previous session.

    Has anyone else had any issues similar to this?

    Also, I feel silly for asking, but would it be too difficult to add an option to retry failed FTP uploads?

    Great piece of software, good on ya mate.

  • I am in the same boat with you Brandon. I registered (I think maybe) except it crapped out on its way to Linkshare. I think they just put this deal together last minute to minimize the Microsoft service noise.

  • The iTunes page on now says, “Individual Product Links COMING SOON…”. So one of these days we may learn the secret of how to link to songs.

  • Anyone else having problems with the iTunes link no longer working on version Perhaps something to do with the affiliate program?

  • Apple keeps changing the link maker. The support for this is really a hack because of the way Apple does this. I will try and keep it working as much as I can. I have just released a new version that gets it working again.

  • Brandon, I cant figure this out. What code do I insert into my template on my blog for this to work. That alert is really annyoing too, and I would donate to get rid of it, but I cant get this to work in my blog. Can anyone help me?

  • Use the sample in the last question of the FAQ.

  • Ryan

    Hey Brandon, I’m trying to figure out how to display the last x number of tracks played. I don’t know php and am experimenting with your sample. Could you possibly point me in the right direction?

  • Make sure the playlist length in the plugin configuration is set to the number you want it to be. Then just use the PHP sample in the FAQ that has the code on this web page. It loops through all the tracks. Cut and paste it. Works as is.

  • Im sorry I just cannot figure this out. I use for my blog. Is it even usable on there?

  • another thing is when I downloaded your example that you use, the zip contents didnt have any files, just images. about 6 gif images, one png, and one microsoft picture it doc.

  • If you download you should get a .PHP file when you unzip the file. This .PHP file is a crucial part of getting the Now Playing plugin to work. If you visit you can see an example I’ve made. It’s pretty basic JavaScript. Though I do not use, I would imagine it shouldn’t be too difficult to customize it and get it working.

    I hope I’ve helped you out somewhat. I registered my plugin with Brandon many months ago, and I can honestly tell you it’s well-worth the $10 I spent. : )

  • Baberim, The “Microsoft Picture It” doc you are refering to is a .php file. Picture It also registers the .php extension. Open the .php file in Notepad and you will notice it is PHP source code.

  • Hey all, I have been using Windows Media to listen to some streaming stuff that iTunes can’t handle so I spent some time and ported Now Playing to Windows Media Player. So if you use both players, you gotta get it!

  • Any suggestions on how to integrate the Now Playing plug-in with iTunes Affiliate program (, similar to the way it’s already integrated with Amazon Associates?

  • We have been talking about it here for a while. They finally put up the tool tool to generate links so we are getting closer. Now I am trying to reverse engineer the links so I can automate the URL creation. I need help though. Somebody else that has signed up need to go through and generate a URL for me to compare to mine. Use Song=Crackerman, Album=Core, Artist=Stone Temple Pilots. Create the URL and e-mail it to me. I will compare with mine and then publish a new version of the plugin that starts making you more money. Hey, that $10 pays for itself!

  • Just got approved today. Emailing you with the links now…

  • The ping that gets send has the {Album} – {Artist} as the BlogName. Is there any way to get just the {Artist}? Perhaps an option to map different (plugin) variables with different trackback variables? For example, allow a user to map {SongTitle} with the trackback Title, {Artist} with the Excerpt? I’m sure there are other variables that the plugin can send (and a limited number of available trackback variables to use) but if the user could map that themselves, that’d be great.

    Other than that, great plugin. Gonna buy it.

  • Another request: there’s an option to delay posting the xml file, however there’s no option to delay the ping being sent. That’s being done as soon as the song starts, and sometimes I will skip a song (or two, or more in a row) and I wouldn’t want those being send.

  • There isn’t any customization you can do with the ping format at this time. I added that early on but never really was a fan of the ping vs. FTP the XML. Not too many people are using the ping that I know of. There is just too much information now in the XML — too much to ping. Most have moved to the FTP method. So I could enhance it but since not many are using it, I have spent time on other features.

  • Fair enough Brandon. The XML file does contain a whole lot more than I really need, but I can certainly convert (which would also prevent me from receiving a million track back ping e-mails throughout the day, I’m sure.)

    Thanks for a great plugin.

  • Apple just released iTunes 4.7 and they slightly tweaked the APIs in a way that causes all visualizer plug-ins to freak out when the visualizer is on (meaning you are seeing cover art on screen). Just posted an update that corrects it. Thanks.

  • Hi! Brandon!nice 2 meet you!!

    I using your making plugin”now playing”now.

    I’m japanese! My webserver in japan.

    But The accident has happened on my homepage.

    I think ..accident is encoding

    my homepage made UTF-8.but output is ISO-8859-1.. ┐(´∀`)┌

    please advice to me!! It will donate, if an accident is solved. I believe you!!

  • There is a configuration setting on the XML tab to configure the encoding. Set it to UTF-8.

  • Thanks! Brandon!

    but setting is UTF-8!OUTput files is UTF-8.


    I think PHP files accident..

  • Hey Brandon,, The PHP file in your ZIP “NowPlayingSample” looks like it might be erroneous. When opened in Notepad, the first line begins like this: <?php

    error_reporting(E_ALL ^ E_NOTICE);

    $file = “now_playing.xml”;

    I could be wrong, but see, I was having trouble (and still am) getting the javascript to work correctly. All of a sudden it just stopped working on my website. So I thought it would be best to re-download your ZIP sample and start from scratch. This new PHP file looks very very different from the PHP file that I downloaded from your site 1 year ago when I first started using your plugin.

  • I haven’t had any problems with Brandon’s most recent PHP, Shawn. If you want to see the script I’m running on my site, its at

  • If anyone could help me out with this, I’d certainly appreciate it a whole lot. I’ve been staring at it for too long, I think, and I’m just not getting anywhere. These links will help. They are to (1) a sample page from my website that USED TO display the album cover, artist and song title perfectly; (2) my php; and (3) my xml. Thanks again.




  • Shawn, I have posted a fixed copy of your now_playing.php file to:

    You were trying to put the counter javascript inside of javascript code, which isn’t valid, and was breaking the script.

    Hope this helps.

  • Thanks Evan. Your PHP doesn’t referrence my XML file, however, and the Artist & Title just remain static. As for the counter script, I wish I knew how that infiltrated my code, because I certainly didn’t put it there. : /

  • Shawn, I used the script you linked to. YOu need to change the .PHP file to a .TXT file so I can look at the code. What I worked with was the output from the script.

  • Shawn Christy

    Hey, just a quick update. I’ve solved all of the problems I was having. The trouble was with the server I was storing everything on. For some reason, it’s become buggy, with some sort of script running automatically on every page /or/ file saved on it. I’ve moved to a different server, so let’s hope this doesn’t happen again. Recap: No problems with the plugin or with Brandon’s ZIP file, it works exquisitely as per ususal.. =D

  • Sean

    How about a version for winamp?

    All the other winamp now playing deals are weak with oldschool results.This looks much better!

  • It would be much better but I haven’t spent the time to do it. People register the iTunes version 20 times for every WMP registration. I think Winamp wouldn’t be much better.

  • Sean

    iTunes is very popular no doubt.But think of the masses that use winamp.Not just that,but for me,iTunes isnt to great on windows just yet.I use it here and there,but I soon stop it after it starts glitching and sucking up resources.

    I wish I knew how to code otherwise I would give a try.

    Dont get me wrong though,you did a great job on this as I can see here.For some reason I couldnt get it to though.After seeing what can be done,if I was an iTunes user primarely and could get it to work ( I may have just forgot someting ) I would definitly fork over the $$$ for it.

    Im just a winamp user I guess.Even though they are AOL now which sucks,I cant seem to use any other player.

    I applaud your work though.I only wish I had the know how.

  • Great plugin, I’ve built my blog around this plug-in. I’m not sure if it is possible, as I’m not that knowledgeable with PHP, but can you display the album name too?

  • Sure. You can display any of the items that appear in the XML. Just change the script to output it the way you wish. Good luck.

  • Brad

    Great plugin, I love it, I have my current song displayed in my AIM Buddy Profile.

    Not sure if this really fits with this particular plug-in, but maybe a seperate one, a feature that I’ve really been looking for in iTunes for windows is a sleep timer. (Google found that on Mac you can write a simple 4 line appleScript, but no such luck yet on windows)

    //Couldn’t figure out how to get linebreaks to work in this.

  • Brad

    Scratch that linebreak remark, apparently they just don’t show up when you preview your post 😛

  • Wow. I’d love to know how you got the current song to show up in your AIM profile.

  • Brad

    It’s called a subprofile. There are many sites that offer ad driven subprofiles, but you can also make your own. All you need to do is make a php page on your web server and add the content that you want (which can include this Now Playing script) and then put a link into your profile that has a target of _self and it will appear in the profile window.

    You can’t show images though, so it will be limited to text.

  • paradisecowgirl

    Great program! Bought it earlier this month and couldn’t be happier until.. (you knew this was coming right?) my hosting site crashed and had to be rebuilt.

    In the process, all my ssh/sftp hostid keys became invalidated. I’ve been able to get various other software pacakges/scripts to reset/accept the new hostid key except for yours. I’ve tried uninstalling it and re-installing it hoping that would do the trick but no such luck.

    Do you know how I can remove the old s/key / hostid key from your program so that the next time it connects to my hosting site, it acts like it’s the first time and automatically accepts the new s/key / hostid? Thanks much!!

    PS I can only connect to my hosting site via ssh/sftp protocols so I can’t even get around this by switching to plain ftp).

  • Great plugin! I purchased a key yesterday and am using it on my site with the Flash front-end.

  • hey, if anyone can help me, i’d really appreciate it. i’m having trouble again, and this time it would appear to be a result of my coding, rather that shabby server issues.

    here’s some referrence points:

    [my html file to display the info to my guests]

    [my PHP file]

    [my XML file]


    The XML looks to be updating properly, so the error must lie with my PHP or HTML coding.

    Eternally greatful!


  • I am going to start charging for this! 🙂

    Your .php file is not being processed as PHP by your web server. If you do a view source on that page, it just shows all the PHP code. You should not see PHP code on the client. That means your web server is just returning the PHP as text. Check your web server configuration.

  • Hey, this post is directed to Brad, I hope you’re out there somewhere.

    Brad, can you IM me on AIM screenname “forkateiwait”

    I wanted to talk to you about subprofiling, because AIM isn’t allowing me to include quotation marks in the hyperlink I’m creating. I don’t know any other way to do it without using http://link-goes-here.html“target=”_self



  • Brad

    You have to write it in another window and copy/paste the link into the area where you edit your profile, AIM is just weird like that.

  • Hi Brandon, I purchased a key for your plugin way back… and I have to say I have been very happy with it. Unfortunately, my PC has died and I will be using my wife’s Mac for awhile.

    Are there any plans to make a plugin version that works with iTunes for OS X?

  • hey brandon, any idea why i get three copies of the [notifier] emails when someone adds a comment to your site? just checking. i’m grateful to be kept current, but the extra two are unneeded and baffling. =] -shawn

  • On and off plans for OS X version. Just don’t have the time.

    Probably a bug in the notifier. Just unsubscribe with the link in the message.

  • Andy

    Great plugin well worth the cash 🙂

    There is something i would like though. It would cool if the uploaded XML document could contain the amazon urls for the album images of all sizes. So then i could have a small album image at the side of my blog,then when clicked it takes you to a different page with a larger image and all the information about the album.

    Cheers Andy.

  • Don

    I’m sure you get 1000 feature requests each day. So, what’s one more?

    I’d love to get the WinAmp Announcer plug-in functionality for iTunes. It doesn’t take much of a stretch to see that your great plugin could extend to do likewise. What do you thik?

    WinAmp Announcer



  • Nick

    Just bought the plugin and implemented it on my site http://53× – however, I have one question. Has anyone else had issues with the iTunes links that it serves? Every iTunes link the plugin generates recieves an error in iTunes:

    Your request could not be completed –

    The item you’ve requested is not currently available in the U.S. store.

  • Apple’s link generator isn’t the best. I have said that before. There isn’t much I can do about it until Steve Jobs returns my call. I did just test a few songs on my own web site and they worked fine and opened right up in iTunes.

  • Robert

    hey, i think this is what i am looking for, but i am trying to put an active list of whats playing in Itunes in my AIM profile…could you help?

  • AmberDragon

    Are you sure there’s no way to add internet radio functionality? Earlier in this thread you wrote “Tell Apple. They don’t expose information on the radio stations through their APIs.” I have no idea what APIs are, but iTunes must pass track info from the radio stations somehow, since it shows up in the systray tooltip.

  • I’m still learning how to get this data formatted in a cool format on my site but I have noticed that recently I’ve noticed a small DOS box pop up when the script runs to upload the xml file to my server. Did something recenly change to be able to see this flash by. Did it used to run as a service or something. Just seemed odd that I now get little flashes saying a script of sometype running.

  • Karl Bedingfield

    Hi there,

    Is there anyway to get the ampersands encoded that are generated though amazon?


  • Karl Bedingfield

    Is there an easy way to validate amazon links for XHTML? Sofar I have been unable to encode uncoded ampersands.

    Any idea?


  • Does this plugin work alongside the iScrobbler (audioscrobbler plugin for iTunes)?

  • dtr

    Thanks Brandon for the great plug-in – I registered this week.

    I also get the “not available in the US store” on every iTunes link. The songs are available in the US store in every instance. Just one of those quirks I guess…

  • Karl – do a simple str_replace in PHP with the link string, like this:

    $link = str_replace(‘&’, “&amp;”, $link);

  • Karl Bedingfield

    Hi Brandon,

    Thanks for the reply and solution but I am not 100% sure where to put this in my code:

    Can you advise please?

    Many thanks


  • I don’t know why… but it won’t let me post.. let me try rephrasing maybe…

    Look at line 106 of

    http:// yeldarb . servehttp . com / misc / itunesREVISED.txt

    Replace the spaces so that it makes a URL.

    I edited your file; hopefully this will work out for you.

  • Karl Bedingfield

    Brad thats very kind of you. Works a treat 🙂

    I am still getting validation errors but I think thats because each li & ul tag is all in one line and not broken in the correct format.

    Is there a way to breal the lines?

    Again thanks for the help with the ampersands 🙂


  • Talk to me on AIM; Yeldarb2k3 is my screen name.

  • If you are wondering why the TWIT podcast isn’t downloading, I figured it out but I can’t fix it.

    The reason is that that link isn’t valid XML according to the MS XML parser (which tends to be pretty good at this).

    The DOCTYPE line in the TWIT XML feed is wrong. If you remove this, it works. With this in there, its screws up the XML parser.

    I mailed Leo Laport to tell him. I suggest you do the same.

  • I keep getting the following:


    FTP File Upload Failed error; code: 12031 Description: The connection with the server was reset Failure: Could not assemble final message.

    Are you offline? [Yes] [No]


    Although I’ve received this error message in the past, it used to be just enough to click [Yes] and the XML on my webserver would update just fine. But lately, clicking [Yes] or [No] results in a failed update to the XML.

    Any ideas??

  • Please disregard the last comment and fogive me.

    I set preferences to SFTP instead of FTP and the problem is solved.

    Thanks all. =]

  • I know Brandon (as well as many of you reading this) are busy people, so if you can’t help, I understand.

    What I want to be able to do is to display my currently playing song on every page of my website (which I’ve done successfully), but I would also like one page of my site devoted to a list of the last X songs I’ve listened to. Is this possible to do with one .XML file? If so, I could use some coaching. I’m open to barter. =]

  • You can do that pretty easily. The XML file will always have the last X songs in it. Then use 2 .php files. (You can use a single one if you know a bit more.) One would be the X songs one which is the same as the one in the sample above — it has a foreach loop to print all the songs. In the other one, just print a single song by killing off the foreach loop after a single pass.

  • Matt


    had this plugin now for sometime and use the sftp to upload the xml to my site.

    however just upgraded the plugin this morning and suddenly I’m getting a popup saying i need to now purchase an additional sftp piece of software.

    when i hit exit on the that pop-up itunes crashes.

    the pop-up is from weonlydo, apparently i need a key to work in the design environment?????

    any idea’s


  • Fixed back in v3.2.7.1 — 2005-01-26. Update.

  • Karl Bedingfield

    Hi all,

    I am in need of some assistance.

    I have working code but I need a slight ammendement and wondered if any PHP bods could help.

    At present the current track is shown on my website with album image and links to amazon.

    Now is there a way where I can still retain that but also list the last 5 ‘artists’ I have listened too also?

    Like this:

    My current track and image and then below that a text list of the last 5 bands.

    a band 1

    a band 2

    a band 3

    a band 4

    a band 5

    Here is my complete source: <- this works as displayed here in the sidebar:

    You are welcome to use my current source if you wish. It was based on Brandons original.

    Can anyone help?



  • ej

    I’ve been using your code for quite a while and had written some PHP code which determined, and linked, to Amazon and to iTunes, if the song was available on either or both. iTunes stopped working for a bit, but I paid it no mind, until I delved a little bit into the XML. For the tag, I don’t get links that start with “”…they now start with “”, and further on have a URL to iTunes. When clicking on the link I get “Error : -Invalid Link,Please contact site owner about this!”

    Have you seen this happen before?

  • Squiggle

    Karl, the number of songs displayed is set in the plug-in’s configuration menu. It appears you have it set to only display 1 song at a time. If you change it to five, it will display the last five you’ve played.

  • Karl Bedingfield

    yes I was aware of that Squiggle but I wanted the first song showing all information then the other 4 songs just showing the artists I listend to.

    I wasn’t sure how to do that with PHP.

    Thanks a lot

  • Squiggle

    THat’s fairly easy to do. Since it loops through the script to create the information, you can add a counter to it and display information based on the counter.

    Line 26: $counter = 1;

    Line 107: if ($counter == 1) {

    // display full track information

    // basically lines 108 through 123

    } else {

    // display just the artist names

    // so just line 115 gets copied in here



    That ought to give you some idea of how to get it done.

  • Ron McKenzie

    Brandon, et al:

    POSSIBLE BUG? If it matters for the analysis, I haven’t registered, yet.

    iTunes =

    When iTunes begins playing song #6, the album cover displays when “Now Playing” is checked on the Visulizer Menu (instead of “iTunes Visualizer” being checked). During songs #1 thru #5, this screen was solid black, no album cover, when the plug-in was working.

    Is this a bug? Or, is iTunes (w/ the plug-in functioning) giving this behavior because that’s “as designed”?

  • Ron McKenzie


    Is this a bug? In the unregistered version, when I have Now Playing checked on the Visualizer menu, and the Visualizer turned On, No Album Covers are displayed for songs 1 thru 5, all I see is a black screen; when the plug-in turns itself off (beginning of song 6 or end of song 5), the covers begin appearing, centered on the black background.

    Is this a “that’s the way it’s designed” item re: the 5 song limit in the unregistered version or is it also present when I register the plug-in?

    (I thought I posted this however exiting from the page, returning and reselecting View Comments still shows 157 comments, the number when I began this drill. If the former post made it; please delete this one.

    — Ron

  • You need to have “Now Playing” selected to see my visualizer. “iTunes Visualizer” is Apple’s default.

    If you don’t see cover art, its because the plugin could not make an match for your song. You won’t see the image link in your XML file either in this case. Amazon isn’t perfect but you can using the grouping field to hint the ASIN to it. See more info in the documentation for the plugin.

    Oh, and nothing interesting will happen on song #6 because you haven’t bought the plugin yet.

  • I’m getting the following error when I try to click the iTunes link (song title on my Now Playing list)

    Error : -Invalid Offer ,Please contact site owner about this!

  • All, the iTunes link is a hack. Apple changes it all the time. It doesn’t work in Firefox. It only works for some songs. Until Apple gets their shit together, there isn’t much I can do. I suggest you link back to Amazon. They seem to do this a lot better.

  • Thanks for the great plugin Brandon – I love it!

    MovableType doesn’t allow trackbacks via a “GET”, so I hacked together a script that receives the ping, parses out the data, and drops the song info into a database. On my weblog, I’m using PHP and a little bit of Ajax-magic to display my current playlist.

    Anyways, my question is… what would it take to add user-defined variables to the outgoing Ping? I’d really like to send some additional info with each track – rating, etc.

  • I hate the ping interface so I haven’t been enhancing it.

  • Well.. I looked into the iTunes link a bit more. Turns out that the link is, in fact, correct in my XML log. Problem is that the ampersands (&) in the URL disappear when they’re parsed from the XMP to the webpage.

    Now I’m just trying to figure out how to convert these to & when they show up in my webpage.

  • Bingo! It took a little help (listed above quite a ways) from another guy named Brad, but I finally got it working on my site.


    $data = fread( $fp, filesize( $file ) );


    $data = str_replace(‘&’, “%26”, fread( $fp, filesize( $file ) ) );

    No telling if it’ll break something else in the process. We’ll see…

  • Jochen

    Hi Brandon,

    do you have any plans to integrate showing the cover art stored with the song in your plugin ?

    Storing the image in the same folder as the XML file would be great for use without internet connection!

    Thanks for your great plugin!


  • So I was wondering is their anyway to insert the music info into a MySQL database so I can list the last 5 and also allow users to search through all my music? I just need to figure out how to get it in the MySQL database???


  • Simon, that’s not terribly hard but you have to know some PHP. What I would do is have Now Playing do both the FTP and the Ping to my web site. The FTP happens first. That puts the file up there. Now, you have it ping a .php file that you write. That file reads the XML and puts the data into the database. You can use the XML parsing from the samples available on this site. There are plenty of references on how to do mySQL from PHP. Have fun.

  • I got my script working and I will post it just wondering I have my xml uploading when it goes to the next song but the ping isn’t working…. it doesn’t go to that page I said cause if it did like I do when I got to the URL in my browser it adds the entry to the MySQL database!



  • Would anyone be terribly upset if I removed the podcasting feature from this plugin? Now that iTunes does this natively (and very well), I would rather spend my time enhancing the plugin’s core “now playing” features instead of the podcasting stuff. It was a good run and I wanna believe it helped jumpstart this revolution!

  • Yeah getting rid of the podcasting stuff would be fine, itunes seems to handel it great. What I would like though is the URL of the album art of the podcast getting uploaded in the XML document by your plugin. I dont know how easy that is to do, not sure if their API lets you do that. Thanks for you continued development.

  • Have had more and more people asking to use their cover art instead of Amazon. I always like Amazon because the art was free and they had nicely sized images. Oh well.

    So I have a prototype of the album cover upload going but I have some design questions I need to figure out. Any input welcome.

    Issue 1. When to upload?

    – Option A: Upload each art each time a song starts to play. Maybe be smart and only do it once per iTunes session for a given album. You wouldn’t really want to do 6 uploads for all 6 songs on an album would you.

    – Option B: Upload all the images from your collection when you push a button. This would be like a big export and upload function.

    Issue 2: Album art naming. I think I am going to use now_playing-%1-%2.jpg. Where %1 is the urlencoded artist and %2 is the urlencoded album.

    Issue 3: Image size. Some of my images are like 500K, most from iTunes are smaller. Do I need to resize the images or can we just let PHP do that.

  • These proposed changes won’t eliminate the ability to keep using album art, will they? Because I’m content with the album art feature.

  • Jochen

    Issue 1:

    Think i would use option a and not option b.

    Issue 3:

    If you resize the images it would be less to upload.

  • Zvi Biener


    This is a very nice app!

    Is there any way to add a field in the xml output file for the file location of the song currently playing? (Quite litterally, iTunes’ Location field)?

    I have a strange set-up, and in order to use your fine plugin, I need the ability to read the file location off it. I realize that most people won’t need this ability, but perhaps you can look at it as making the nowplaying.xml more comprehensive and less selective about the information it conveys.


  • Shawn, I would not remove Amazon.

    Jochen, working on it. Image resize isn’t easy so I might leave that up to users — for now. You can always put smaller images into your artwork.

    Zvi, iTunes gives me a field called “file” that I can add to the XML. But its just the name of the file. The whole path is not there. That may be the best I can do for now with the APIs. As for the plugin not being comprehensive, I disagree. There are over 20 fields exposed right now. Everything I can think of is out there. Never did file because I never saw the use. Obviously, you want it. Will be there in the next release anyway.

  • Zvi Biener


    Thanks for fulfilling the request, and apologies: I looked at the “iTunes music library.xml” file and saw a “location” field. I assumed you were pulling the information from there, so I thought this was a field you intentionally did not pull. My bad.

    Anyway, great plugin once again.

  • Jochen

    Brandon, thank you very much for the enhancement!

    It took i while till i figured out how it works, but now i got it running showing the artwork stored with the song.

    Thanks again.

  • Zvi Biener


    Would you considering adding an option for saving a copy of the artwork along with the local copy of Now Playing’s xml file?

    I use this plugin not for a website, but for a LAN, having song information and plugin display on a TV in another room. Instead of running APACHE, I just have a small perl script write an HTML file which is loaded directly into a browser. My previous request for the location of the music file playing was meant to facilitate using the plugin in this context, and having the picture saved next to the XML file would also make this easier (although not a big deal, the file location would also help me find the correct picture).


  • Zvi Biener


    Just a clarification, I don’t mean saving a copy of artwork downloaded from amazon. I mean a saving a copy of artwork stored in iTunes. (This would just mirror the new option for uploading the local artwork, but would just work locally).

  • Zvi, done. Get the new version. What you will need to do is to check the “upload artwork” checkbox on the upload page and make sure you have nothing configured in the FTP path field. This is the secret sign to say I want art locally in the update I just posted.

  • Cheers for the update, works well for Podcast art (with a little playing around with my php) top stuff.

  • Here’s a strange error for you. I just rebuilt my machine and reinstalled the latest version of NP.

    I set up all my FTP info correctly, and NP is creating the local XML and uploading it to the server fine. But it’s also giving me this error each time the song switches:

    FTP File Upload Failed error; code: 12003

    Description: The server returned extended information

    Additional Information: 200Type set to I.

    227 Enter Passive Mode (63,99,249,224,11,38)

    550 Permission Denied

    …and like I said, other than this error every time the song changes, everthing appears to be working fine.

    Any ideas?

  • Just to add for the podcasting art, for some strange reason there tends to be some discolouring. Not sure why kinda odd. Here is a BBC example

    If you look at the real image its a bit more colourful. No biggy though.

  • Good timing. Fixed that today in

  • Hey everyone. Once again i’ve had to switch servers for my site. I’m HOPING i’m with a reliable one now. This same problem happens everytime i have to move my site, and it goes like this…


    Box in upper-right of all pages should display album art and song info.

    The plugin is working fine, as you can see that the remote now_playing.xml file is updating as it should. I must have an error in my PHP (now_playing3.php) or in how i’m pointing to that PHP file. Can anyone help? Someone in this forum has always come through in the past and fixed my problem, and I really really appreciate it very much.

  • Zvi Biener

    Hi Brandon. I have a question: does the plugin check Amazon (or something else on the web) for image files BEFORE it checks whether coverart already exists in iTunes?

    I ask because my network was down for some time today, and I notice that updating of the XML file took an extremely long time, almost a minute after the song started playing. When the network came back up, the plugin returned to its normal speed.

    Just wondering.

    Also, I once asked for the location of the file to be added in future releases, and unless you’ve already spend some time working on this, don’t worry about it. I cooked up my own solution that combines your plugin with some perl.

  • Amazon lookups are done each time regardless of any settings in the current version. Even though you might use your own cover art, I still need to get the ASIN, URL, etc. I might make this optional in the future.

  • Brandon – can you explain the reasoning behind not including the full filename of an uploaded image in the XML file? Not all of my image artwork is in JPG format, which makes it difficult (but not impossible) to parse and display on the server side.

  • Bryan, its pretty simple to construct the Image file name. Here it is in PHP

    $imgFileName = ‘now_playing-‘ . $artworkID . ‘.jpg’;

    where $artworkID is retrived from the XML document like so.

    $artworkID = $vals[ $index[“ARTWORKID”][$i] ][“value”];

  • MSWC

    Can anyone post the proper way to index the timestamp and display it for a multi song list?

    I must be having a problem in my PHP because I can’t get the timestamp from something -song order=”1″ timestamp=”2005-09-11T23:49:45-07:00″- to display properly. I think it may have something to do with my attributes indexing.

  • MSWC

    There’s a link to my php code if anyone would be gracious enough to help me figure out how to display a timestamp properly 🙂

  • Brandon – I’d like to second making Amazon lookup optional, or adding support for authenticating web proxies. I’m stuck behind an authenticating web proxy, and it usually takes about a minute for my XML file to update due to having to wait for the Amazon lookup to fail because proxy authentication doesn’t occur.

  • Andy – not quite what I was looking for. My problem is that some of my album images are stored as PNG files.

  • Justin, Amazon and Apple lookups are now optional in the latest version.

    Bryan, see my .zip sample file. It shows you how to deal with the JPG/PNG issue.

  • MSWC

    Well, try as hard as I could, I was unable to get the song timestamp to display properly. However, as a work around, you can use this to display when the XML sheet was last updated.

    $last_modified = filemtime(“now_playing.xml”);

    print(“Last Modified “);

    print(date(“m/j/y h:i”, $last_modified));

  • Drew

    It would be awesome if the timestamp element wasn’t embedded in the song tag, but had it’s own tag, just like title, artist, album, etc.

  • I think its a better data form like it is. You can still parse it out as an attribute. In my .php sample, I parse out the PLAYING attribute. Use that as a sample to get the timestamp out. You can also experiment with passing ?debug=1 into my .php file and browsing directly to it and it will list out all the array values.

  • Seth

    Is bittorrent still supported? iTunes natively doesn’t support Bittorrented enclosures… and this plugin looks like the ONLY thing out there that does it within iTunes…. if so, promote the heck out of it, and get a Mac version running too…

    Came across this from googling for something to do it, without much luck so far.

  • It used to but I removed all podcasting support when Apple got into the market.

  • I’ve created a tutorial using AJAX and PHP to have your playlist ‘auto-refreshed’ based on a timer. Check it out below.

  • Hey Brandon — first of all, amazing product! Worth even more than the $10 in my opinion. Now I’ve seen in the version updates and comments how you added local artwork storage if you leave the FTP filename blank and check “update artwork”. That’s what I’m going for, but it seems to dump the art into my drive’s root directory (C:/) and I’d really like to direct it all to a subfolder of C: instead… is there some way to supply this file path? From what I gather, if you try to supply any directory path, it considers it a non-local FTP directory, right?

    Many thanks :-D.

  • Kelly Harding

    Love this 🙂

    Will be intergrating it into my website when it is back up somewhere on the web..

    One request though.

    I have a lot of artists in my music collection who are not mainstream and they don’t have album artwork on amazon or apple’s store. But I’ve got the album artwork in the mp3s and folders. Can it be possible to read this instead? or something like that for artists where amazon/apple lookup brings nothing back?



  • The plugin already does what you are asking for with the artwork upload if the artwork is inside the MP3. There is a checkbox on the FTP config page.

  • mas

    hi there 🙂

    i just bought a license and i am experiencing a very strange problem: the plugin works fine on my laptop (i am using an older version of itunes on the laptop).

    but on my pc, where i am running the latest version of itunes, the plugin causes several problems. first of all, it doesnt seem to work the way it is supposed to be, although i am using the same settings as on the laptop.

    for example, if i switch to another song while playing, i get the following error on my website:

    Warning: fread(): Length parameter must be greater than 0. in /home/.ullaheater/lukas/ on line 76

    additionally, after i close itunes, i cant start it once again…the program just wont open when i click on the icon.

    do you know whats wrong?

    thanks in advance


    mas 🙂

  • Brandon – I was wondering, where does the id-number of the artwork-filename stand for? How is it build up? It is not the ASIN as I see, which would be more logical in my eyes. Thanks!

  • Kelly Harding


    Ah yes, I must have some setting somewhere outside of the plugin set wrong or something.

  • The artwork ID is a MD5 hash of various values in the MP3 tag. Its not that important what it is, just that its a unique identifier of the art. I didn’t want to use the name of the song or the artist because of special characters. So this was the fix to that. I don’t use the Amazon info because we don’t get perfect matches — and this edition doesn’t do Amazon lookups yet.

  • Hey Brandon:

    As for my previous question, I figured it out myself using a pinged PHP script… now I’m wondering if you would add lyrics support as iTunes does now for viewing on the iPods. Although this could make the .xml file significantly larger, I guess you could just add a ‘lyrics’ tag to it… ^_^ see what you think.


  • Here is how I use the NOW PLAYING plugin for iTunes to display the last 5 songs played.

    It is coded with PHP, and included in the right hand gutter of a MT 3.2 site.

    I would love to see how others are using this data.

    Question: What is a good location to route artist lookups to? All Music Guide, Wikipedia, ???. I think it would be nice to code a link from the name of the artist directly to a bio page of the group/artist.

  • Can anybody around help me, or give me a hint where to look.

    I want to use this plug-in to automatically add the played songs into a mysql db, which I can later use for play-behaviour statistics.

    I guess it has something to do with trackback url function. Has someone done this? Or know where to read about it?


  • dan

    i am trying to make this so my aim profile has the “now playing” text

    can someone walk me step by step through this

    i am running into problems

    my xml thing seems to work fine and read my songs but i just don’t get this whole php business

    my email is


  • dan

    i figured out what the problem was with my php… my server wasn’t php enabled!

    but i still am wondering about the aim profile ‘now playing’ thing. does it have to be a link to a subprofile before you can view it? or can it be in your main profile?

  • Rob


    I’ve already done this, and yes the page would have to be a “subprofile” one. The main profile page you see on anyone’s AIM profile is an HTML page that the AOL takes from your computer and serves on their own servers. Of course the “subprofile” doesn’t have to be one of those commercial ones like IMChaos or whatever; it can be a link to your own website.

    – Rob Keleher

  • dan

    artwork works for all my songs except the ones bought from itunes store (even though it displays it in my itunes). i’ve even tried to upload the artwork in jpg manually with itunes and it still isnt working. any ideas?

  • pine


    I think your solution is TrackBack. Use parser from top of the page. Upgrade it with sql statements. Then just insert url of your script into the trackback form in options. That should work.

  • dan

    i fixed that problem years ago, but thanks anyway ;p

  • Thank you for a terrific plugin! I’ve been using it for ages, and I’ve been meaning to ask this question for a while: what port(s) does Now Playing use to FTP? I have typical FTP-range ports open on my firewall so that I can FTP to my website, but they don’t seem to allow Now Playing to connect to my site.

  • FTP is port 21. SFTP is port 22.

  • peter

    All my songs have artwork attached but only some of them get uploaded to my website – a lot of them get “no image available” – any idea why Now Playing doesn’t find/upload all the artwork?

  • Not sure. You can generate a debug log and send it to me via e-mail and I can check it out. Be sure to illustrate the example.

  • Brandon, I LOVE this plug-in! Great job, keep up the good work! Definitely worth the $10!

    *I would love it even more if it could use my imagemagick path to auto resize the coverart…

  • Great plug-in. I’ve been experimenting with it and I’m just about to get licensed…Forgive the newbie question, but how do I turn the xml file that gets ftp’d to our website into a valid rss feed? So far I haven’t been able to get it validated or be readable by any rss readers. Is there another piece of software or code I’m missing?



  • You would have to make a new file out of PHP or something that would parse the XML and turn it into an RSS format.

  • Can that be done automatically every time the xml file is updated, for example, with a script or some code that runs on our ISP’s server? How would I find such a thing? Thanks!

  • dan

    i recently was prompted for an update to my now playing.. and now every time i open itunes and play a song i get an ftp connect error message pop up

    why did i do this update. if it’s not broken don’t fix it. it’s broken now

  • Feel free to email me your debug log if you can’t figure out the error.

  • Shawn

    hello all, i’ve got 3 questions:

    1. is it possible, with this plugin, to have the output data display on top of an image file (pretty much like the way does it)?

    2. if so, is there anyone out there who knows how to do this and wouldn’t mind sharing the basics with me, or at least pointing me in the right direction?

    and finally…

    3. Brandon – my email i used to register is no longer valid, i’d like to change it to shawnchristy ”at” gmail ”dot” com

    Thanks, in advance!

  • 1. Really has nothing to do with the plugin. Meaning the plugin just puts the XML on your site. What you do from that point is up to you. But you could use the various GD routines in PHP to generate an image out of the data.

    2. google “PHP GD” and you will find a reference

    3. The registration emails are not used for anything other than a token to look you up in PayPal. So I cannot change them.

  • Is it possible to give us back the option to get the LARGE amazon record cover. I think that is why my now playing icon looks dumb on my website.

    If you could just visit maybe it’s just a dumb config on my end that is making it look bad.

    Thanks man…

  • I removed the “select a size” and just put all 3 sizes in the XML. Just use whichever you like out of there. Had a bunch of people ask for all the image links at once so they could use them all.

  • Wonderful Plug-in – Well Worth Buying.

    I took the supplied PHP script, mixed in some Javascript and AJAX and an image of the iTunes-mini display, and now I have a cool little web-based iTunes display that updates every 15 seconds in the background.

    If you’d like the code let me know and I’ll pass it on to Brandon so he can publish it here. It is open-sourced.

    Click my name below for a preview.

  • Thanks for this sweet script. I just had to reinstall it and configure it and it took me awhile because I didn’t get the root directory right. Just incase anyone else has this problem the root directory for any linux hosting account is /home/username/public_html/

    Thanks again.

  • Thanks for this amazing script! Your tutorial is great! I will write about it on my blog!.

  • Brandon, thanks for great tool!

  • Can that be done automatically every time the xml file is updated, for example, with a script or some code that runs on our ISP’s server? How would I find such a thing? Thanks!

  • Thanks for this great script.

    I am wondering if I may include this on my own site? I will send you a personal message before I do so you can tell me your opinion about that.

    regards, Jonas

  • This is an amazing plug-in! I absolutely love it! I just sprang for the license and am very pleased!

  • Really good, i love this plugin, good tutorial…

  • I have tested it and it works good. Well done!

  • This is a great plugin – I LOVE IT!!

    Any chance on getting Ajax’ed code so the page doesn’t have to be reloaded to be updated?

  • After two days of testing i must say what this plugin works great for me. Good work man.

  • Can the plugin run automatically every time the xml file is updated, how can i handle changes?

  • @TJ’s Now Playing:

    is it possible to get your ajax enhanced code, it looks amazing…

  • The plugin is working fine, as you can see that the remote now_playing.xml file is updating as it should. I must have an error in my PHP (now_playing3.php) or in how i’m pointing to that PHP file. Can anyone help? Someone in this forum has always come through in the past and fixed my problem, and I really really appreciate it very much.

  • How about a version for winamp?

    All the other winamp now playing deals are weak with oldschool results.This looks much better!

  • 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 )


    Thank for this, i really could find how i can write it..

    But now is all really better. And the best is, Ajax’ed code on the page doesn’t have to be reloaded or updated!

  • Cool plugin! It’s true, a winamp version would be great.

  • Question: What is a good location to route artist lookups to? All Music Guide, Wikipedia, ???. I think it would be nice to code a link from the name of the artist directly to a bio page of the group/artist.

  • Now i love to play itunes, before this plugin i was using winamp…

  • Hey Brandon – I’m not sure if I asked you this before but sometimes songs don’t have artwork on my published website – but the artwork is there within iTunes. If I check “upload artwork if available” shouldn’t it upload the image that iTunes is using? Let me know – I am running the most recent version.

  • Foobar2000 version would be even better 😉 /I remember times when winamp was fast and sleek, times long gone/

  • Can that be done automatically every time the xml file is updated, for example, with a script or some code that runs on our ISP’s server? How would I find such a thing? Thanks

  • Yeah winamp version would be great.

  • tee

    Yes, this plugin publishes your last X songs played

    Thanks Tee

  • The new handling of track information is working much better, I can really recommand it to everyone.

  • Sres

    Thanks, this is fantastic well worth $15!

  • John

    Hi Brandon, I’ve got the plugin running on the most recent version of iTunes, but it doesn’t seem to upload the album artwork.

  • Sres

    Any chance of being able to see what is coming up next in the feed?

  • Nope. None of the media players will expose the next song to be played.

  • Brandon, I love the new Facebook feature!! I’m having an issue with the images thou – they’re not being displayed! I have tried both the & tags without luck.

    Here are the sting settings:

    The last song I listened to was: “” by , from the album: [released in ] This song is from the genre.

    Only the text gets displayed on my Facebook. Also, everything works great on my blog.,

  • Chris


    I’m trying to archive every song I play to an XML file on my local drive. It seems that every time I start iTunes the file is cleared. If I add a date/time code to the filename then I get multiple files with the same data.

    Is this possible with your plugin? If so, how should I set it up.

  • Joseph

    Works great, love it.

    Was insanely easy to set up.

    As requested, I link back.

  • Hi Brandon,

    thank you very much for the instruction.

    Great woke.

    Kind regards


    New York

  • Ships

    Hi Brandon,

    Excellent work. Downloaded and played around with it. I am developing an application. Part of its functionality is to be scanning the currently open media players on your PC and getting the now playing list. I am doing this sorta thing for the first time and am completely lost as to how to go about it. Even a few searches on google didn’t help.

    It would be great if you could point me in the right direction please.


  • Cj

    Need assistance please. Purchased and configured iTunes NowPlaying plugin and Josh Blake’s WordPress widget. Getting following error:

    Warning: file_get_contents(now_playing.xml) [function.file-get-contents]: failed to open stream: No such file or directory in /home/.dahliadryer/memusing/ on line 31


    Not listening to anything right now.

    I’ve verified now_playing.xml is in same plugins folder as NowPlayingWP.php. XML file is being updated when iTunes plays, but won’t show on page.

    I appreciate any help anyone offers.

  • aeron

    how do you get the sign up bit for your free liscence key???

  • Jonathan

    Long time user just noticed that if I am listening to a Radio stream in iTunes it doesn’t update the artist title when it changes, it it a different field?

  • To my knowledge, Apple doesn’t provide that info to plugins.

  • Just your latest new licensed user, thanking you for your efforts!

  • Is there a trick to getting the apple itunes affiliate link to show when posting to twitter?

  • There is no tag for it at this time.

  • Steven Limbrick

    Like the Facebook Now Playing app – how do /where do I paypal the fee to register? Thanks.

  • I totally understand the desire to release software under a shareware license but srsly? When I reached my limit of 5 songs!!! it crashed my iTunes. Uninstalled.

  • courtney

    can you turn it off temporarily? without having to uninstal?

  • Thanks for code for the now playing function for my website:

    I’m only having one problem. My apple affiliate id for itunes returns an error. What could I be doing wrong?

    Looking forward to more features.

  • Mitchell James

    Would like alex jones podcast for 9/11/2001 thanx Mitch.

  • M S

    Hi Brandon,

    Fantastic plugin, I purchased it and was very happy. I recently switched to Songbird instead of iTunes, and am very happy with this open-source player. It would be fantastic if you ported NowPlaying to Songbird, but I guess the licensing may get in the way…


  • Hey B, I’m working on getting my wordpress blog back up and running and I’d like to use the Now Playing plugin. The Josh Blake website seems to reference old stuff. Any ideas if peeps are using it with wordpress?

  • Not really sure what Josh Blake had going but you don’t really need anything specific for any blogging software. Its just standard HTML stuff so anybody can use it of course. Just a script include if you use my ZIP package sample.

  • Jeff Berlin

    Nice plug in, working perfectly here ! I’m new to PHP – have been tinkering trying to add line breaks, and get the php script to render the time a song was played. Eventually i might figure it out.. meanwhile i got some learnin’ to do !

  • Darren

    Just purchased a license, hopefully I get my registration key and what not within the next few days. This plugin is BEAUTIFULLY coded. Couldn’t ask for more, you went above and beyond what most people will need. Thanks to you I’m going to be able to host my radio show AND show the listeners what they’re hearing live on my site, all using your built in XML and uploading features. Seriously, man, keep up this incredible work, because you have a fan for life.

    And to Jeff Berlin, if you wanna work in your line breaks in PHP, I think the code is \n and that breaks a line. PHP is nice because it will scan EVERYTHING you type, instead of just the actual code. However, on the other hand, I have always preferred Javascript when parsing XML just because it’s not a server-side language so much as it’s just a scripting language.

  • D

    Brandon I give you a doff good sir, awesome work.

  • D

    Hi Brandon just a quick idea about the posting.

    on Twitter it says where it is posted from e.g. now it says “posted from API” then links to To give your app some exposure you could change it so it says site name then links to here?

    Well done I thank you for this. My friends may not as I listen to a lot of music.

  • Hiya, love the plug in – donated for the itunes for windows version and successfully implimented it into my website, and it’s working like a charm. Just have one question about the facebook support, I get how it can update my user status and post to my news feed – but I have a “fan” page and was wondering if there was any support for posting to the news feed for that page instead? If so, how do I go about setting this up?

  • No, it won’t work for the fan page — right now. I did read about this in the Facebook API documentation. It says you must be an Admin for that page and provide the page ID. Then I could have the plugin publish there instead. Maybe a secret option since I don’t want to confuse “normal” users.

  • partly

    Hi, I can see the now playing box on my wall but i can’t get it in my profile latests news???

  • I’ve had the NowPlaying plugin for quite a while, but have just decided to revisit it as part of a web update. Now implemented using CSS rather than tables and (I think) it looks quite nice that way. Any thoughts on how to clean up the image files that are copied to the web server? Or a method of overwriting the same file name each time it needs to be updated for a new track?

  • You could have a script that runs as a cronjob that cleans them up however you like. No plans for any additional features in this area at this time.

  • Unfortunately I don’t have access to the server other than through an FTP connection. I can clean them up by logging in and deleting all of the old ones, I just wondered if there was a simpler way to do it. I’ll double check the server to make sure I really don’t have such a facility available. Thanks for the answer.

  • I clicked “Authorize”, and it told me it will open a browser window to authorize….but nothing happened. What’s wrong?

  • Yes, it should open a browser window to a Twitter web page where you can authorize. It uses the default web browser on your system to open the URL. I haven’t seen that fail for anyone before. Can you close your browser and try again? Otherwise, send me a debug log via email. Instructions in the FAQ.

  • Hi Brandon. I posted a question here yesterday (as a guest) and i’m not sure if it worked or not as I don’t see it. Anyways, I was wondering if it is/would be possible to have the Now Playing plug-in fire off the XML & Upload option when you hook your iPhone/iPod to your computer and it syncs the recently played tracks?



  • What server technology are you using? If your using ASP or PHP you can simply write a script to use FSO and go after files with a certain last modified date.

  • Not that I know of. I haven’t seen any APIs from Apple for getting that info. I was also looking into an iPhone app/plugin but tha.

  • charliezingerline

    I continue to have problems with Windows Media Player 11, and will probably be abandoning it in favor of VLC. My regret is that the now_playing plugin is only for WMP. Is there any possibility that you might be putting out a VLC plugin that creates the XML file like the WMP one does? Or perhaps you know of a VLC plugin that does this?

    Incidentally, the sometimes non-starting of now_playing in WMP 11 seems to have gone away. Strange. I don’t know of anything that I changed to cause this. But I probably did.

  • I will look into it.

  • anthony

    Looking at All the other versions, man that’s alot of work. …

  • Macbeth

    How do you remove the plug in from your computer?

  • The answer is in the FAQ.

  • Hi Brandon. Do I need to buy the plug-in for every computer I use? I have a iMac that has the plug-in working just fine, but it won’t work on my MacBook Pro. It output’s the XML file just fine (updates it every time I play a song), but it won’t upload to my webserver. This is what I get when I look at the Console Messages:

    3/21/10 7:33:19 PM [0x0-0x34034][503] Begin FTP_Upload

    3/21/10 7:33:19 PM [0x0-0x34034][503] CFReadStreamGetError returned (NetDB, 8)

    3/21/10 7:33:19 PM [0x0-0x34034][503] End FTP_Upload

    3/21/10 7:33:19 PM [0x0-0x34034][503] Begin DoPing

    3/21/10 7:33:19 PM [0x0-0x34034][503] End DoPing

    3/21/10 7:33:19 PM [0x0-0x34034][503] Do MPWaitForEvent

  • Code 8 means “hostname nor servname provided, or not known”. So you might have your server name entered incorrectly or its not resolvable from that computer. Or maybe you were offline.

    You can use the plugin on multiple computers as long as you own them.

  • Hi Brandon,

    Have Facebook tightened up on the number of API calls an app like yours can make? I’ve been using NowPlaying to post occasional (random) tracks to my profile, but have now started to receive warnings that it has exceeded its limit. Today this occurred on just the 3rd such posting of the day. Disabled the Facebook posting option and the error went away.

  • They have always had this restriction. The number is usually in the teens though from what I have seen.

  • The same error occurred again today, on the 5th track I attempted to add to the news. I’m sure you know the error message in question, but here it is as a link

    I knew they had a restriction and like you I thought it was in the teens. I can’t find anything obvious on there to indicate that they’ve lowered it. Twitter isn’t having the same problem.

  • Just found some more at; I guess it must be that most people are ignoring what is added to the news stream, resulting in the limit being gradually lowered to a point where it causes this problem. I’ll reduce the frequency further until I (hopefully) get just one rejection per day.

  • Thanks for the updates. I am on vacation this week. Not sure what can be down at this point but I will look and think about it. Pretty dependent on Facebook here and how they choose to limit us.

  • Andrew P. Alderete

    Just wanted to let you know the plugin is crashing with the most recent iTunes update 9.1. 🙁

  • Just got back from vacation and downloaded iTunes 9.1 for Windows. Did a few tests but didn’t get a crash. Another user said it crashed for him to. Could you provide me more details? Specifically, any crash report and/or a debug log when it occurs? Instructions in the FAQ. Email address is above.

  • blake hunter

    dude i love this APP

    but 15 for the full verison

    make it 4 or 5 bux and i bet ALOT more donations for license will be made….like tons more

  • Just to provide a further update. Since I last wrote about this, a number of people on my Facebook friends list have started ticking the ‘Like’ button and posting occasional comments about tracks I’ve blogged. I’m sure this has resulted in Facebook raising the limit of the number of tracks I can post in a day, meaning that I haven’t come across this error recently. I don’t mind the fact that it’s limited, the only thing I found to be intrusive was that, every time I clicked on ‘OK’ to acknowledge that a track couldn’t be blogged on facebook, when it changed to a new track, I got the same error again. If you were to reset the timer, even if it fails to update the Facebook account, that would put a significant delay between error messages, which might help.

  • Good to hear. That dialog box is misplaced. I just removed it and posted

  • a alguien le pasa que actualmente no sube lo que se escucha en winamp?

  • jrioscr

    Hello Brandon

    I’m writing from Costa Rica and I’d like to let you know I love your plugin except for I thing.

    For me, $15 is expensive, If this would cost $10 or less ($10 is ok) I’d purchase it long time ago.

    I don’t know how much you licenses you sell of your software, but lowering to 10 dollars would allow you to get more customers I belive.

    and CONGRATULATIONS for this small piece of software, It rocks!!

  • Robert Hodges Jr.

    Note – to have it post on Facebook, you can still use a Twitter to Facebook app, and it works just fine. Just starting using this about 10min. ago, and about to buy full version! Finally, something that works with iTunes! Thanks!





  • Thank for App 🙂

  • Having issues with FTP not working…

    Here is the info from the log…

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] spawn ftp

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] Connected to

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] 220-Ku’u Pi’hole Pu’uwai FTP Server

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] michael

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] WarFTPd 1.82.00-RC11 (Sep 22 2006) Ready

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] (C)opyright 1996 – 2006 by Jarle (jgaa) Aase – all rights reserved.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] 220 Please enter your user name.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] 331 User name okay. Give your full Email address as password.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] 230 User anonymous logged in from host (

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] Remote system type is UNIX.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] Using binary mode to transfer files.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] 200 Type set to I.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] ftp> ?Invalid command.

    10-09-04 9:13:30 PM [0x0-0x3d03d][455] ftp>

    10-09-04 9:13:40 PM [0x0-0x3d03d][455] Deleted file = /var/tmp/tmp.5.9JHUNt

    10-09-04 9:13:40 PM [0x0-0x3d03d][455] HTTP Status Code: 404

    I see that it states user anonymous has logged in even though I have provided a username… Could this be a problem?

  • D.Aisha

    Great app.. just can’t pay $15! But nice one!

  • Al C. Liver

    Great pluging, but check you uninstall script because it removes a lot of things, that becomes messenger toooo slow and programs like Remote Desktop fails.

  • Ivanospeb

    nice… but, how to access the properties? i can only one time… thanks, regards

  • Answer is in the FAQ.

  • Jonung

    when i uninstall the pluggin it causes a runtime error how to remove safely?

  • Joe King

    Has anyone created a Windows gadget that parses the XML and displays the Now Playing output?

  • Funfrock

    In the new itunes versión ( no we can not see the artworks. I’m implemented the cover art in my web and now, don’t see it.


    Sorry for my bad english and congratulation for you pluging.

  • Marco Cantu G

    Hi, I love this plugin. its grate. this is was i looking wile time ago.. and works great…

  • Simon

    HI… great plugin, I’ve got the registered Win / itunes version, and I’m using the “ping” functionality to call an URL.

    However, it looks like if the rating for the track that is currently being played is changed then the “ping” is resent. Is this by design?


  • The media player must be sending a new “playing” signal to the plugin in that case. The plugin will prevent exact duplicates but in this case the rating changed and the plugin considers that a different track.

  • Simon

    I guessed it must be something like that, wasnt sure if you classed it as a bug or not! 🙂 I can work around it in the handling code called by the “ping”…

  • love the plugin mate….worth all (cant remb) what i paid for it. gutted the FB assholes locked out, but my query is with twitter and wp.

    my twitter posted “I’ve played “04. Enjoy the silence” by #Depeche Mode 0 times from the Greatest Hits album since buying it. 3~star” which is nearly right. depeche mode didnt come up as a hash cos of the space. can u add code to make it _ or – or [del space] so #hash tags work better pls on this example i also wanted the u created to auto bold or blue or underline etc

    also can i use it on ?? thanx

  • Thanks. I understand your suggestion but not sure how to do that one yet.

  • Dave N

    Hi, only just discovered the plugin; great work.

    I’m specifically looking for a way to send #NowPlaying tweets on demand rather than on a schedule (rate-limit). I’ve checked previous replies but couldn’t find anything; wondered if there’s a way to achieve this via your plugin?

    Currently I’m using a combination of AutoHotkey and Cygwin (+Ruby+Twurl) but it’s less than ideal and not very portable.


  • The plugin sends them at the start of every new track. I don’t quite get the “on demand” query. Maybe you mean you want to send the manually…meaning clicking on something on your desktop, etc. to make it happen. I have no built that functionality and don’t currently plan to.

    On the rate limiting, you can turn it down to 0 minutes for Twitter and it posts everything. Its up to you how you want to publish.

  • Dave N

    Thanks for the quick reply!

    That’s exactly what I meant. A way to manually Tweet so only specific tracks get posted, via a hotkey. Is it possible for your plugin to detect an event via COM (I can trigger this using AHK) and fire a Tweet?I know it’s a lot to ask but it’s so close to what I’ve been looking for. Used to use cUrl but it doesn’t support oAuth; there’s nothing out there (command line etc) that does!


  • Dave N

    Thanks for the quick reply!That’s exactly what I meant. A way to manually Tweet so only specific tracks get posted, via a hotkey. Is it possible for your plugin to detect an event via COM (I can trigger this using AHK) and fire a Tweet?I know it’s a lot to ask but it’s so close to what I’ve been looking for. Used to use cUrl but it doesn’t support oAuth; there’s nothing out there (command line etc) that does!Cheers

  • James Thrift

    Hey, I am having a hard time gettting it to work on Facebook. I cannot select rate Limit, it is greyed out. And even though there is time in it, it is not posting to my wall. I have done both the setup and confirmation for the program through ITUNEs and facebook. And even checked permissions on facebook. Can anyone help. 

  • Send me your debug log via email.  Instructions in FAQ.

  • James Thrift

    sent to email

  • aanbak

    unable to authorize with twitter at this time

  • hey, digging the plug in – donated for the itunes windows version. it was working great with twitter never missing a post of a song until 6-6-11 now ill start a new song and it will not post. i have to basically start and stop the song 5-10-maybe even 15 times to get it to finally show up. im running the newest ver and have uninstalled itunes and the plug-in and reinstalled and its still not working right. 

  • looks like after looking at the debug log file some of the songs artist, title, album go over 140 char or are duplicates. so twitter wont post dup posts? and is there anyway to implement support for posts that go over 140chars?

  • You are correct.  Twitter won’t post sequential duplicates (they used to).  Haven’t decided on a way to handle that if at all.

  • how long do you have to give it before it will post again.. i cant remember off the top of my head.

  • Loving the plugin, but I would like to post to Facebook less frequently. 360 minutes is still a bit too often for my taste. Is there any way to tweak the code to allow for a greater number of minutes between posts?  Cheers.

  • Eli Karpel

    Hi , love the plugin , question : is there a way to write the setting, in particular in the ping tab directly to the config file and not using the UI?

  • Its all stored in the Windows registry so you can do what you like to configure it there.

  • Hi, hope you can help me out. Been using Now Playing plugin for a few years now but now it isn’t displaying the tracks I’m listening to.

    Funny enough it displays my ‘currently not listening to music’ message when iTunes is off, but when it’s on and playing. Nothing happens. The place where the track information used to appear is gone.

    Everything is done correctly. Added plugin (licensed user), set as Visual Effects. Done all options. The XML is uploading to server (checked that) but the PHP just doesn’t display it. I really don’t know what it can be. Just downloaded the newest version today but can’t imagine it would be that.

    Thanks in advance for your help!


  • Estrellaweb

    Problem solved already. My server seems to have some probs with the Amazon function. Ticked it off, works as a charm now!

  • Jolyon Favreau

    hey, i’ve had to wipe my whole system and just realised i’ve lost the licence key for this (and loads of other stuff) 🙁

    how do i get it back?


  • Item #1 in the FAQ.

  • Jolyon Favreau

    hey, i’ve re-formatted my system. put the reg details in and it just says “upon purchasing this plugin, enter your registration information”

    which i’ve done no fewer times than ten. allowed through firewall (not sure of any specific ports thou!!) and pulled hair out 🙁

  • No firewall, no ports required.  Just be sure you are entering it directly as the email states with the dashes and all.  Your license is for iTunes on Windows.  Be sure that is where you are trying to use it.

  • simnkaff

    Just seen the first announcements from f8 about Facebook Music. Reporting tracks you play automatically into a part of your Facebook timeline looks a lot like what they pulled earlier versions of the Now Playing plugin for doing.

  • I have always felt that this was inevitable with all my plugins with anything they publish too — except the fact that I give raw XML and geeks can do what they want with that!

  • jay2

    Is there a way to adjust the time to FB to 0? Spotify is spammed up the yingyang on my news feed. But I rather not use that!

  • No.  Facebook will ban the plugin for being spammy.  We have been through this before twice now with the plugin.  The current levels seem to keep the Facebook app police happy.

  • oriana7x

    how do i get the license : ( ?

  • Once you buy it, the system will email it to you.

  • Fosterbrown

    Ok i made a mistake when setting up and i need to make some chges in the configuration where do yo get the confiuration running again

  • #4 in the FAQ

  • Gary Saul


    Was really interested in your plug-in for iTunes but (as advised) thought I’d try to get it working first.

    Facebook worked OK (apart from the 3 hour limit – which makes it virtually useless for a ‘what I’m listening to now’).

    So tried the suggestion of Twitter linked to Facebook.

    Unfortunately, having connected & verified my Twitter user name in the app within iTunes absolutely nothing is being posted to my Twitter feed (never mind then on to facebook).

    I have attached a screenshot of the Twitter dialogue from your App.

    Any suggestions?

  • Send me the debug log per the FAQ and I can tell you

  • rskinfield

    Hello Brandon, I have a mess, I lost my key for the program nowplaying for iTunes in Windows. I just only have the paypal order, the payment that I realized to you. The email where I received the key was a yahoo mail, but I closed it. Any way to recover my key? Thank you. Regards,

  • Sent it over just now.

  • Awesome plug in. Works amazing, even on iTunes 10.5.1. Is there a way if your skipping between different songs to not -automatically post songs you skip?

  • No.  You can skip posting lengths and types but not any random song.

  • Int16

    Not a bad plugin, but $15 is a ridiculous price for a something that could be made so easily.

  • Let me know how many hours it takes you.

  • Int16

    Gone one better.

    Roughly 15 minutes to crack yours for unlimited plays.

    But of course, sharing is caring.

  • m1kesa1m0ns

    Hi, I just installed it on my machine (iTunes 10, Windows XP). I was prompted when it ran for the first time for config info, but I knew that some of that info was probably wrong. I went ahead anyway. Later I went in to view the settings through the Visualizer, but all I got were many error messages telling me that the software was trial only. Then I saw nothing, just black in the visualizer window. So I thought that meant I had to buy a license to tweak the settings, which I did. But I went in to add the license key, and it happened all over again, I got the many error messages about the software being a trial version, and when I finally closed all the error messages, the visualizer area was just blank. Have you ever encountered this? At present it seems the program is unusable if I can’t set the properties.

  • The visualizer itself isn’t interesting.  Its the configuration for the visualizer which is shown in the various screenshots above.

  • m1kesa1m0ns

    How stupid of me, I skipped the step of returning to the View menu to choose Options. Apparently I was expecting the config to appear AS the visualizer… don’t ask my why I thought that. Thanks.

  • m1kesa1m0ns

    I can tell I am very close here. What if the destination FTP directory is several off from the root where the ftp connection lands? Something like accountname/web/content/music/? does the path need to go somewhere? everything seems to be rolling now except for uploads.

  • You can set it to an absolute path (starts with /) or you can do a relative path based on the login directory.

  • Npat

    it stopped working–the plugin was removed from itunes v. 10.5.2–I tried reinstalling but it’s saying “iTunes is not installed on this computer…”  I purchased a license, and I hope that you will be able to fix it when you get a chance 🙂

  • Its working well for everyone.  I think its specific to your setup.  Now Playing looks for iTunes in the Windows registry when it installs.  Seems like it can’t find it.  You might reinstall iTunes.

  • Thanks for the FB update.

    I have html output working courtesy of a sample you posted. The amazon thumbnails show up when album is found. If not found, the music-noimage.gif is displayed. So all is working there.

    OTH, below that (itunes), a click.linksynergy,com result show a broken image link. Is that me, or is it just itunes being PIA?

  •  They break those links all the time.  Will have a lok.

  •  Maybe comment out the PHP for that. I’ll look on the weekend when I have time.

  • Googe

    can someone direct me to an easy php that displays when I’m “On Air” and “Off Air”?

  • (oops, wrong version)

  • RMRubert

    Is it possible to get the music info add into the timeline under music activity like deezer or spotify does?

    I think that will very useful.

  • Not at this time.

  • Hb

    Hi, how do I uninstall this on Mac?

  • Hi,

    This works fine on my home PC, but on my work laptop it doesn’t work when on the network and behind the proxy.  In fact its installed, but doesn’t even show in the Visualizer menu.  Any ideas?

    I’m using the latest version of iTunes and NowPlaying.

  •  If its not in the visualizer, then I don’t think its actually installed.

  • hi Brandon, I just bought your plug-in for WMP today. I love it! I was wondering if you could write a plug-in so WMP can broadcast via SHOUTcast Server?

  • Scott Keene

    Keeps installing properly though?


    Greetings Brandon! I really enjoy this program, and our college radio station really appreciates your efforts. Currently, we are having issues showing the timestamp and stars images with the playlist. I am using the parsed code posted above. Any help would be much appreciated.

  • hackerpower


  • hackerpower

    WMP 12 Windows 7 Ultimate x64

  • Bene

    Nice work. But pls update the nowplaying plugin. My itunes doesn’t work any more. It closed every 2 minutes, with the message itunes doesn’t work. (iTunes Ver. 10.7)

  • Traci Adams

    dont have itunes…is there a version for media player?

  • Eric

    I’m using the WMP plugin. Even though I’ve configured it, it still says “This appears this is the first time…” every time I start WMP. How do I get this to stop? Thanks, Eric

  • Never seen that. It looks for the registration in the Windows registry. If it can’t write it for some reason, maybe its thinking its a fresh install each time. Send a debug log per the FAQ.

  • maame

    hello, the plugin is not showing updates on twitter anymore. i’ve tested it with facebook too but nothing

  • Confirmed. Something is up with Twitter. Will address this week.

  • Fixed in just released.

  • maame

    thank you. i still can’t get mine to work though. i uninstalled the old version and installed the new one but it didn’t work

  • Send me the log per the instructions in the FAQ.

  • maame

    i’ve followed the instructions for the log but it turns out empty

  • maame

    Ok I got the log. Please find it here

  • for some reason now playing stopped updating my tweets…. last one was on the October 10th … (but still works for facebook so musty be an issue with Twitter)

  • Hi Brandon. I still dont get any updates on my twitter with new version. I uninstalled it, re-installed it, rebooted, nothing…

  • New version fixes it.

  • Paul Carless

    thanks Brandon, just installed the new version and it’s working again now.

  • Alex

    Is there something like this plugin, but what create .txt file, not .xml?

  • Herry

    Hi, Brandon, the plugin posted only the very first song, for the next

    ones, it doesn’t work. I attach the log file, hope if it would help.

  • Jeff B

    Does Now Playing work with iTunes11 on a Mountain Lion Mac? Can’t get it work.

  • Jeramiah Young

    XML is properly being updated via FTP, but nothing shows when I use your javascript to show the track playing. Spent hours trying different paths to the xml via the now_playing.php file to no avail. I’m at a loss at what to do. I’ve even tried downloading a fresh copy from your site — no dice. I have to wondering if perhaps something has changed that would cause this to not work? I understand you do not support this anymore so I’m not expecting any real help — but maybe a push in the right direction?

    My image page inside the now_playing.php is $imagepath = “/nowplaying/”; and $xmlfile = “now_playing.xml”; (since it’s in the same directory as the php file) $virtualpath = “/nowplaying/”;

    Thank you so much for any help or guidence.

  • I support the plugin. But I can’t help everybody integrate it into their web site. The scripts are not that complicated. They work out of the box for most folks. But PHP installations can differ. You might be sure warnings and errors are turned on for the script.

  • Jeramiah Young

    Thank you so much for the fast reply. Perhaps you might know how to access the plugin’s UI after installation? I’m on itunes 11.0 and I see no where to access it to turn on debugging

  • FAQ

  • Jeramiah Young

    Thank you so much you’re awesome. And thank you for your help on a Sunday.

  • Jeramiah Young

    I get an error using the latest release: Warning: Cannot modify header information – headers already sent

    by (output started at /home/mysite/public_html/now_playing.php:2) in /home/mysite/public_html/now_playing.php on line 49


    Is this a problem on my end?

  • That is a common PHP issue. It means your script is outputting some text prior to the headers. What text? Probably some warnings or errors. View that info in your browser as a debugging tool.

  • Jeramiah Young

    Nevermind, I can just use your php example. Seems that one is working fine. THanks.

  • Tearstar

    Once again it’s not showing to facebook

  • Hi. I installed this yesterday to use with Facebook. The first song showed in Facebook. It is set to the default of 360 minutes. But nothing showed later in the evening and nothing has shown today either in Facebook. Me confused. I have paid for a license. Please help! 🙂

  • Stathi

    Hi, installed. Posted once OK to FB. Properties and Remove button now grayed out. Hence, cant enable logging. Now what?

  • sinrise

    Found a quick little way to use jQuery to make it so you don’t have to keep refreshing the page: It checks every 30 seconds. You can change it with the setInterval option.


    function checkTime(){




    setInterval(checkTime, 30000);


  • Stephen Taggart

    I’ve purchased the plugin and it works wonderfully on twitter. But the purchased version doesn’t work on Facebook at all. When I attempt to turn it on in Facebook I get the message:

    “Secure browsing is not supported

    This application does not yet support secure browsing (HTTPS). Learn more.”

    The Learn More link brings me to a page to turn on Secure Browsing, which is already on for my Facebook profile, but has no information about turning on Secure Browsing for the app itself.

  • Marc

    Great Plugin Brandon!! Only 1 question: The page does not ‘refresh’ it self, so I see the name of the song when I started. When I refresh I do see the new song. Any tips? I don’t get the ping instructions, can that maybe help, can you explain in details please. ps how do you refresh on your site.

  • Sercio

    Hey, Can you please fix the problem with the Japanese characters! Or can you say us how we can fix this Problem, i’m listening mainly Asian Music so this is a very important problem for me.


  • Guest

    The plugin is no longer posting to Facebook. Since this is the only reason I purchased it, can you look into this and get a fix out ASAP?

  • Saturo Sounds

    Set your twitter up to auto post to Facebook

  • simnkaff

    Hi Brandon, I assume your plugin has also been broken by the latest Apple upgrade ( that is currently screwing everyone on the site and I also that, when you can find out what’s gone wrong (spelt ‘c.h.a.n.g.e.d.’) this time, it will be fixed in due course. The hell of trying to interface with somebody’s ever moving API and requirements eh?

  • Chris

    Hi Brandon, yep your nowplaying itunes plugin has stopped working under the 64bit version of Windows 7, saying it cannot load the “NowPlaying.dll” – apparently iTunes is now a FULL 64 bit version. I hope you can issue an update very soon !

    I tried to install the 32bit version of iTunes on my 64bit Windows OS as I thought I might get it to work that way, but it wouldn’t let.

    Keep up the good work, many thanks, Chris Gregory, UK

  • simnkaff

    Hi Chris, there’s a possible workround listed on which links to the 32 bit updated iTunes. The trick apparently is to remove all of the iTunes related apps and then reboot before trying to install the 32 bit version. That may help you until Brandon can get a full fix ready. I’ve not tried it myself as I’ve found another route that allows posting to I’ll live without NowPlaying for a while.

    • Ellis Godard

      The trick, to be more precise, is to put the DLL file in the 64-bit location (C:program filesitunesplugins rather than C:program files (x86)itunesplugins). The DLL itself then loads and runs fine within the 64-bit environment and program. But the lastfm installation offers a CHOICE to put the file in the 32bit directory; the NowPlaying installation doesn’t offer that choice, it just goes to that latter (… (x86)….) directory. And manually moving the NowPlaying files (DLL and folder) from the 64bit to 32bit plugins directory doesn’t help – you’ll still get the “doesn’t work in 64 bit” error. … But I’d more than happily re-support Brandon w/ another license if he can fix this, as I’m sure many of us would! 🙂

  • Hi Brandon,

    Great plugin, it has been providing a ‘Now Playing’ live feed on a restaurant website I developed for a couple years now.
    Unfortunately they’ve recently upgraded iTunes and broke it, is there going to be any chance of a 64-bit version of the plugin to support the new iTunes?

    Thanks heaps!

  • Previous versions of iTunes are available here:

    I’m going to step back to 12.0.1 (32bit version) and hope for the best

  • The Meal

    FWIW, I emailed Brandon and he’s aware of the issue.

  • Big Messy Man

    Just another vote for a 64 bit version. Found your website and NowPlaying and then…splat. 🙂

    • me too i’m want for a 64 bit vertion

      • I know was working as recent as my last tweet which was on April 19th, but it won’t work today (May 2nd) due to the 64-bit issue. Perhaps I updated something (itunes, windows 7) that I shouldn’t have. Could I encourage you with some Oscar Blues or Left Hand brews?

    • Ellis Godard

      It’s a beautiful tool. Does amazing things, so easily, and with such control and dazzle. Let’s hope he’ll fix it!! 🙂

  • Hey Brandon,

    Very long time supporter and purchaser of NowPlaying. Also looking for a 64-bit version. Thanks mate!

  • Hey brandon I enjoy the plugin on my mac but I need a 64 bit version for windows. Hope you can provide that :).

  • Ellis Godard

    I’ve been a user, donor, and supporter for a decade, tossing another vote in the “if you can, please make a 64 bit version” pile! 🙂

  • Rob Emenecker

    Hey Brandon. I’m having an issue with Now Playing Plugin pushing to Facebook. Wasn’t sure if you were still supporting it or not, so I’m just looking for some guidance, in case the issue is on my end. The log file shows error responses from Facebook API:

    Error validating access token: The session has been invalidated because the user has changed the password. (460)

    I’ve re-authorized the app, but still get this message. I’m wondering if the password error has to do with your application on Facebook, rather than my Facebook account.

    I really enjoy the plugin, so I’m hoping you can help.


    P.S. It pushes to Twitter okay. I just prefer the Facebook push.

  • Michael Selthea

    If I could work with the code for this, I’d be happy to try and compile a 64 bit version.

  • Ned Williams

    Is the 32 bit version still supported I just tried with with itunes 12 on 32bit windows and itunes does not load the plugin?


    It’s not working.