The Spotified Billboard Charts – now with real playlists

December 1, 2009

Last month I Spotified the Billboard charts by using the Billboard and Spotify APIs.  However, I wasn’t actually able to create real Spotify playlists since the Spotify web API doesn’t allow creating or manipulating playlists.  But now I’m a premium Spotify user and as a premium user I can use the libspotify / despotify API to do just about anything that the official Spotify client can do.  With my new found Spotify superpower, I revamped my Billboard charts creator to create real Spotify playlists:

The Spotified Billboard Singles Charts

Instead of having to click on every song to listen to it, just click on the chart – this will open the Spotify playlist – hit play and you’ll be in Billboard chart heaven (or hell, depending on your music taste).

To interact with Spotify I used Jotify – a Java client library (based on despotify)  for Spotify.  Jotify is  well written, full featured library written by Felix Bruns (who has been extremely helpful in answering my questions).   I highly recommend Jotify.


Software that makes you buy hardware

November 14, 2009

Some software is so good is makes you want to buy hardware so you can run it best.  The classic example is Visicalc which is responsible for making the Apple ][ successful.  Over the years a few software apps have been compelling enough that I bought hardware for them:

  • AppleWriter -> 80 column card - The original Apple ][ could only render a 40 character wide, uppercase display.  However,  one of the first WYSIWYG word processors, AppleWriter supported an 80 column card.  This was a card you'd plug into a slot in the back of the Apple that will let it render 80 column, mixed-case text.  It was a must for word processing.  
     snap27
  • Doom -> Gravis Ultrasound - Doom was the breakout 3D FPS shooter.  It also had awesome sound support – spatial audio with a kickass sound track.  The best way to render all that audio was the Gravis Ultrasound. It had really fine sounding midi soundbanks to make the distorted electric guitars sound like it came from a NiN album.  I can still remember with great fondness the soundtrack for Episode 1, Level 1:
  • Quake – > 3DFx Voodoo –  the first gaming 3D accelerator (remember video passthrough cables)- all of a sudden 3D FPS games could render at 25 Frames per second.
      voodoo1

It has been a while since I’ve been engaged enough with a piece of software to buy some hardware for it. Sure I’ve upgraded memory and video cards to run a new game, but those were natural upgrade stepping stones aligned with the release of software.  However, now, once again,  I find myself with a piece of software that makes me want to upgrade my hardware in order that I can get the most out of the software.  The software is the Spotify iPhone app.

 

photo

I installed the Spotify app on my 1st gen iPhone yesterday and have been playing with it all day.  There’s something about having 5 million songs available in my pocket ready to listen to that is just indescribable.    On the drive home, I listened to the WeAreHunted playlist, During dinner time with my 14 year old daughter we listened to the Glee soundtrack.  On my after dinner walk I listened to some tracks that  I hadn’t listen to since High School.   It is quite an interesting feeling to be out in the middle of nowhere, have a song come to mind, and moments later be listening to it.  And so I want more.  My feeble 1st gen iPhone with its edge network doesn’t get the music fast enough for me, so I have to rely on Wifi syncing.  Plus the paltry memory size leaves me with less than 2GB  for the local Spotify audio cache. Perhaps enough for  a thousand songs, but I want more!  And so I shall be upgrading my iPhone soon – the 3G and 32GB footprint will help me take full advantage of  this wonderful app.


Spotifying over 200 Billboard charts

November 8, 2009

Yesterday, I Spotified the Billboard Hot 100 – making it easy to listen to the charts.  This morning I went one step further and Spotified all of the Billboard Album and Singles charts.

The Spotified Billboard Charts

That’s 128 singles charts (which includes charts like Luxembourg Digital Songs, Hot Mainstream R&B/Hip-Hop Song and Hot Ringtones ) and 83 album charts including charts like Top Bluegrass AlbumsTop Cast Albums and Top R&B Catalog Albums.

In these 211 charts you’ll find 6,482 Spotify tracks, 2354 being unique (some tracks, like Miley Cyrus’s ‘The Climb’ appear on many charts).

Building the charts stretches the API limits of the Billboard API (only 1,500 calls allowed per day!), as well as stretches my patience (making about 10K calls to the Spotify API while trying not to exceed the rate limit, means it takes a couple of hours to resolve all the tracks).  Nevertheless, it was a fun little project.  And it shows off the Spotify catalog quite well.  For popular western music they have really good coverage.

Requests for the Billboard API: Please increase the usage limit by  10 times.  1,500 calls per day is really limiting, especially when trying to debug a client library.

Requests for the Spotify API: Please, Please Please!!! – make it possible to create and modify Spotify playlists via web services.


The Billboard Hot 100. In Spotify.

November 7, 2009

Inspired by Oscar’s 1001 Albums You Must Hear Before You Die …. in Spotify I put together an app that gets the Top charts from Billboard (using the nifty Billboard API) and resolves them to a Spotify ID – giving you a top 100 chart that you can play.

The Billboard Hot 100 in Spotify

Here’s the Top 10:

  1. I Gotta Feeling by The Black Eyed Peas
    Weeks on chart:16 Peak:1
  2. Down by Jay Sean Lil Wayne
    Weeks on chart:13 Peak:2
  3. Party In The U.S.A. by Miley Cyrus
    Weeks on chart:7 Peak:2
  4. Run This Town by Jay-Z, Rihanna & Kanye West
    Weeks on chart:9 Peak:2
  5. Whatcha Say by Jason DeRulo
    Weeks on chart:7 Peak:5
  6. You Belong With Me by Taylor Swift
    Weeks on chart:23 Peak:2
  7. Paparazzi by Lady Gaga
    Weeks on chart:5 Peak:7
  8. Use Somebody by Kings Of Leon
    Weeks on chart:35 Peak:4
  9. Obsessed by Mariah Carey
    Weeks on chart:12 Peak:7
  10. Empire State Of Mind by Jay-Z + Alicia Keys
    Weeks on chart:3 Peak:5

Note that the Billboard API purposely offers up slightly stale charts, so this is really the top 100 of a few weeks ago.  I never listen to the Top 100, and I hadn’t heard of 50% of the artists so listening to the Billboard Top 100 was quite enlightening.  I was surprised at how far removed the Top 100 is from the music that I (and everyone I know) listen to every day.

To build the list I used my Jspot – and a (yet to be released) Java client for the Billboard API. (If you are interested in this API, let me know and I’ll stick it up on google code).  Of course it’d be really nifty if you could specify get and listen to a chart for a given week (i.e. let me listen to the Billboard chart for the week that I graduated from High School).  Sound like something to do for Boston Music Hackday.

Update: I’ve made another list that is a little bit more inline with my own music tastes:

The Spotified Billboard Top Modern Rock/Alternative Albums


Where is my JSpot?

November 3, 2009

I like Spotify.  I like Java.  So I combined them.  Here’s a Java client for the new Spotify metadata API:  JSpot

This client lets you do things like search for a track by name and get the Spotify ID for the track so you can play the track in Spotify.  This is useful for all sorts of things like building web apps that use Spotify to play music, or perhaps to build a Playdar resolver so you can use Spotify and Playdar together.

Here’s some sample code that prints out the popularity and spotify ID for all versions of Weezer’s  ‘My Name Is Jonas’.

    Spotify spotify = new Spotify();
    Results<Track> results = spotify.searchTrack("Weezer",  "My name is Jonas");
    for (Track track : results.getItems()) {
       System.out.printf("%.2f %s \n", track.getPopularity(), track.getId());
    }

This prints out:

0.75 spotify:track:3Lyv4TVrqSXeCm1GVUw7VG
0.00 spotify:track:5tyHxEsVUFUsb1yzAObAxu
0.09 spotify:track:4etev8JAC5cOJ3cgkZcpyc

If you have Spotify and you click on those links, and those tracks are available in your locale you should hear Weezer’s nerd anthem.

You can search for artists, albums and tracks and you can get all sorts of information back such as release dates for albums, countries where the music can be played, track length, popularity for artists, tracks and albums.  It is very much a 0.1 release. The search functionality is complete so its quite useful, but I haven’t implemented the ‘lookup’ methods yet.   There some javadocs.  There’s a jar file: jspot.jar.  And it is all open source: jspot at google code.


Spotify for the iPhone

July 27, 2009

On the Spotify blog they have a video of the latest version of the Spotify iPhone app that has just been submitted to the iPhone app store for approval. Notice how on the video, the Spotify client  is in the position on the home screen that the iPod app normally occupies.  I wonder if Apple is going to like this.

Some of the interesting details emerging about the app are:

  • Won’t be released in the US app store since Spotify is not available in the U.S (sniff)
  • Free Download
  • Only works for premium users
  • Offline mode allows you to cache 3,333 tracks (!)
  • Works on iPod touch
  • Music stops when you switch away from the app

I’m really looking forward to being able to run this app.   And rumor is that  it won’t be long before people in the US get to play.


I may never use iTunes again

May 28, 2009

On the Spotify blog there’s a video demo of Spotify running on Android (the Google mobile OS).   This is a demo of work-in-progress, but already it shows that just as Spotify is pushing the bounds on the desktop, they are going to push the bounds on mobile devices.  The demo shows that  you get the full Spotify experience on your device.  You can listen to just about any song by any artist.  No waiting for music to load, it just starts playing right away.  All your Spotify playlists are available on your device. You don’t have to do  that music shuffle game that you play with the iPod – where you have to decide on Sunday what songs you will want to listen to on Tuesday.

I think  the killer feature in the demo is offline syncing.  You can make any playlist available for listening even when you are offline.  When you mark a playlist for offline sync, the  tracks in the playlist are downloaded to your device allowing you to listen to them in those places that have no Internet connection (such as a plane, the subway or Vermont).    The demo also shows how Spotify keeps all your playlists magically in sync.  Add a song to one of your Spotify playlists while sitting at your computer and the corresponding playlist on your device is instantly updated. Totally cool.  I do worry that the record labels may balk at the offline sync feature.  Spotify  may be pushing the bounds further than the labels want to go,  by letting us listen to any music at any time, whether at home, in the office or mobile.

Much of my daily music listening is now through the Spotify desktop client.  The folks at Spotify continue to add music at a phenomenal rate (100K new tracks in the last week).    The only reason I ever fire up iTunes now is to synchronize music to my iPhone.  It is no secret that Spotify is also working on an iPhone version of their mobile app.  I can’t wait to get a hold of it.  When that happens, I may never use iTunes again.

Check out the demo:


Spotify + Echo Nest == w00t!

May 19, 2009

spotify-logoYesterday, at the SanFran MusicTech Summit, I gave a sneak preview that showed how Spotify is tapping into the Echo Nest platform to help their listeners explore for and discover new music.  I must say that I am pretty excited about this. Anyone who has read this blog and its previous incarnation as ‘Duke Listens!’ knows that I am a long time enthusiast of Spotify (both the application and the team).    I first blogged about Spotify way back in January of 2007 while they were still in stealth mode. I blogged about the Spotify haircuts,   and their serious demeanor:

Those crazy Spotify guys

Those crazy Spotify guys

I blogged about the Spotify application when it was released to private beta: Woah – Spotify is pretty cool, and continued to blog about them every time they added another cool feature.

I’ve been a daily user of Spotify for 18 months now. It is one of my favorite ways to listen to music on my computer.  It gives me access to just about any song that I’d like to hear (with a few notable exceptions – still no Beatles for instance).

It is clear to anyone who uses Spotify for a few hours that having access to millions and millions of songs can be a bit daunting.   With so many artists and songs to chose from, it can be hard to decide what to listen to – Barry Schwartz  calls this the Paradox of Choice -  he says too many options can be confusing and can create anxiety in a consumer.   The folks at Spotify understand this. From the start they’ve been building tools to help make it easier for listeners to find music.  For instance, they allow you to easily share playlists with your friends.   I can create a music inbox playlist that any Spotify user can add music to. If I give the URL to my friends (or to my blog readers) they can add music that they think I should listen to.

Now with the Spotify / Echo Nest connection, Spotify is going one step further in helping their listeners deal with the paradox of choice. They are providing tools to make it easier for people to explore for and discover new music.  The first way that Spotify is tapping in to the Echo Nest platform is very simple, and intuitive.  Right click on a playlist, and select ‘Extend Playlist’.  When you do that, the playlist will automatically be extended with songs that fit in well with songs that are already in the playlist.  Here’s an example:

spotify-echonest-example.1.1

So how is this different from any other music recommender?   Well, there are a number of things going on here.  First of all, most music recommenders rely on collaborative filtering (a.k.a. the wisdom of the crowds), to recommend music.  This type of music recommendation works great for popular and familiar artists recommendations … if you like the Beatles, you may indeed like the Rolling Stones.  But Collaborative Filtering (CF) based recommendations don’t work well when trying to recommend music at the track level.  The data is often just to sparse to make recommendations.  The wisdom of the crowds model fails when there is no crowd.  When one is dealing with a Spotify-sized music collection of many millions of songs, there just isn’t enough  user data to give effective recommendations for all of the tracks. The result is that popular tracks get recommended quite often, while less well known music is ignored.  To deal with this problem many CF-based recommenders will rely on artist similarity and then select tracks at random from the set of similar artists.  This approach doesn’t always work so well, especially if you are trying to make playlists with the recommender. For example, you may want a playlist of acoustic power ballads by hair metal bands of the 80s.  You could seed the playlist with a song like Mötley Crüe’s Home Sweet Home, and expect to get similar power ballads, but instead you’d find your playlist populated with standard glam metal fair, with only a random chance that you’d have other acoustic power ballads.  There are a boatload of other issues with wisdom of the crowds recommendations – I’ve written about them previously, suffice it to say that it is a challenge to get a  CF-based recommender to give  you good track-level recommendations.

The Echo Nest platform takes a different approach to track-level recommendation. Here’s what we do:

  • Read and understand what people are  saying about music – we crawl every corner of the web and read every news article, blog post, music review and web page for every artist, album and track.  We apply statistical and natural language processing to extract meaning from all of these words. This gives us a broad and deep understanding of the global online conversation about music
  • Listen to all music – we apply signal processing and machine learning algorithms to audio to extract a number perceptual features about music.  For every song, we learn a wide variety of attributes about the song including the timbre, song structure, tempo, time signature, key, loudness  and so on. We know, for instance, where every drum beat falls in Kashmir, and where the guitar solo starts in Starship Trooper.
  • We combine this understanding of what people are saying about music and our understanding of what the music sounds like to build a model that can relate the two – to give us a better way of modeling a listeners reaction to music.  There’s some pretty hardcore science and math here.  If you are interested in the gory details, I suggest that you read Brian’s Thesis: Learning the meaning of music.

What this all means is that with the Echo Nest platform, if you want to make a playlist of acoustic hair metal power ballads, we’ll be able to do that – we know who the hair metal bands are, and we know what a power ballad sounds like.  And since we don’t rely on the wisdom of the crowds for recommendation we can avoid some of the nasty problems that collaborative filtering can lead to.  I think that when people get a chance to play with the ‘Extend Playlist’ feature they’ll be happy with the listening experience.

It was great fun giving the Spotify demo at the SanFran MusicTech Summit.  Even though Spotify is not available here in the U.S., the buzz that is occuring in Europe around Spotify is leaking across the ocean. When I announced that Spotify would be using the Echo Nest, there’s was an audible gasp from the audience.   Some people were seeing Spotify for the first time, but everyone knew about it. It was great to be able to show Spotify using the Echo Nest.  This demo was just a sneak preview.  I expect there will be lots more interestings to come. Stay tuned.


The ultimate Spotify blog

March 9, 2009

SpotifyIf you use Spotify, you should check out The Pansentient League, where blogger Jer White blogs about all things spotify.   For instance, Jer recently compared 10 different Spotify playlist sites listing their pluses and minuses. He’s also maintaing a complete list of Spotify Resources.  Pansentient is a pretty handy site.


the sound of a million passwords changing

March 4, 2009

A bad day for my friends at Spotify. First the news of a security breach that compromised the personal information of their one million users – followed by the outage of the Spotify.com website as a million people all tried to change their passwords at once.  But despite all of this trouble, the Spotify player kept playing music.

badspot

It is interesting to see how Spotify is handling their first big crises. So far, they seem to be doing most things right -  they are being open about what the problem was and they have already fixed the problem that has caused the breach.   Looks like they may need to be a bigger web server though.