I don’t have a lot of music in iTunes, but a lot of the music I have is not the easiest to automate lyrics downloads. There are a number of one-step automated solutions, but unless your collection is limited to Justin Timberlake, The Beatles, and Madonna, you may have trouble getting lyrics for all your songs. Even this method is imperfect, but it finds the most of anything I have tried.
First, you will need to make a stop by Doug’s AppleScripts. There are two scripts we need for this process: No Lyrics to Playlist and Needle Drop. The former is fairly self-explanatory; it makes a playlist of every track in your library without lyric information. The latter allows you to specify a number of seconds to play of each track in a given playlist. After invoking Needle Drop, it will load up and play each song in your playlist for the time you specify.
There is one more piece of software needed to complete the process: TunesTEXT. This is a dashboard widget that finds lyrics for the currently playing iTunes track and adds them to your library.
Now, we can put the pieces together. Install the dashboard widget by double-clicking on it. The scripts have to be installed manually. Unzip the downloads and drag the scripts into (your home folder)/Library/iTunes/Scripts/. Once everything is installed, start your iTunes. If iTunes is already open, you will have to close and re-open it so that it will pick up the new scripts.
Once iTunes has started, you should see the scripts you just installed in a menu on the menu bar that looks like an unfurled scroll . Switch to the music section of your library. Click the scroll and choose “No Lyrics to Playlist.” This script will take a minute to comb through your tracks to find those that have no lyrics. Now, you may have to clean this list a bit. If you have podcasts, they will also be included in the list. Sort the list by Genre and delete any tracks that you don’t want lyrics for (e.g. books, comedy, classical, podcasts).
Now, you should have a playlist with only the songs you want to search lyrics for. We can use Needle Drop to play just enough of each track so that TunesTEXT has time to find lyrics. I found that, on my connection, five seconds was plenty of time for the lyrics to be found. You may have to experiment to find the perfect balance. Especially if you have lots of music, you want to choose the shortest playtimes that are enough to find lyrics to reduce the time the search will take.
While still in the No Lyrics playlist, click the scroll and select the Needle Drop script. You will see a dialog box where you can enter the playtime for each track. Enter the time you determined was ideal for your setup (or just try five seconds — it worked for me!). Now, the tracks will begin to play, the lyrics will be searched and added by TunesTEXT, and all will be right with the world. Enjoy!