The Super Awesome Music Blog Finder Thingy ™ - exfm labs
An excellent little service: give it your Last.fm username and it finds music blogs you’ll probably like. I’ve found a treasure trove of Huffduffer sources through this.
An excellent little service: give it your Last.fm username and it finds music blogs you’ll probably like. I’ve found a treasure trove of Huffduffer sources through this.
Matt encapsulates a lot of what I've been thinking about recently: the real-time web is all well and good, but let's not forsake the enormous potential for fulfilment in archives.
A great write-up of the latest additions to the Guardian's Open Platform API including a lukewarm assessment of Semantic Web technologies like RDF.
Best. Robots.txt file. Ever.
A cute little mashup: find out what you were listening to according to Last.fm when you were posting to Twitter.
I’ve already described how machine tags on Huffduffer trigger a number of third-party API calls. Tagging something with music:artist=...
, book:author=...
, film:title=...
or any number of similar machine tags will fire off calls to places like Amazon, The New York Times, or Last.fm.
For a while now, I’ve wanted to include Flickr in that list of third-party services but I couldn’t think of an easy way of associating audio files with photos. Then I realised that a mechanism already exists, and it’s another machine tag. Anything on Flickr that’s been tagged with lastfm:event=...
will probably be a picture of a musical artist.
So if anything is tagged on Huffduffer with music:artist=...
, all I need to do is fire off a call to Last.fm to get a list of that artist’s events using the method artist.getEvents
. Once I have the event IDs I can search Flickr for photos that have been machine tagged with those IDs.
There’s just one problem. Last.fm’s API only returns future events for an artist. There’s no method for past events.
Undeterred, I found a RESTful interface that provides the past events of an artist on Last.fm. The format returned isn’t JSON or XML. It’s HTML. It turns out that past events are freely available in the profile for any artist on Last.fm with the identifier last.fm/music/{artist}/+events/{year}
. Here, for example, are Salter Cane gigs in 2009: last.fm/music/Salter+Cane/+events/2009
.
If only those events were structured in hCalendar! As it is, I have to run through all the links in the document to find the href
s beginning with the string http://www.last.fm/event/
and then extract the event ID that immediately follows that string.
Once I’ve extracted the event IDs for an artist, I can fire off a search on Flickr using the flickr.photos.search
method with a machine_tags
parameter (as well as passing the artist name in the text
parameter just to be sure).
Here’s an example result in the sidebar on Huffduffer: huffduffer.com/tags/music:artist=Bat+for+Lashes
It’s messy but it works. I guess that’s the dictionary definition of a hack.
A few weeks back, I saw that Fanfarlo were going to be playing at The Hanbury Ballroom in Brighton this Wednesday. I figured I’d probably end up going to the gig so I marked myself as “maybe attending” on the event page on Last.fm.
Fast forward to last week and I’m browsing through the list of upcoming events in Brighton on Last.fm. I see that The Fiery Furnaces will be playing in The Prince Albert on October 7th. When I click through to the event page, this is what I see:
Don’t forget you might be going to Fanfarlo at The Hanbury Club on the same date.
That’s nice. That’s really nice. It’s a small touch but it’s the combination of all those small things that adds up to a pleasant experience. This felt …thoughtful.
Of course, it still doesn’t change the fact that I have to choose between Fanfarlo and The Fiery Furnaces.
Rev. Dan Catt's augmented reality future is here; it just isn't evenly distributed yet.
After I wrote about the hoops I had to jump through to get Amazon’s API to output JSON (via XSLT), Tom detailed a way of avoiding JSON by using XML-RPC. That’s very kind of him but the truth is that:
Anyway, having successfully created a Huffduffer-Amazon bridge using machine tags, I thought I’d do a little more hacking. Instead of restricting the mashup love to Amazon, I figured that Last.fm would be the perfect place to pull in information for anything tagged with the music
namespace.
Last.fm has quite a full-featured API and yes, it can output JSON. To start with, I’m using the artist.getInfo
method for anything tagged with music:artist=...
, music:singer=...
or music:band=...
. Here are some examples:
I’m pulling a summary of the artist’s bio, a list of similar artists and a picture of the artist in question. For maximum effect, view in Safari, the browser with the finest implementation of CSS3’s box-shadow
property.
Nice as Last.fm’s API is, it’s not without its quirks. Like most APIs, the methods are divided into those that require authentication (anything of a sensitive nature) and those that don’t (publicly available information). The method user.getInfo
requires authentication. Yet, every piece of information returned by that method is available on the public profile.
So when I wanted to find a Last.fm user’s profile picture—having figured out through Google’s Social Graph API when someone on Huffduffer has a Last.fm account—it made far more sense for me to use hKit to parse the microformatted public URL than to use the API method.
Just over two years ago, Drew delivered a superb presentation called Can Your Website Be Your API? In some situations, the answer is definitely “Yes.”
Update: It all ties together, as Julian explains on Twitter:
@adactio ha, I went to Drew’s presentation you mentioned on your blog; it made me add microformats to Last.fm in the first place :D
One of the runners-up in the Last.fm hackday, this is a simple little service that tells you what band you should be listening to.
The Last.fm hack day took place in London yesterday. Much nerdy fun was had by all and some very cool hacks were produced.
Nigel made a neat USB-powered arduino-driven ambient signifier à la availibot that lights up when one of your friends is listening to music. Matt made Songcolours which takes your recently listened-to music, passes the songs through LyricWiki, extracts words that are colours, passes them through the Google chart API and generates a sentence of cut up lyrics (Hannah’s was the best: love drunk home fuck good night
). The winning hack, Staff Wars, is a Last.fm-powered quiz that allows people to battle for control of the office stereo—something that could prove very useful at Clearleft.
I knew I’d never be able to compete with the l33t hax0rs in attendance, so I cobbled together a very quick little hack to enhance Huffduffer. I hacked it together fairly quickly which gave me some time to hang out with Hannah in the tragically hip environs of Shoreditch. My hack has one interesting distinguishing feature: it doesn’t make use of the API. Instead, it uses two simpler technologies: microformats and RSS.
rel="me"
. If that URL also links back to the Last.fm profile with rel="me"
—even if in a roundabout way—that reciprocal link will be picked by Google’s Social Graph API. I’m already making use of that API on Huffduffer to display links to other profiles under the heading Elsewhere. So if someone provides a URL when they sign up to Huffduffer and they’re linking to their social network profiles, I can find out if they use Last.fm and what their username is. The URL structure of user profiles is consistent:
http://www.last.fm/user/USERNAME
.enclosure
s. The URL structure of these podcasts is consistent: http://ws.audioscrobbler.com/2.0/user/USERNAME/podcast.rss
.So if, thanks to magic of XFN, I can figure out someone’s Last.fm username, it’s a simple matter to pull in their recommended music podcast. I’m pulling in the latest three recommended MP3s and displaying them on Huffduffer user profiles under the heading Last.fm recommends
. You can see it in action on my Huffduffer profile or the profiles of any other good social citizens like Richard, Tom or Brian.
This isn’t the first little Huffduffer hack I’ve built on top of the Social Graph API. If a Huffduffer user has a Flickr account, their Flickr profile picture is displayed on their Huffduffer profile. When I get some time, I need to expand this little hack to also check for Twitter profiles and grab the profile picture from there as a fallback.
None of these little enhancements are essential features but I like the idea of rewarding people on Huffduffer for their activity on other sites. Ideally I’d like to have Huffduffer’s recommendation engine being partially driven by relationships on third-party sites. So your user profile might suggest something like, You should listen to this because so-and-so huffduffed it; you know one another on Twitter, Flickr, Last.fm…
Matt's bit of fun from the Last.fm hackday. Hannah's had the best generated lyric juxtaposition, "love drunk home fuck good night."
End of the year charts based on real data: "Based entirely on your scrobbling, this is a real look at what you've been listening to (not just buying). The charts are ranked by total number of listeners."
The first ever Last.fm hack day is taking place in London on December 14th. I'll be there.
The Evening Standard picks up the story of Silicon Roundabout: Last.fm, Dopplr, Schulze and Webb, Moo...
The Last.fm beta redesign is now available for the great unwashed masses to test.
If, like me, you were going cold turkey on Mobile Scrobbler after updating your jailbroken iPhone/iPod Touch, you can stop sweating now. The official Last.fm app is really, really nice ...and it's free.
Remember when I blogged about wanting to be able to scrobble the music that someone else in the same room as me is playing? Well, Brad Dougherty has built it.
Last.fm have gathered together the best apps built on their API and put them all in one handy browsable spot.
A handy little service that creates an RSS feed of upcoming music releases based on your Last.fm listening history.