In the spirit of holiday presents, I hereby announce the new Internet Radio plugin for Banshee.
I started earlier this week working on a completely new version of the plugin. My primary goal with the new plugin was to offer content that would automatically refresh from a web service. This would allow us to avoid stale streams, provide new content without having to make a release, etc.
We are now serving up station playlists in XSPF format on radio.banshee-project.org. Currently the list of stations is fairly limited, but expect this to grow very shortly and before the 0.11.4 release (which will be very soon).
To make this possible, I first implemented the XSPF spec, then started hacking on the UI for it. Once I had the UI mostly done, to the point where I could start playing streams, I started focusing on making the actual streaming experience really slick. Most of my testing in this area has been against the Helix backend, as it has very rich streaming media support, and my GStreamer install on my SLED box doesn’t support “radio” metadata (though I hear this is fixed in later releases due to the new icydemux element).
That said, if you have the Helix backend installed for Banshee, you’re in for a real treat. “Proper” Real Audio streams will send metadata on track change which includes full artist, album, track, and duration data. This means that the songs you hear in the live stream will actually appear as separate tracks in the UI, with the only difference being seeking is not supported. The position/duration slider/label behaves as expected, which is really sweet. However, if all the proper tag messages come in from the GStreamer backend, this should all “just work” if you have the latest GStreamer and listen to a rich stream.
I also implemented a new metadata service API and a Rhapsody web serivces backend for it. I’ll migrate the MusicBrainz support in Banshee to this new metadata service soon as well. This means that when you start playing a song, be it local/in-your-library, or part of a remote stream, the respective web services are queried immediately and metadata is returned. Basically, it comes down to seeing more cover art in your Banshee experience, even when playing rich radio stations.
The Recommendations plugin was also updated to work with virtual tracks in streams, so with all the updates combined,Internet Radio has some really, really awesome potential. The problem is just finding streams that send rich metadata updates. Anything that sends at least an artist and album should work with the live cover art fetcher and Recommendation plugins, and the experience can get even better if durations are sent too.
The screenshot above shows what you can experience if you play a RadioPass station from Rhapsody.com. It’s rather sweet. And of course, the track notification/libnotify bubbles work for virtual tracks in streams as well :-).
You’ll need the latest updates from banshee SVN in GNOME (woo, no more CVS!) and the latest banshee-official-plugins from Banshee SVN (soon to move to GNOME SVN) to try this all out.
I’ll start working on the UI for manually adding your own radio streams soon. It’ll be in for 0.11.4. Currently only stations loaded from radio.banshee-project.org will show up in the UI.
The best to all in 2007!