January 30, 2006

Max OS X widget for Radio Paradise playlist

radio paradise widget

I made a Mac OS X Dashboard widget that displays the current playlist from RadioParadise.com, a great internet radio station. It's my first ever widget, so it's not very fancy, but it gets the job done.

The widget shows a scrollable list of the last 6 hours worth of music played, and if you click a song title, it opens the web page on RP's site dedicated to that song. Clicking the main logo takes you to RP's site. It refreshes when you show the Dashboard and you can manually refresh it by clicking the "refresh" link. I may add automatic refreshing in some future release.

Once you've downloaded the widget, unzip it by double-clicking it, then double-click the widget file. For older versions of Mac OS X, you might need to move the files into your home folder's /Library/Widgets folder first.

Apple doesn't seem to publicize this fact, but practically anyone can make a widget. Simple widgets are really just small web pages, and can be made using only HTML, JavaScript, and a couple of images. You should give it a try. I just read Apple's excellent tutorial, looked at the source code for one of their RSS-reading sample widgets, and went from there.

This widget uses JavaScript to extract data from an XML version of RP's playlist. I believe it is technically an AJAX-based widget, albeit a very simple one. A few weeks ago, I wrote a PHP script that generates an RSS feed from that XML.

I'm guessing it's trivial to convert Mac OS X widgets to Konfabulator/Yahoo! Widgets, so I will do that when I get a minute.

categories: Projects, Software
posted by adm at January 30, 2006 10:17 PM

Trackback Pings

TrackBack URL for this entry:
http://www.thousandrobots.com/mt/mt-tb.cgi/1396

Comments

Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Remember me?