Beating the System to Get Beats

by Ik

During the day I'm a Ruby hacker.  I design, write, and manage Ruby/Rails/Merb web applications.  But at night, as a hobby, I like to write break beats, house music and other forms of electronic music.  I really try to stay "well rounded" and exercise my left and right brain.

I believe strongly that if something is available online, it's yours for the taking if you can find a way to get it.  That is as long as you're not profiteering with someone else's gold.

Anyway, the other night I was visiting a fellow on YouTube who was simply amazing at playing his Akai MPC1000 (a sampling drum machine).  I visited his MySpace profile to check out his other works, and a widget called "RocBattle" caught my eye.  It had various beats of his which he was selling through this third-party site/service of the same name.

Very briefly, I was soon to learn that RocBattle employed a relatively common technique of "audio watermarking."

If you're familiar with plain old "watermarking," you can imagine what I'm talking about.  It's a technique that allows RocBattle to provide an artist's audio track for you to listen to, while at the same time protecting the "rights" of these artists.

Listening to the artist's track, another voice recording at a low volume is played that repeats, "Get your beats at RocBattle.com" (or something to that effect), steering away anyone that might try to digitally record the audio coming from their Flash player or widget.

A little investigation with Firebug's "Net" tab revealed something relatively obvious.  When hitting the play button on their Flash MP3 player, a file called: http://www.rocbattle.com/rocbattle.mp3 was being pulled over the tubes.

I entered that URL and pulled down an audio file.  Of course, this was the voice watermark track!

It was almost too easy, because now I knew that the Flash player was merely playing two tracks at the same time: the artist's beat, and this watermark.

So, I needed to route my browser's request for that file, and divert it to a blank MP3.

I had done something like this previously, so I pulled out Charles Web Debugging Proxy.  It's probably the only Java application I actually enjoy.  It allows you to do pretty much anything you would want to ever do with HTTP traffic coming to and from your browser.

I quickly created a blank MP3 file and opened Charles.

I went to "Tools -> Map Local" and created a map to the blank MP3.  I tied this file to: http://www.rocbattle.com/rocbattle.mp3 and BLAMO!

I was able to remove the watermark.

Can anyone guess at how they should have set this watermark up initially?

MD5 hash the original file, have the player match that and maybe change the URL to something a little less simple.   Of course, there are ways around everything... but at least that's what I would have done!

Return to $2600 Index