LyricTool
(started August 2010)
Intro
LyricTool is a simple program using Microsoft Visual Basic .Net (Visual
Stuidio 2010, uses VB.Net 4.0)
and the
UltraID3Lib .Net Library to scan a list of .mp3 files and then list
those
files that do not contain lyrics. This list can be exported to a
.m3u playlist file.The ID3 tag standard stores information within an MP3 file. In the current version, ID3v2.3 (and the lesser implemented v2.4) these pieces of information ("frames") include the artist, album, song title, year released and several dozen other categories. LyricTool can in fact identify files missing any of the tags specified in the ID3 standard.
Why and What
LyricTool looks for the "Unsynchronized lyric/text transcription" frame in each MP3 file specified by the user, and lists the tracks that don't contain this frame. It can then export the tracks to a .m3u playlist file (used by Winamp; recognized by other programs, too). You can also search for any other frame, using the drop-down box in the lower right and it's adjacent button.
Additionally, UltraID3Lib will generate errors. These range from the wrong tag versions (i.e. not v2.3), to weird frame names or incorrectly specified frames. The Tag Errors button will list files with such errors, and you can also identify files with errors and missing a tag using the 'Note Errors' checkbox. Errors are noted with '- ERROR' appended to the file name in the right box. To actually identify what the error is, you can use the included utility with the UltraID3Lib package (this may require Visual Studio, however).

From the generated list of lyric-less .mp3s, I manually find and save lyrics using MiniLyrics in WinAmp.
Working with iTunes:
I use iTunes for syncing music to my iPod touch. The list of
songs that I sync is stored in the file "iTunes Music Library.xml." To
read the playlists stored within this file, I use
iTunesExport (see Links) to create .m3u files which can be imported
into LyricTool.There's an additional challenge here if you buy your music from iTunes. iTunes uses the ID3v2.2 tag, and the release version of UltraID3Lib.dll does not support v2.2 or v2.4. (The beta version does, but I've not had a chance to experiment with it.) The solution I found for these .mp3s with incompatible tags was to save them with a v2.3 tag using MP3Tag:
- Download, install and run MP3Tag: http://www.mp3tag.de/en/index.html
- Load files of interest
- In Tools>Options>Tags>Mpeg select ID3v2.3 UTF-16, then close the Options window
- Select all the files and press Ctrl + s to save them, and the tags will be written in v2.3
Bugs / ToDo:
I've successfully added lyrics to every song on my iPod Touch, and they
all use ID3v2.3 tags... but for some reason (to be investigated) the
lyrics aren't seen for every song on the iPod.Since UltraID3Lib can only work with ID3v2.3, I want to implement way to identify files that don't have the correct ID3 version, and distinguish this from other errors that UltraID3Lib throws.
Download LyricTool:
- UltraID3Lib.dll: here or http://home.fuse.net/honnert/UltraID3Lib/ (Release version)
- LyricTool.exe: here
- LyricTool.zip: here
Links:
- http://www.id3.org/ID3v2Easy - Homepage of the ID3 tag standard
- http://home.fuse.net/honnert/UltraID3Lib/ - Homepage of the UltraID3Lib library.
- http://www.crintsoft.com/ - MiniLyrics homepage
- http://www.ericdaugherty.com/dev/itunesexport/ - iTunesExport homepage
11-13-2012: Randomly discovered this approach: Automatically adding lyrics to files (OSX)
-11-13-2012