Bulk lyrics importer

Dear Lazyweb: I want to import the lyrics for many thousands of songs into iTunes. How?

I ask this question every few years, and the answer has so far remained: "you can't".

I thought about trying to write something to scrape MetroLyrics since their HTML isn't too bad, but wow what a pain in the ass. I don't want to do that. (Before you suggest buying the MetroLyrics app, read the reviews: it's bullshit.)

There are hundreds of apps out there that will display a pop-up window of the lyrics already contained in the ID3 tags of the currently-playing song; and some of them try to search the web for lyrics; but the dozens of them that I've tried have sucked at this, badly. Also, none of them will do it in bulk. Do you use one that doesn't suck?

Since most of my library doesn't have lyrics, I want to bulk-download as many as possible, non-interactively, without having to play each song first, and without having to click, like, 50,000 times.

It's hard to search for this shit because it's a morass of spammers and "free ringtone" malware.

Apparently the music labels don't offer embedded lyrics within the legal MP3s sold by Amazon and Apple because that would undermine their profitable sideline of suing aforementioned lyrics malware websites.

Previously, previously.

Update: This year, the current best option appears to be Get Lyrical. It's not very good, but it seems to be the best of a bad set of options. It gets its info from Lyrics Wikia, from which several of the other apps also pull.

Update, 2013: I wrote my own.

Tags: , , , , , , , ,

27 Responses:

  1. Colby Russell says:

    If you do end up scraping...

    I thought about trying to write something to scrape MetroLyrics since their HTML isn't too bad

    I, uh, are you sure? It's pretty bad, even for a lyrics site. I don't know if A-Z Lyrics carries much of the stuff you're looking for, but I'd try to start with that. If you do end up scraping. Compare.

    • jwz says:

      Nah, both of those are easy. At least it's not flash, or images of text, or AJAX skullfuckery like a lot of those sites are.

  2. (Sorry if this is a dupe, I don't know what happened to my first attempt.)

    I've successfully scraped http://www.tunewiki.com/lyrics/?artist=%s&title=%s (look for a <p class="lyric-lines"> tag). I don't know if they do rate-limiting; I've only done it at proof-of-concept scale. I have a working Python script using Beautiful Soup, but you'll never know if it tastes like pumpkin pie.

  3. John Carter says:

    Hmm, I was going to suggest MusicBrainz might help here - they did have links to sites such as LyricsWiki which apparently have/had licences for lyrics), and it might therefore be possible to get MusicBrainz's Picard tagger to pull them in.

    But I don't see any evidence of the data documented here http://musicbrainz.org/doc/Has_Lyrics_At_Relationship_Type

  4. Bah, my first attempt at a reply got eaten by your spamfilter. Trying again, this time with no embedded links:

    About 3 years back, I got all OCD and decided to re-tag all of my various and sundry mp3/m4a files. The tool I used was a musicbrainz client called Jaikoz, and I noticed after I was done that it had helpfully embedded lyrics in a large subset of the files I'd retagged. This is apparently a supported feature; possibly if I'd been paying any attention at all to it I would have ended up with lyrics in most/all of the files.

    Disclaimer: costs money and is (god help us) a java app. (Yes, someone was still making Swing apps in 2009; the mind reels.) I was pretty happy with its performance as a mass tag editor, but put zero effort into the lyrics feature so it might suck.

  5. jwp says:

    I've had good luck with Get Lyricial: http://shullian.com/get_lyrical.php

    It pulls from http://lyrics.wikia.com/Lyrics_Wiki. I didn't watch the network traffic to see if it tries other sources.

    • Edouard says:

      Yeah, that's what I use. Does 90-95% of the job, but my music isn't really hipster or anything, so, you know, other people have heard of it...

    • jwz says:

      Well, it's pretty flaky so far, but it's better than nothing I guess ("nothing" being my plan B).

      • Get Lyrical is the best I have found since I switched to MACOSX as well.

        It's kinda slow (especially if you try to bulk retrieve 200+ songs), quite choosy about the title of the song (but once it finished it creates a playlist of un-tagged songs thus you can double-check for spelling or missing hits), sometimes (not that often) it hangs and you have to force-quit.

        On the other hand, it integrate farily well with iTunes and you can multiple select songs.
        i am doing right now artist by artist during night time and to the date I have tagged about one third of my library this way.
        I haven't really done any statistics, but out of some 20,000, my understanding is that it got the right lyrics for some 15,000, read as 70-80%.

      • Anonymous says:

        Get Lyrical.app uses an embedded PHP script Contents/Resources/go.php to retrieve lyrics. Whatever that script echo's to stdout will become the song's lyrics.

  6. LLC says:

    On a windows PC, I had some luck with Zortam: http://www.zortam.com/. The website and software is just amatuerish enough that you'll swear it's a malware site, but I didn't notice any odd behavior afterward and my identity still hasn't been stolen going on at least 6 months now.

    It had a success rate of roughly 75% factoring in the bad lyrics that it pulled. I have no idea what its source of lyrics is. You'll still have problems with wildly inconsistent formatting (e.g. some lyrics have extra hard returns between every line, some were apparently entered on keyboards without shift keys, sometimes there will be extra-lyrical info in there like composer, etc.)

  7. Raj Srirangam says:

    Use tagalacious for Mac. It's the best.

    • jwz says:

      Well, it only lasted 60 seconds before crashing, and in that time it suggested that some song should be edited to be by Ashley Simpson (it was not, needless to say, by Ashley Simpson) and there appears to be no way to tell it to just do lyrics and not molest any of my other tags. So given that they want you to pay $15 before you can even test it on more than 10 tracks, I'm gonna go with "fail" here.

  8. Dapsol says:

    This doesn't solve your problem but on a side note; i recently bought a Logitech Squeezebox, it plays music stored on a Logitech Media Server (software on Nas or Pc) and can be controlled by iPeng on your iPhone/iPad.
    Logitech Media Server has a lyrics plugin that pulls lyrics of the current playing song from Musixmatch.com or Chartlyrics.com and shows them on your iPad.

    I'm very happy with this system and would recommend it to people looking for an audio player...

    • Anonymous says:

      This doesn't solve your problem but I shall go into great detail describing my solution to a completely different one.

  9. Joe says:

    Would lyricfind.com work? They power the live lyrics on an iPhone app called soundHound pretty well.

    • jwz says:

      As far as I can tell, they provide no mechanism to download lyrics into your ID3 tags, so no, they're useless.

  10. Hawke says:

    #musicbrainz suggested beets, with its lyrics plugin: http://beets.readthedocs.org/en/latest/plugins/lyrics.html

    I'm not sure that beets can tag the lyrics without tagging everything though. Anyway, it's worth looking at.

  11. Don says:

    SongGenie will do it and you can leave every other field alone. However the last time I tried it I think you could only do single fields if you approved the change one file at a time, which is pretty sub-optimal. However it works and it was the only app of its sort that I ever found that didn't toss its cookies when I pointed it at my ~24000 song NAS-resident library.

    Which is not to say it and its sibling, CoverScout, work -quickly- on it. But it did a pretty good job.

    It always angers me to have to write software to un-fuck other people's software, but if you find a solution that won't leave your other fields alone you COULD write something to back up the fields using Applescript, I think. IIRC every file in itunes has a unique ID that doesn't change; store the fields you care about, run the lyrics app, then clear&clobber every other field.