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)?"
Probably not (Score:2)
Re:you should know how it works (Score:3, Informative)
Um... no. There is no "CD ID number" burned into every CD. CDDB works by assuming that the track lengths are unique to a CD, which almost always works. That is why if you have the MP3s and you burn them to a CD, you can sometimes get CDDB to recognize it. Of course, that only works if all the different people you got your MP3s from ripped them with the same conventions, i.e. do you include the song gap, and if so, at the beginning or the end, etc.
Re:you should know how it works (Score:5, Informative)
What total rot. There's no such thing as a "CD ID". The CDDB ID is a one-way hash of the track lengths. Here is a comment from a script I wrote a few years ago.
It might be possible to create a CDDB ID from a full album of MP3s. But I think there's no hope if you have random MP3s from incomplete albums.
Re:you should know how it works (Score:1)
mp3 butler (Score:3, Interesting)
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].
Re:mp3 butler (Score:2)
MoodLogic (Score:1)
Can't do it. (Score:1)
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.
Re:Can't do it.... yet it's done (Score:3, Informative)
For someone who's done it already, check out MoodLogic [moodlogic.com]. Hooks in with winamp too.
-Bill
Musicmatch Jukebox (Score:1)
musicmatch (Score:2)
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.
Re:musicmatch (Score:1)
Re:musicmatch (Score:1)
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
AppleScript (Score:2)
Tag&Rename does this (Score:3, Informative)
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.
enquring minds want to know.... (Score:1)
Re:enquring minds want to know.... (Score:1)
Tough call, actually.
CDDB? Shouldn't we be using freedb instead? (Score:5, Insightful)
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.
Re:CDDB? Shouldn't we be using freedb instead? (Score:3, Insightful)
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!
Re:CDDB? Shouldn't we be using freedb instead? (Score:3, Informative)
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
Re:CDDB? Shouldn't we be using freedb instead? (Score:2)
As it is, I now just use freedb. They continue to be what I thought cddb was all along.
Re:CDDB? Shouldn't we be using freedb instead? (Score:2)
The value is also the bandwidth, processing, and man power it took to make CDDB work -- how much did you pay for that?
Re:CDDB? Shouldn't we be using freedb instead? (Score:1)
Re:CDDB? Shouldn't we be using freedb instead? (Score:2)
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.
easy, assuming the MP3s are whole ripped albums (Score:2, Informative)
This is the answer; mod it up (Score:2)
Windows Version (Score:1)
http://www.id3-tagit.de [id3-tagit.de]
Download [id3-tagit.de]
Use MP3 Rage (Score:2, Informative)
Also (Score:1)
Re:Also (Score:2)
---- 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.
Re:Also (Score:2)
A common mistake (Score:1, Flamebait)
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.
Re:A common mistake (Score:3, Insightful)
Re:A common mistake (Score:1, Troll)
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.
Re:A common mistake (Score:1)
PS. Ouch! Whoever modded your reply to me was more than a bit harsh... '-1 Troll'?! No way!
Re:A common mistake (Score:1)
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.
Re:Also (Score:2)
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.
Re:Also (Score:2)
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. 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
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)
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.
Use madtime and score the results (Score:2)
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.
Mp3Tagger (Score:2)
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.
Yes! (Score:2)
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.
Not sure if these guys are still around, but... (Score:1)
It sounds like it will do what you're wanting, but the site looks kind of dead - the project may have been orphaned.
hth.
mp3sort (Score:1)
Url:
http://www.sarahandtim.com/programs/mp3so
Sure, I do this all the time (Score:3, Informative)
music recognition? (Score:2)
I'd like to play with said software again to see if it has matured.. Anyone know what it might be called?
S
Re:music recognition? (Score:2, Informative)
Possible on a Mac (Score:1)
Helium (Score:1)