Last.FM, and MyLastFM - an open source c# player for Last.FM radio
Summary: Last.FM is cool, but their player desktop application is pretty horrible. MyLastFM is the beautiful player that Last.FM deserves. myLastFM has always been free, but now it's better than ever and open source.
What's Last.FM?
Last.FM is difficult to describe. The best way to understand it is to take 2 minutes, get a free account, and try it out. I've been a fan of Last.FM ever since I stumbled across it while searching for info on a new album last fall1, and saw detailed reports on the musical preferences of individual listeners. It's been compared to other music recommendation engines like Pandora, but I immediately saw something much more interesting: the first useful example of Attention data I've seen. That's a killer combo - I'm into music, I'm very interested in Attention data.
So here's my elevator speech on Last.FM: LastFM is "myware" - spyware used for good. You sign up for a free account and install the plugin for your favorite music player (iTunes, Windows Media Player, Winamp, etc.). The plugin uploads the name and artist info for each song you play to your personal profile. Then, you wait... Two cool thing happen after a bit:
- You get personalized charts that show your favorite songs and artists, both recently and all-time. That alone is worth a few minutes to set it up - a free service that shows you what you're listening to is a cool idea.
- After you listen to 100 songs, you get recommendations and a personal radio station based on the music you've been listening to. What's cool is that they figure this out based on other Last.FM listeners who listen to the same sort of music you do rather than trying to figure it out, which I think is a better approach. Sweet goodness, we've got ourselves a collaborative filter. They definitely get the whole long tail thing, too - check out the cool recommendations slider from popular to obscure. If you pay $3 a month, you get a few more radio staions which is kind of cool. Now, lotsa folks would get hung up on the personalized recommendations, but I think insight into your own personal profile is as least as interesting. That's not to say that the recommendations haven't been interesting, but I've been surprised by how interesting it is to see detailed charts on my musical tastes.
But, the personalized radio player that Last.FM offers is lame. Try it if you don't believe me. Last.FM's radio station architecture is pretty cool, though. The official player actually just calls webservices which control an MP3 stream, so you can build separate controller programs which call the webservices and launch default music player application (iTunes, WMP, etc) to play the MP3 stream. I started poking around at the webservices last October, thinking I'd write write my own player. In my searches, I stumbled across myLastFM.
Meet myLastFM
There are actually a few custom Last.FM players out there, but the coolest by far is Eric Willis' myLastFM. Eric wrote this c# winform app back in January 2005 and it quickly developed a devoted following. When I tried it, though, back in October 2005, it hadn't been updated for a while and wasn't up to date with the latest webservices so some of the features weren't working. I got in touch with Eric and helped out on the 0.8 release, which works with the latest standards, and includes a lot of great features like a built in MP3 player, auto login, and support for WMP as an external player. This release is also the first open source release of myLastFM - we put it out on SourceForge (thanks again for the great SourceForge project setup walkthrough, Phil!).
We'd love some help on the project, so let us know if you'd like to get involved. Working on an open source project is probably the best single thing you can do to grow as a developer. What's more fun than working on a music player that always plays your favorite songs?
Please use the Sourceforge bug tracker to report bugs or problems, not the comments section of this blog post.
1Okay, honestly, I was egosurfing to see if anyone liked a remix I'd done.