Project Details

Type Website
Client John Price
Duration April 2010 until April 2010

Technologies, Languages & Frameworks Used

Services Used

Related Blog Posts


Playlist sharing and discovery service

  • Case study by John
  • October 14th, 2010
  • Updated on March 27th, 2011

Mixtaper is a playlist sharing and discovery website. It allows people to create playlists of any length (with a minimum length of 10 tracks) anonymously, and publish them to the web. These published playlists are accompanied by methods of playback using either Spotify or Grooveshark (depending on the availability of tracks in the playlists on those services).

NOTE: Mixtaper has in effect been complemented by Instant Playlist, which generates a playlist automatically (in contrast to Mixtaper's hand-made playlists).

The site itself is split into several distinct sections to allow for more efficient and effective exploration of stored playlists. The browse section displays the most recently added playlists, search functionality, and the ability to browse playlists by artist or track. The popular section, as it's name implies, shows the 'hottest' playlists at that moment, the most popular tracks, and the most common dedications and descriptions.

Obviously the site would be useless without the ability to quickly and easily add playlists to it. The add section of the site allows users to create a playlist, either by entering songs one by one, or by uploading an iTunes playlist file. Playlists require a minimum of 10 tracks, but can be of unlimited length. The only other pieces of information required to add a playlist are a title and one descriptive word. Users can also add a dedication to the playlist if they wish.

How it works

The site works in much the same way as any other database-driven site; data is stored in three main tables (one storing track information, one storing mixtape information, and one storing track-within-playlist position information). This allows for more efficient access of useful information, by limiting the number of hits the database has to take for common tasks. By not linking track information directly with playlist information, it allows for more effective methods of accessing either solely track information or solely playist information (which are the two main use cases of this system). The only time in which both are accessed is for the mixtape pages themselves.

There is a significant use of javascript on the site to create a more useful user interface. For example, in the add section, an autosuggest feature pops up when adding track information as the user types (much in the same way as Google search suggests common queries as you type). At the moment, there is no intelligence to this prompt (it displays up to 5 track suggestions in alphabetical order), but in the future it will take into account the number of times that track has appeared in playlists and more.

When adding a playlist to the website, the final step is to collect new song information from other web services - Spotify and Grooveshark (via Tinysong). These services are queried with any tracks which have not already been added to our database, and return (when possible) links and unique IDs to play those songs in those services (Spotify and Grooveshark are both free streaming music services). Because this often takes so much time (especially with long playlists), in the future it will be completed in batches after playlists have been added.

Playlist pages contain the main list of tracks for the playlist (in the order that the user input them), and buttons to play those songs (when available) on either Spotify or Grooveshark. In the former's case, there is also a button which will play all available tracks in the Spotify player. Users can also display the tracks in a shuffled order, and share the playlist on other services such as Facebook and Twitter. Each track links to the individual track page on the site, which displays other playlists containing that song. Similarly, the artist links to artist pages which list all occurances of songs by that artist already on the site. Links to are included on these pages and next to tracks on the playlist page, to allow users to find out more about those songs and artists.

The future

Within the next few months, after completing other upgrades and improvements to my other sites, I'll be adding several new features to Mixtaper. These include:

  • Playlist tagging (both public and by the creator of the playlist)
  • Hyped & trending tracks (seeing the most popular tracks of the moment, and linking to services such as The Hype Machine
  • Edit playlists after they've been added to the database (for a limited period after adding, to allow mistakes to be corrected)
  • Ability to reorder tracks in the 'add' section while typing them
  • Improved autosuggest
  • Ratings (added anonymously by visitors)
  • Comments for mixtapes
  • Carrousel (stringing together similar playlists to create an infinite playlist)
  • Suggest (automatically generate playlists using existing information about which songs go well together)
  • Simplified user interface
  • On-the-fly mixtape creation (using queuing, much like YouTube does with videos)

More information

If you'd like more information about Mixtaper, don't hesitate to get in touch with me!