Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Music Media

Using CDDB to Fill ID3 Information in Existing MP3s? 68

masonbrown asks: "I've got about 2000 songs in my MP3 collection, using iTunes on the Mac. I'd love to fill in the empty ID3 tags such as Album Title, Date, etc. automatically from something like CDDB. Is there any way to automate this after the song is already in MP3 format (like going by Artist and Song Title)?"
This discussion has been archived. No new comments can be posted.

Using CDDB to Fill ID3 Information in Existing MP3s?

Comments Filter:
  • I'd have to say no, at least with the current CDDB. Albums are non-uniquely identified by Artist and Title; for example, I have two versions of "US Forces" by Midnight Oil, from different albums. How is it going to be possible to distinguish between them without examining the audio data?
  • mp3 butler (Score:3, Interesting)

    by eyez ( 119632 ) <eyezNO@SPAMbabblica.net> on Friday July 19, 2002 @11:43PM (#3920987) Homepage
    A long time ago I wrote a program which can, Among other things, re-tag mp3s based on the filename. This isn't exactly CDDB, but it's a start.

    It's a perl program, so it Should run on OS X without modification, so long as you've got it's perl module requirements taken care of.

    The program is called The MP3 Butler, and you can get it from http://babblica.net/mp3butler [babblica.net].
    • Hmm. I've been working on a perl scrip that does heuristic name detection based on the filename, the id3 tags and (not yet in) the freedb info. Unfortunately, last I looked the freedb protocol specified searching as a valid operation, but when I tried sending the command, the freedb server spat back "not implemented yet".
  • I'm not sure if Moodlogic (http://www.moodlogic.com) runs on the Mac, but it will check your MP3 library with its own user-supported (and extensive) song database, and then rename and organize into folders your MP3's.
  • You can't tag the songs in the manner you want for exactly the same reason napster had such a hard time complying with the requirements to disallow copyrighted materials.

    CDDB works on the premise that the combinations of track lengths on a given album are like a unique fingerprint. Once you take into account that mp3s aren't exactly (to the frame) the same size as the audio cd, the fact that you may be missing the last 2 seconds of some track, etc, it becomes practically impossible.
    • Sure, you aren't going to get every invalid version, but who wants that anyway? For clean rips, you should be able to narrow the range down a lot. No, it won't be one-to-one like a CD, but that's okay too.

      For someone who's done it already, check out MoodLogic [moodlogic.com]. Hooks in with winamp too.

      -Bill
  • You know, you can always use MusicMatch Jukebox to look up tags on mp3's. It is especially easy if you have the album name or the artist... Or all the mp3's in the album. You enter whatever information you can, then select the Options > Music Library > Edit track Tags. highlight them and click the Lookup Tags button. It will look through the CCDB and try to use whatever information you have, the track length, etc.. and return as many options as possible as to what the song is. Of course, if you are looking up individual songs and don't have a clue as to the artist, album and song name.... you are pretty much screwed.
  • Ok, so it's not Linux, but Musicmatch Jukebox has a feature called supertagging.

    It takes the song title and does a fuzzy search and can fill in the ID3 tags. It can scan it from the filenames only, or from an existing tag. If your tags are nonexistent or screwed up, you can fix them. It can even fill in Album art and so forth. It's not completely automatic, but it is automated.

    I kind of grudgingly like musicmatch, even though they must never have scanned in their CD collection with it. I mean, why do I have to click on the mouse for every single CD in my collection. Why not have a feature to start ripping the moment you insert a CD and eject it when it's done? Bozos.

    • a good thing too that it isnt linux. this poster said they run on a Mac.
    • I have to echo this. MusicMatch can be great, and I have turned many friends onto it. It is the best combined music ripper/manager/player I have found. Also, their model of an initial $29 payment and free lifetime updates is a model for other companies hoping to commercialize a utility program.

      The problem is, there are poorly designed parts of their UI that have never changed over the years. These are seemingly simple things that could have been addressed at some point on the march to version 7.2 The search feature can work well, all in all, it may be your best bet
  • You could script it with AppleScript, since you can set track properties and can do Internet connections, presuming that CDDB has some useful interface for scripting.
  • Tag&Rename does this (Score:3, Informative)

    by Alrescha ( 50745 ) on Saturday July 20, 2002 @12:06AM (#3921073)
    Tag & Rename is a relative cheap program for mass editing of ID3 tags. One of it's many features is that if you have a directory that contains all of the tracks of one album, in order, it will go to CDDB and retrieve the album/track information. It will of course create ID3 tags from this information if you desire.

    The user interface takes a little getting used to, and it's a Windows program, and it's payware, but I had to respond to all the folks who say "it can't be done". Tag&Rename does it.

    http://www.softpointer.com/tr.htm

    A.

  • if there's a way to do it, i'd sure as shit like to know... i've quit downloading mp3's altogether since i developed this anal retentive streak about my mp3s... i only rip them off cds i can physically put in the drive and download track information at the time of ripping... don't ask me why, i don't know, it never used to bother me to have a full set of eminem labelled sarah mclachlan, or the latest limp bizkit that turned out to be a bunch of 20 second alternating cuts of britney spears and n'sync cat'ed together.
  • by WIAKywbfatw ( 307557 ) on Saturday July 20, 2002 @12:16AM (#3921103) Journal
    Unless you've been living in a cave for the past two years you'd know that CDDB [cddb.com] has been hijacked by Gracenote who've turned what was a nice, cooperative development, steadily built up by thousands of unpaid users into a private, commercial venture.

    Nowadays, if you're developing commercial software that accesses the CDDB database you have to pony up licensing fees or look elsewhere.

    That elsewhere is freedb [freedb.org]. Check it out and use it instead of using CDDB.
    • Unless you've been living in a cave for the past two years you'd know that CDDB [cddb.com] has been hijacked by Gracenote who've turned what was a nice, cooperative development, steadily built up by thousands of unpaid users into a private, commercial venture

      And who provided the service of hosting this data and providing network access to it all these years, for free? Gracenote.

      I'm so sick of this B.S. argument, "they hijacked our data!"

      1. It's not your data, it belongs to the songwriters and record companies. You just re-typed it, big frigging deal.

      2. You provided a service to Gracenote -- you retyped the information. In exchange, you were provided a service by Gracenote, free access to their index of CD information. On average, I would wager people took WAY more than they gave.

      It's fine to promote a free service like freedb. I use it. But please for chrissakes stop complaining about gracenote, they didn't hijack anything!
      • Whether of not Gracenote hijacked anything depends on you point of view.

        IIRC, the whole thing went like this:

        Ti Kan and Steve Scherf defined the protocol and made a server. People started to contribute the data. At some point, Ti Kan (I might be mistaken in this) started to commercialize the service, either by selling the data to a company, or by founding a company himself. Gradually, the new company started bugging makers of mp3-software to only include support for cddb, thus practicing unfair methods to support cddb. The methods included things like "either you only support cddb, or you will not support cddb at all."

        So the service started as free, then turned into a commercial service. At the same time, the free service was hindered.

        About that It's not your data, it belongs to the songwriters and record companies. You just re-typed it, big frigging deal.:

        Again, this depends on you view. Of course, you're just writing down information which others have written. The point is that the value of the data consists not of the information itself, but of the availability through a service like freedb/cddb. Thus Gracenote did hijack the data. Not the contents, but the value. The value is the time of the thousands of people who typed in the information.


        Lars
        • Yep! Had I known up front I was giving a marketable asset to MBA-wielding jerkos for free, that would have been swell.

          As it is, I now just use freedb. They continue to be what I thought cddb was all along.
        • Again, this depends on you view. Of course, you're just writing down information which others have written. The point is that the value of the data consists not of the information itself, but of the availability through a service like freedb/cddb. Thus Gracenote did hijack the data. Not the contents, but the value. The value is the time of the thousands of people who typed in the information.

          The value is also the bandwidth, processing, and man power it took to make CDDB work -- how much did you pay for that?
      • I don't think the data belongs to the songwriters or the record companies. The data is facts about the album ("this is the list of song titles" vs "this list of song titles is a creative work"). Facts don't belong to anyone.

        • I don't think the data belongs to the songwriters or the record companies. The data is facts about the album ("this is the list of song titles" vs "this list of song titles is a creative work"). Facts don't belong to anyone.

          The song list on a CD is an original work consisting of: original song names (usually) in an original order, for the purpose of describing an original set of music. The song titles are just as much a part of the art as the lyrics of the song.

          I'm not saying CDDB/FreeDB is illegal, since I feel these can be used in the context of 'fair use.' However, that does not change the fact that the artist or record company owns that original work, and therefore the only service you are providing is to transcribe the text for cddb/freedb.

          The point being: you're not "creating" any content for CDDB, you're just "porting" it. In return you were able to download information from CDDB.
  • iTunes does have the ability to fill in missing information in some situations. For example, if you have an entire CD you ripped while offline, select the tracks and select "Get CD Track Names" from the Advanced menu. Everything from CDDB will be filled in, even if the songs still have "track1" etc as their names. Not sure if it can account for songs ripped from another encoder/incomplete albums.
    • You can select any or all tracks you have ripped using iTunes and use the Get CD Track Names on them at any time. In iTunes 3 with the Keep iTunes Music Folder Organized option it will even update the file names and folder names and structure with the new information instantly.
  • Its not quite CDDB, but a windows app that edits id3 tag from file names & vice-versa

    http://www.id3-tagit.de [id3-tagit.de]

    Download [id3-tagit.de]
  • Use MP3 Rage (Score:2, Informative)

    by sekalreed ( 242167 )
    MP3 Rage [chaoticsoftware.com] will allow you to not only get info from CDDB for already ripped MP3s, but handle all sorts of other tagging and renaming. Check it out
  • I've got a bigger problem. I download a lot of mp3s with filenames in foreign languages. They look all funky and I can't make sense of them at all. Is there a program that will take the gibberish filenames and turn them into something with english characters?
    • If you look in the "Tips-HOWTO", near the end, you'll see a pair of scripts, one spread over several lines, one a single line, that converts all the files in a directory to lowercase. In fact, here's the second one:
      ---- snip ----
      for i in * ; do [ -f $i ] && mv -i $i `echo $i | tr '[A-Z]' '[a-z]'`; done;
      ---- snip ----

      See how it uses tr to convert a range of characters? You can add any list of characters you like there. You can find out how to get your special characters by saying "man tr" at your prompt. As for finding out the codes for the characters, there you may need to do a bit of digging. Or you could copy and paste.

      Hope this gets you somewhere. I find it useful just for lowercasing filenames brought across from DOS and Windows disks, and of course you can replace the "tr" bit with other commands.
      • yeah, that would help me a lot. If I understood what that crazy command meant at all. Tell me how to do it in windows 2000, the os I use when not coding. Large crazy commands like that, which nobody understands are the reason that linux will never win the desktop. As far as I'm concerned, linux is good for coding, because it has all the good text editors and the free compilers and the nice terminal windows. I haven't seen anything else linux does better. Especially audio.
        • A common mistake (Score:1, Flamebait)

          by dubl-u ( 51156 )
          You seem to have been misinformed.

          We, the fellow users of the Internet, are not here as your employees, your slaves, or your parents.

          We, like you, have full and rich lives to lead; we have a lot to do before we kick off. To earn our daily bread, many of us are technology professionals, making our living through solving problems like this. Despite that, we are glad to help out fellow seekers of knowledge, fellow strugglers in this hard, cruel world. We do it gratis, recognizing the debt that we owe to those who have helped us.

          But then some yutz comes along and, like a fresh-hatched cuckoo, opens his mouth wide and peeps, "Gimme! Gimme! Gimme!" Thanks, but I have no particular interest in feeding leeches.

          If you want to understand the preceding command, RTFM. And if you want to accomplish this task on Windows 2000, pay somebody. Linux is an OS for builders, for creators, for makers of things. Windows is an OS for consumers. If you want to act like a consumer, then get out that credit card.
          • by Sabriel ( 134364 )
            But then some yutz comes along and, like a fresh-hatched cuckoo, opens his mouth wide and peeps, "Gimme! Gimme! Gimme!" Thanks, but I have no particular interest in feeding leeches.
            The dude asked for help. If you can't or won't help, leave it at that. Ranting at him for being a sheep not only doesn't help him, it hurts you. Someday you might need a wool coat to help keep out the cold.
            If you want to understand the preceding command, RTFM. And if you want to accomplish this task on Windows 2000, pay somebody. Linux is an OS for builders, for creators, for makers of things. Windows is an OS for consumers. If you want to act like a consumer, then get out that credit card.
            Windows is an OS for people who are builders, creators and makers of things IN FIELDS OTHER THAN PROGRAMMING! There are plenty of folks too busy working at their own specialties to learn ours, from farmers to firefighters. The "but it is so simple for ME" attitude is one more reason why Linux is having such a hard slog at displacing Windows.
            • The dude asked for help.

              No, he didn't. He sassed the poster (who had even offered a helpful explantion of those scary 76 characters of code), played dumb (I say "played" because in the same breath he claimed to be a coder), and then demanded help.

              If he were asking for help, he might have said, "I don't get it! Please tell me more about what 'tr' does!" But he wasn't asking for help, he was throwing a tantrum.

              There are plenty of folks too busy working at their own specialties to learn ours, from farmers to firefighters. The "but it is so simple for ME" attitude is one more reason why Linux is having such a hard slog at displacing Windows.

              I neither said nor implied that it was easy for anybody. All specialties require time and effort; otherwise they wouldn't be specialties. I've helped lots of specialists, from artists to writers to anthropologists to philosophers to grandmothers, gain some geeky knowledge. They were all looking to get something done, and were glad to spend some time learning whatever was necessary to help them get there. Symmetrically, I've been glad to put in some time and elbow grease to learn things in other realms when I've needed it.

              But for the times when I'm not willing to learn how to do it myself, I expect to pay up to have somebody do it for me, and I try to do it with appropriate humility. This guy is saying, "Gosh, I want to do something with my computer, I don't know how, and I'm not willing to learn a thing. So somebody do it for me right now!" This attitude might work if you are Veruca Salt [geocities.com]. But although I've helped hundreds of strangers gratis, he won't get anything from me without cash up front.

              Windows is an OS for people who are builders, creators and makers of things IN FIELDS OTHER THAN PROGRAMMING!

              Close. If you change it to "...for people with a credit card who are...", then you've got it. Windows is, by design, a consumer product, and billg likes it just fine that way. Unix systems provide you with tools; Windows provides you with sealed "solutions". If your problem matches one of their solutions, you're happy. If not, you generally need to whip out that credit card.
              • Hmm. On a re-read of the thread, I can see what you mean, though I still think you over-reacted. OTOH I guess part of your comment hit a sore point with me and I may have been a bit harsh on you too. Thankyou for the clarification.

                PS. Ouch! Whoever modded your reply to me was more than a bit harsh... '-1 Troll'?! No way!

                • though I still think you over-reacted

                  Heh. Probably. That day I'd spent two hours composing a carefully constructed, "Guys, your software is great, but I'm stuck," message with plenty of detail, making sure I'd left no obvious stone unturned. And no sooner than I'd sent it off, on three different mailing lists I got "please do my homework for me" posts barely disguised as questions. So I was certainly, uh, aware of leeches.

                  As they say in California, somebody then demanding that I port shell code to his Windows box, like, totally harshed my mellow, dude.

                  Maybe I can be excused as part of the long Usenet tradition of reaming somebody to make an example out of him? Probably not; although fun for everybody but the example himself, I'm not sure it's such a good tradition in the long run.

                  Ouch! Whoever modded your reply to me was more than a bit harsh... '-1 Troll'?! No way!

                  Heh. Funny, that. My posts on a couple of threads got modded down at about the same time. Ah well; I can live with a 47 karma.
        • Simple. You can't. There is no way to do that in Windows 2000.

          Well, that's a little harsh. You could install Cygwin and run it under bash. But it sounds like you're too lazy to do that.
        • yeah, that would help me a lot. If I understood what that crazy command meant at all. Tell me how to do it in windows 2000, the os I use when not coding.
          OK, so learn what shell scripts are then, and a few basic commands.
          You could do this in a nix or you can install some software on your W2K box,e.g. Cygwin or some of the Window ports of nix commands.
          As far as I'm concerned, linux is good for coding, because it has all the good text editors and the free compilers and the nice terminal windows. I haven't seen anything else linux does better. Especially audio.
          Being able to do things like write the above script I found pretty useful. I develop on windows for a living and having Cygwin, emacs and t.h.e. make my life so much easier. When I have to view every line which contains a certain string in all files with the same suffix in a folder tree it takes about 5 minutes to run in cygwin. Windows 'find' or 'search' command (depending on version) doesn't cut it.
          E.G. to find all lines in all files *.bar in the tree starting at c:\dev which contain the string 'foo', and where 'foo' and 'bar' may be in any combination of upper and lower case, and where the C drive is mounted as /mnt/c and you want the reults in a file (myoutput.file) with the filename, line number and line contents, you can use
          find /mnt/c/dev -name '*.[Bb][Aa][Rr]' -exec grep -H -n -i 'foo' {} >> myoutput.file \;
          Of course you need to wipe the output file first, anyone know how to do this in windows without cygwin?

          If all you want to do is surf the web then windows is OK (use Opera emulating IE), but then so is Linux (use Opera emulating IE). There are more games for windows and I can't run my excel/access vba apps on linux, but apart from that....

  • Only 2000? (Score:4, Informative)

    by teridon ( 139550 ) on Saturday July 20, 2002 @01:00AM (#3921233) Homepage
    You probably want to use Applescript for this. Check out this page [malcolmadams.com] for a buttload of iTunes applescripts. For example the "Get CDDB Track Names" script will tag the selected tracks in iTunes with info from a CDDB webpage (that you searched for). And you can use the built-in applescripts to search the CDDB.

    But honestly, with only 2000 songs, it would probably be less work to do it yourself, especially if you can use iTunes multiple-edit mode on tracks from the same album.
  • I wrote an ugly perl script that does this. It's based on the ideas from mp3cdd (you might be able to find this by searching google).

    First you find all of the track lengths and build a fake TOC, assuming a 2 second lead-in. mp3cddb used file length and bitrate to guess the length. If you use VBR (or even ABR) this isn't accurate enough, so you need madtime from libmad. Feed this to CDDB (get the mod from CPAN).

    You'll get a ton of results. Some will be totally unrelated, and some will be crap (all uppercase, all lowercase, genre missing, etc). Write a scoring function that weights all of the factors you care about, and then factor in the "distance" of the actual tracklists from your actual tracklists. Total time differences in seconds, or root mean squared differences, whatever gets good results. Pick the best.

    Sanitize the result if you are using the CDDB info as a filename.

    Now rename and mp3info your tracks from the data.
  • The information that CDDB uses is not stored with the mp3s. It does some calculation of the track lengths. You would have to have all the mp3s of the album including silent tracks as mp3s and the mp3s would have to have the the exactly right length, which I doubt that the mp3 format does.

    Chances are that you have you songs named in Album-Artist-Song.mp3, Album/Artist-Song.mp3, or Album/Artist/Song.mp3 format. I wrote a program called Mp3Tagger that can import this mp3 name information into the ID3 tag [ostermiller.org]. (It can also go the other way and rename an mp3 based on id3 tags.) It runs on Windows, Linux, and Mac OS X among others.

  • by pudge ( 3605 )
    If you have a directory of MP3s that 1. is an album and 2. are in order, then you can use a program in the MP3::Info module distribution to do this. I've used it many times. Meng Weng Wong wrote the program, I wrote the module, and it's on the CPAN.

    I think by default the program doesn't actually write the ID3 info to the MP3 file, but it's a simple edit to make that happen. You also need the CDDB module from the CPAN.
  • you might check out songprint [freshmeat.net].

    It sounds like it will do what you're wanting, but the site looks kind of dead - the project may have been orphaned.

    hth.
  • Go take a look at mp3sort. Other tools in listed here will take mp3's named proporly and add id3 tags. Mp3sort will take mp3s and name them proporly. It does not get all of them. Of ~2000 I fed it, it left 50. But that is better then nothing. It is perl so it should run on most OS's.

    Url:
    http://www.sarahandtim.com/programs/mp3sor t/
  • by treat ( 84622 ) on Sunday July 21, 2002 @12:18PM (#3926141)
    Using a program called "mp3ascd" to generate the CDDB ID, and another program called "rebot" to do the renaming based on the ID. (Both found on freshmeat). Not the best software in the world, and I had to make a shell script to glue them together. But it is entirely possible.

  • A couple years ago, I played with some software that would recognize a tune by analysing the actual music data. I can't remember what it was called, and I only had limited success with it, but I did have some success.

    I'd like to play with said software again to see if it has matured.. Anyone know what it might be called?

    S
    • by chrissam ( 181136 )
      I've used a program called ID3Man [id3man.com] which does just this. I don't know if it's the same on you used -- probably not, since these guys have only been around for a year or so. My experience with ID3Man was mixed -- it's great for "popular" albums which have made it into their database, but the less volume-selling stuff like some classical and jazz are less well-recognized by their system. Definitely worth a look though.
  • If you rip your MP3s with either iTunes or SoundJam (no longer exists as it was bought out and made into iTunes), it stores the CD info in some way such that you can fill it in from CDDB later. Works great for mobile people who rip on the plane, say, then fill in the info later on.

  • For the PC there is a program called Helium, it does exactly what you want and more... Except they want 35$ to register it, the trial version only lets you retag 10 songs at once from cddb. www.helium2.com

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...