音楽CDを特定するDiskID、CDシリアル番号
とりあえず、分類シリーズ(?)はここで一区切り。
今回は音楽CDを特定する方法です。
経緯
商品パッケージを特定するには、JANコードやISBNコードを使います。
これで一意に特定できないことは、今まで検討したとおりですが、参考にはできます。
音楽CDのパッケージもJANコードが掲載されているので、これを参考にすることができます。
一方、音楽CDをデジタルオーディオプレイヤーにいれると、曲名等が表示されます。
これは、音楽CDをデジタルオーディオプレイヤーに取り込む際、インターネットを通じてCDDB(wikipedia)にアクセスして情報を取得し、その情報をMP3ファイル等に書き込むから可能なわけです。
そうすると、音楽CDからCDを特定する情報を取得しない限りこの仕組みは成り立ちません。
どうやって特定しているのでしょうか。
CDDBにもいろいろある
Windows Media Playerで音楽CDを取り込むと曲名が表示されないけど、iTunesだと曲名が表示される。そんなこともあります。ここからもCDDBは色々あることがわかります。
wikipediaによれば
の3つのようです。
特定する方法
いずれもソフトで音楽CDのTOC等を取得し、この値をもとに音楽CDを特定しているようです。
特定する際に算出した値を一般的に、DISK IDと呼んでいるっぽいです。
(ひょっとするとfreeDBだけかも)
しかし各社でDISK IDの算出方法は異なるようです。
商用のライセンスが必要なGracenoteとallmusic(AMG)については、情報が巷に流れていないようなので、以下はGPLで提供されているfreeDBの情報を追います。
必要な情報は、以下で取得することができます。
▽FreeDB 操作 (執筆中)
http://ugnag.lar.jp/docs/cddb/freedb.html
わかりやすいです。
・曲数
・曲ごとの開始位置(フレーム単位)
・曲ごとの長さ (フレーム単位)
これらを*.cdaファイル等から取り出して、元に算出しているとのこと。
一方で、*.cdaファイルには、CDシリアル番号も記録されているそうです。
ではなぜCDシリアル番号を使って音楽CDを特定しないのか。
理由をみつけることができなかったのですが、CDシリアル番号を振る機関みたいなのもみつけられないので、一意になるようにはなっていないのでしょうね、おそらく。
結論
とはいえ、音楽CDは2枚組というのも決して珍しくありません。
また初回版・通常版のようにパッケージが違っても、中身の楽曲は一緒でしょうから、DiskIDは一緒になりますし。
つまり、パッケージの特定にはほとんど使えないと思います。
利用者が検索のヒントにするにも、DiskIDは巷にでていませんから難しいですね。
GPLのライセンスに沿って、freeDBから情報を取得したり、送信したりできるようになれば……これはこれで面白い気がします。いや利用者的にどうかはともかく、自己満足的に(笑)
パッケージテーブルとディスクテーブルを別に持って、さらに楽曲テーブルを持てば、あまり手間をかけずに情報をまわすことができますね。
とても今回はそこまでいかないのですが、一応検討の記録ということで。
(その他参考)
▽FreeDBからCD情報を取得するためのDISCID算出(トラログ)
http://blog.toratech.net/article/24473002.html
▽CDDBのプロトコル(YATUのたわごと)
http://d.hatena.ne.jp/yatu/20060415