2007 / di[rec] Live Recordings - SWF to MP3

di[rec] Live Recordings - SWF to MP3 Guide

This year at the FM4 Frequency Festival in Salzburg, Austria, di[rec] offered live recordings from bands that have played on the festival, directly from the festival. The music was distributed on USB sticks, and I was eager to know what kind of copy protection scheme they use and how good the quality of the live recording is.

The live recording quality is surely very good, a kind of matrix recording with good live music plus audience cheers mixed in. Definitely a plus.

How it works

Upon connecting the USB stick to my MacBook running Debian, I saw five files: autorun.inf (59b), direc.exe (1.6M), direc.ico (3.2k), direc.swf (87M) and splash.swf (1.4M). Quite obviously, the direc.swf file is what we are interested in. The player is embedded in the exe file, so I could either run the exe on Wine or direc.swf directly on the Linux Flashplayer.

Tools you need: swfextract

All is done with the swfextract tool from the SWFTools package. In Debian, you can aptitude install swftools and get it, or get it from upstream. First, we run swfextract on the direc.swf file, which produces something like the following:

$ swfextract direc.swf
Objects in file direc.swf:
 [-i] 83 Shapes: ID(s) 19, 21, 23, 26, 28, 35, 36, 49, 50, 52-57, 59, 61, 66-70, 72, 74, 79, 81, 86, 90, 135-143, 145-147, 152, 153, 155, 158, 159, 163, 167, 170, 176, 181, 183-186, 189-191, 198-201, 205-207, 209, 211, 212, 215, 217, 218, 220-222, 224, 226-228, 231, 232, 237, 239, 244, 253
 [-i] 105 MovieClips: ID(s) 20, 22, 24, 25, 27, 29-34, 38-48, 51, 58, 60, 62-65, 71, 73, 75-78, 80, 82-85, 87-89, 91-108, 150, 15-18, 109-134, 178, 179, 193, 194, 196, 208, 213, 214, 216, 234, 235, 243, 248
 [-j] 2 JPEGs: ID(s) 156, 182
 [-p] 3 PNGs: ID(s) 144, 157, 166
 [-s] 18 Sounds: ID(s) 1-14, 154, 180, 236, 249
 [-F] 2 Fonts: ID(s) 148, 203
 [-f] 1 Frame: ID(s) 0
 [-m] 1 MP3 Soundstream

We could extract artwork, fonts and other data, but we're interested in the 18 sounds which the file provides. Looking at the setlist, the concert in question has 14 tracks, and as we see from the sound IDs, there is a 1-14 sequence of tracks. I've checked it with my concert and found that the IDs are in reverse order, so ID 1 is track 14, ID 2 is track 13 and so on. It might be a different story for your concert, so check the extracted files with the content in the flash movie, matching ID-ed files to track numbers and song names.

Extracting all tracks

To grab one track, you do the following: $ swfextract -s ID direc.swf -o ID.mp3 (where ID, of course, is the numeric ID of the track we want).

To grab all tracks at once, use some bash-ish shell power:

#!/bin/bash
TRACKS=14 # change to fit your needs
for ID in `seq 1 $TRACKS`; do
  TRACK=$((TRACKS+1-ID))
  swfextract -s $ID direc.swf -o $TRACK.mp3
done

This will (hopefully) leave you with 14 MP3 files in the current directory containing the MP3 data (128kb) from the Flash movie. You can now use your legally purchased music in an unrestricted way. Enjoy and support the artists!


Sun Aug 19 04:06:08 2007 +0000