The Echo Nest Song API

This weekend at the Amsterdam Music Hack day we are releasing lots of new stuff. First of all, we opening up beta access to the next version of our APIs.  This version is an all new architecture – that I’m rather excited about. Some new features:
  • Performance – api method calls run faster – on average API methods are running 3X faster than the older version.
  • JSON Output – all of our methods now support JSON output in addition to XML.  This greatly simplifies writing client libraries for the Echo Nest
  • Nimble coding – with the new architecture it will be much easier for us to roll out new features – so expect to see new features added to the Echo Nest platform every month
  • No cruft – we are revisiting our APIs to try to eliminate inconsistencies, redundancies and unnecessary features to make them as clean as we can.

The beta version of our next generation APIs are here:  http://beta.developer.echonest.com/

The first significant new API we are adding is the Song API – this gives you all sorts of ways to search for and retrieve song level data.  With the song API you can do the following:

  • search for songs via  artist name, song title, and description. You can affect the results with constraints and sorts:
    • constrain the results by a number of factors including musical attributes like tempo, loudness, time signature and key, artist hotttnesss, location
    • sort – the results by any of the attributes
  • Find similar songs – find similar songs to  a seed song
  • Find profile – get all sorts of info about a song including audio, audio summary info, track data for different catalogs, song hottttnesss, artist_hotttnesss, artist_location, and detailed track analysis
  • Identify songs – works in conjunction with the ENMFP

There are lots of things you can do with this API. Here’s just a quick sample of the types of queries you can make:

Find the loudest thrash songs

song/search?sort=loudness-desc&description=thrash

Find indie songs for jogging

song/search?min_tempo=120&description=indie&max_tempo=125

Fetch the tempo of Hey Jude

search?title=hey+jude&bucket=audio_summary&artist=the+beatles

Fetch the track audio and analysis of Bad Romance

search?title=bad+romance&bucket=tracks&bucket=id:paulify&artist=lady+gaga

Find songs similar to Bad Romance

song/similar?id=SOAOBBG127D9789749

We have two clients that support the new beta version of the API:
  • jen-api – a java client
  • beta_pyechonest – a new branch of the venerable pyechonest library. Grab it from SVN with
svn checkout http://pyechonest.googlecode.com/svn/branches/ beta-pyechonest-read-only

I’ll be writing more about all of the new APIs real soon.   Access the beta Echo Nest APIs here:

http://beta.developer.echonest.com/

, , ,

%d bloggers like this: