Learning how Airplay works: it allows wireless streaming of audio, video and photos.
My original idea was to rip the music information going onto the Flatiron AirPlay, then automatically tweet this information via Twitter. I liked this idea because we play so much cool and unfamiliar music. It would be great to keep track of what is playing. Over time, I opened a myriad of tabs and discovered many interesting API's. These include a few API's which mirror AirPlay on a laptop (AirParrot. and AirServer.). Also, many music API's were discovered. These include Echonest, Soundcloud and many others.
The original idea went down in flames when I learned how difficult it is to hack the AirPlay. This blog post illustrated how this hacker tried to gain access to the AirPlay from WiFi packets via KisMAC, a derivative of WireShark. Also, there are problems jailbreaking the DRM encryption. The idea is possible, but a crazy task. Idea aborted...
GitHub Play deserves some special recognition. It allows the GitHub offices to wirelessly create playlists synchronously in all of their offices around the globe. The next iteration of our goal was to get the GitHub Play to work locally. You can clone it at the link above. However, GitHub Play relies on an old version of iTunes which includes iTunes DJ. Also, Play ran on Ruby 1.8.7, and the dependencies were a mess. So, our group threw this idea of out the window.
Our groups next iteration is to simplify the GitHub Play. Currently we are setting up a server where people can upload their mp3's. Directions to create your own streaming music player in Ruby can be found here. The goal of this project is to eventually create a service where a group of people can all upload their songs onto a server and they will be played in sequence on a playlist. For example, if you are at a party, everyone can put songs on a playlist, so that no one person will have complete control of the music. We also want to implement a Reddit-esque leaderboard so people on the server can upvote/downvote songs. If a song gets too many downvotes, it will be erased from the playlist.