Automatically tag your music collection with metadata from Last.fm.
what it is
A while back Last.fm released a command line tool to retrieve metadata for an arbitrary mp3 from their new fingerprint database. I tried it yesterday and it seemed way better than MusicBrainz. So, as a person with a lot of random mp3s, I cooked up a script for retagging entire folders of songs.
Some neat things used in the script:
handling mp3 tags
Text for calculating
Levenshtein distance to the nearest correct genre name—amatch is a compiled version
of the same thing, but not Windows-compatible
- the incredibly comprehensive Last.fm
XSD::Mapping for parsing the XML responses (better than
Hpricot for small, well-formed documents)
A handy feature in the script is the ability to add the top 10 tagged genres to the comment field, so you can use iTunes or Foobar smart playlists for fancier multi-genre sorting. This is similar to lastfmtagger, but not Mac-specific.
$ id3info 1_001.mp3 *** Tag information for 1_001.mp3 *** mp3 info MPEG1/layer III Bitrate: 128KBps Frequency: 44KHz
$ id3info 1_001.mp3 *** Tag information for 1_001.mp3 === TPE1 (Lead performer(s)/Soloist(s)): Photon Band === TIT2 (Title/songname/content description): To Sing For You === WORS (Official internet radio station homepage): http://www.last.fm/music/Ph oton+Band/_/To+Sing+For+You === TCON (Content type): Psychadelic === COMM (Comments): (): rock, psychedelic, mod, Philly *** mp3 info MPEG1/layer III Bitrate: 128KBps Frequency: 44KHz
Documentation is here, but for OS X:
sudo port install id3lib sudo gem install sweeper sweeper --help
Linux is similar to the above, depending on your distribution.
On Windows, you can just download a zipfile from the Rubyforge page and extract
sweeper.exe to somewhere in your path.
I expect this to be eventually replaced by an official Last.fm tool, but for now, patches are welcome. It would be especially nice if someone could write a tutorial to help non-Ruby people install the script.
If you are going to contribute some code, grab the SVN checkout from Fauna, since the gem doesn’t ship with the test mp3s.
SVN, I know—how embarrassing!