Remember the days when getting music meant leaving your chair and driving to a store? Remember having to buy a whole album of filler to get that one great song you heard on the radio? iTunes didn't only change the way music was distributed... it changed music. This is why the upcoming milestone is so momentus. In the next few days, iTunes will reach 10 billion song downloads. That's ten billion with a b. A one followed by TEN zeroes. That's a song for every person on the planet, plus an extra 3,300,000,000 songs left over. To mark the occasion, iTunes is giving a $10,000 iTunes giftcard to the lucky downloader of the 10 billionth track. Mike and I thought it'd be a fun challenge to try and come up with an accurate educated guess of when the download will happen to increase our chances of being the lucky winner.

To come up with a good estimation, we started by taking a look at Apple's "countdown" page. The 10 Billion Song Countdown page features a really awesome countdown effect without a lick of Flash; it's all done by moving a large background-image up and down with Javascript and CSS. By taking a look at the source code, we quickly discovered that the counter's starting amount and rate of change is being loaded from a text file off the Apple server seen here: http://www.apple.com/autopush/us/itunes/includes/countdown.inc?r=0.07180374805674761 (the number on the end is presumably a random number sent to prevent caching)

This file is updated every hour and is a simple one line string. The string contains the timestamp, the current count and the how many songs were downloaded in the last hour. In order to calculate our estimation, we set up a script that logs the newest data every hour from Apple and stores it into a database. With this data, we can analyze the rate of change per hour, every hour and convert Apple's countup counter into RustyBrick's countDOWN counter. We have created a few algorithms and crunched a lot of data and our prediction is below.

Songs to Go before 10 Billion: Loading...

Approx Date and Time for 10 Billionth: