Using the wisdom of the crowds to build better playlists
At music sites like Rdio and Spotify, music fans have been creating and sharing music playlists for years. Sometimes these playlists are carefully crafted sets of songs for particular contexts like gaming or sleep and sometimes they are just random collections of songs. If I am looking for music for a particular context, it is easy to just search for a playlist that matches that context. For instance, if I am going on roadtrip there are hundreds of roadtrip playlists on Rdio for me to chose from. Similarly, if I am going for a run, there's no shortage of running playlists to chose from. However, if I am going for a run, I will need to pick one of those hundreds of playlists, and I don't really know if the one I pick is going to be of the carefully crafted variety or if it was thrown together haphazardly, leaving me with a lousy playlist for my run. Thus I have a problem - What is the best way to pick a playlist for a particular context? Naturally, we can solve this problem with data. We can take a wisdom of the crowds approach to solving this problem. To create a running playlist, instead of relying on a single person to create the playlist, we can enlist the collective opinion of everyone who has ever created a running playlist to create a better list. I've built a web app to do just this. It lets you search through Rdio playlists for keywords. It will then aggregate all of the songs in the matching playlists and surface up the songs that appear in the most playlists. So if Kanye West's Stronger appears in more running playlists than any other song, it will appear first in the resulting playlist. Thus songs, that the collective agree are good songs for running get pushed to the top of the list. It's a simple idea that works quite well. Here are some example playlists created with this approach: Best Running Songs http://www.rdio.com/people/plamere/playlists/5773579/Top_best_running_songs_via_SPB/ Coding http://www.rdio.com/people/plamere/playlists/5773559/Top_coding_songs_via_SPB/ Sad Love Songs http://www.rdio.com/people/plamere/playlists/5773508/Top_sad_love_songs_songs_via_SPB/ Chillout http://www.rdio.com/people/plamere/playlists/5773867/Top_chillout_songs_via_SPB/ Date Night http://www.rdio.com/people/plamere/playlists/5773474/Top_date_night_songs_via_SPB/ Sexy Time http://www.rdio.com/people/plamere/playlists/5773535/Top_sexytime_songs_via_SPB/ This wisdom of the crowds approach to playlisting isn't limited to contexts like running or coding, you can also use it to give you an introduction to a genre or artist as well. Country http://www.rdio.com/people/plamere/playlists/5773544/Top_country_songs_via_SPB/ Post Rock http://www.rdio.com/people/plamere/playlists/5773642/Top_post_rock_songs_via_SPB/ Weezer http://www.rdio.com/people/plamere/playlists/5773606/Top_weezer_songs_via_SPB/ The Smart Playlist Builder The app that builds these nifty playlists is called The Smart Playlist Builder. You type in a few keywords and it will search Rdio for all the matching playlists. It will show you the matching playlists, giving you a chance to refine your query. You can search for words, phrases and you can exclude terms as well. The query sad "love songs" -country will search for playlists with the word sad, and the phrase love songs in the title, but will exclude any that have the word country.
When you are happy with your query you can aggregate the tracks from the matching playlists. This will give you a list of the top 100 songs that appeared in the matching playlists.
If you are happy with the resulting playlist, you can save it to Rdio, where you can do all the fine tuning of the playlist such as re-ordering, adding and deleting songs.
The Smart Playlist Builder uses the really nifty Rdio API. The Rdio folks have done a fantastic job of giving developers access to their music and data. Well done Rdio team! Go ahead and give The Smart Playlist Builder a try to see how the wisdom of the crowds can help you make playlists.