Identifying CDs

2019-02-14 03:01发布

问题:

I'd like to be able to determine what music album CD is in a CD drive. For example, if someone claims that the CD in their drive is Eminem - The Eminem Show, I would like to be able to verify that the CD is indeed The Eminem Show.

Any ideas? I've applied for a Gracenote developer license, but they won't get back to me for five days.

Also, how does this work? Is there some GUID or other unique identifier that music discs are encoded with?

Lastly, might this be possible with data CDs, like, say, the Diablo II install Disc 1? If so, any directions you can point me in, for accomplishing this?

回答1:

You may want to look a the Wikipedia article to learn how CDDB work. Then you can look at libcddb to implement what you want in C. The source code should give you plenty of clues in case C is not your language of choice.



回答2:

You probably want to use something like libcddb to get/verify music CD information. I don't know if there is a similar database for program discs.



回答3:

As for music CDs, Gracenote works by analyzing the actual waveform data of every track on the CD. It does this is a format-neutral way. It talks about it here.

I'd also recommend last.fm, MusicBrainz, and discogs.