OK, admittedly not the best project name for my MHD2014 Boston hack.
There have been multiple takedown-reposts of the video, so I'm not going to bother to try and link directly to it. The original poster did some nice editing of the video, and it worked really well.
I used the Echonest Remix tools to analyze the original audio from the video (~75bpm) and the Taylor Swift song (~160bpm). The audio replacement worked because the new song's tempo was an even multiple of the source audio.
That got me thinking about matching songs and videos that did not have matching tempos. By using ffmpeg to stretch or shrink the video, this is possible.
In this case, I matched Mika's "Origin of Love" with the original Aerobics video:
"Origin of Love" had a lower BPM than the original video soundtrack, so my script originally slowed down the video. I added a parameter that allowed me to run the BPM at a multiple -- this version matches the video to 2x the song's BPM.
This script works with any source video, not just aerobics programs from the 80s. My first try was to match a different song to the Taylor Swift video. I did pull the audio from the Aerobics track and try that, but it is more fun with Coldplay's "Sky Full of Stars":
I had a lot of fun on Sunday morning trying to find interesting combinations. The Echo Nest crew suggested I try matching something to a Fatboy Slim video. Here's The Five Stairsteps o-o-h Child matched up with the video for Fatboy Slim's Weapon of Choice:
The tool can take any video as input, but I only expect it to work well with video that's strongly defined by a beat. Naturally, music videos work great, but exercise and athletic videos also work really well.
Take, for example synchronized swimming (the video is from the Russian synchronized swim team, a pre-Olympics event). I originally paired this with Beyoncé's "Single Ladies", but am showing it with Bob Dylan's "Tangled up in Blue" here:
I had a great weekend. It was a ton of fun hanging out with the other participants and seeing their awesome hacks on Sunday.
If you are interested, the code's available on github.