Posts Tagged ‘firefly’

cleaning up your FireFly Media Server database

Sunday, September 28th, 2008

mp3 tagging is a minefield. Like all metadata, one has to balance obsession with detail against ease of acquisition.

Some Firefly clients are pickier than other about tagging. Regrettably, some of the music I get from emusic has bad characters in the tags, which throws the players right off. Finding the problem files is the majority of the problem - here’s a method that at least helps:
wget -O- http://host:port/rsp/db/1 | perl -pwe 's,<(?![/\?]),\n<,g;’ > firefly.xml
xmllint –noout firefly.xml

You’ll likely get a few lines like:

firefly.xml:463415: parser error : PCDATA invalid Char value 65535
<title>�Singing in the Bathtub</title>

In this case, the song title tag has some junk characters in it that you’ll need to fix. After cleaning up the tags and rebuilding the database, try this process again to see if you’ve caught all the errors.

ffms2m3u.sh - create playlist for all files on a Firefly Media Server

Tuesday, September 2nd, 2008

ffms2m3u - create playlist for all files on a Firefly Media Server.

If you run Firefly Media Server, you can run this script to create an M3U of all the tracks on your server. You can play this in most audio players; VLC likes it, as does iTunes (though big playlists take an age to load). Rhythmbox and the default Ubuntu Movie Player won’t touch my playlist of over 17,000 tracks.

To configure the script you need to edit three lines:


# where the Firefly database lives
DATABASE="/usr/var/cache/mt-daapd/songs3.db"
# server domain name or IP address
SERVER="server.example.com"
# Port to talk to server - don't leave blank
PORT="3689"

If you’re running Ubuntu, you’ll probably only need to change the SERVER line. It spits the M3U playlist, ordered by album, to stdout. Note that in the default Ubuntu install, regular users can’t read the database file.

If you’re running this from a cron job, it’s probably a good idea to fill in the real paths for sqlite3 and awk.