When I found out that they were exposing their music catalog content through a web service, I was delighted. You see, I subscribe to the Rhapsody streaming music service for something in the range of $9 / month, and typically listen to streamed audio using an old internet connected laptop that is tethered connected to my glorious home stereo. It works great, except that I really could use a remote control!
The not so glorious end result is that to queue up the music I want to hear, I have to use another computer to remote desktop into the laptop and use the Rhapsody windows client hosted on the laptop to queue up a playlist, search for and select songs or look up artists I want to hear etc. There are some existing hardware solutions like the
Sonos music system, that connect to the Rhapsody client using UPnP, but for the most part, those tend to only give you remote access to the playlists that you have explicitly created and saved - with no search functionality or access to the raw Rhapsody music catalog. This prohibits browsing music in an ad-hoc way looking for new similar artists, searching etc - which in my opinion is actually the core value proposition of the Rhapsody web service.
So now that you've heard the need (and I suspect I'm not the only subscriber who feels this way), the solution I wanted to build involved creating a "Rhapsody Remote" out of a Pocket PC that I had laying around. I knew I could set up a service on the laptop that would forward control messages to the client GUI to queue and play songs and maybe even use UPnP... but the Rhapsody web services provided the missing piece - programmatic access to the music catalog for browsing and discovering music on the Pocket PC. Rhapsody announced a developers contest recently, so it gave me an extra incentive to give it a go.
I've been working on this project for the past 2 months and in the process have ended up creating not only the pocket pc remote which you can download here, but also the start of something much more valueable - something that I am dubbing the OpenRhap.Net framework.
The value proposition of the OpenRhap.Net framework is that it provides a rich, navigable domain model for .Net developers who wish to integrate access to the Rhapsody music catalog into their .Net applications. In fact, if you take much of a look at the libraries in OpenRhap.Net you will find that I actually took it one step further and implemented the specifics of accessing the Rhapsody music catalog in a "Provider" that plugs in to a generic "Media Catalog" API. If you wanted to, you could develop other providers that use the file system or UPnP or whatever else that would be accessible from the same interface.