まず第一に、最も一般的な使用シナリオである mp3 にメタデータを追加する必要があります。「通常の」方法は、Musicbrainz Tagger を使用し、そこでこれらのファイルを開き、インターフェイスを操作して正しいメタデータを添付することです。推奨される (GUI) ツールはMusicbrain Picardです。
また、Perl モジュールは現在非推奨となっているMusicBrainz のWeb サービス バージョン 1を使用していることも述べたいと思います。この Web サービスは、現在 MusicBrainz で使用されているものとは別のデータベース スキーム用に作成されたため、いくつかの問題があります。
ただし、現在のWeb サービス バージョン 2で利用できるのは python ライブラリのみです: python-musicbrainzngs。
Perl モジュールを引き続き使用できますが、「奇妙な」問題が発生した場合は、これが原因である可能性があります。
これは、Web サービスが一般的にどのように機能するか (および、この Web サービスのラッパーとして Perl モジュールに直接適用する方法) です。検索すると、次のようになります。
http://musicbrainz.org/ws/1/track/?artist=%22Ryan%20Adams%22&title=%22when%20the%20stars%20go%20blue%22
そこに、このトラックの録音のリストが表示されます。これらの再コーディングは、複数のリリース (ReleaseList) で行われます。これらの多くは「コンパイル」タイプであるため、無視できます。おそらく「アルバム」リリースが必要です。
おそらく、リストに同じ名前のアルバム リリースが複数ある理由を自問することでしょう。これは、MusicBrainz での「リリース」が、リリース イベントといくつかのメディアの組み合わせであるためです。米国版とドイツ語版のデラックス エディションなどがあるかもしれません。これらのリリースはすべて、1 つの「リリース グループ」に含まれています。
おそらく、この「リリース グループ」の名前が必要になるでしょう。これは、ほとんどの場合、このグループ内のすべてのリリースの名前でもあります。
MusicBrainz データベースがどのように構成されているかについて少しお読みください。
もちろん、これは基本的な使用例にすぎません。アーティスト/タイトルのスペルミス、複数または欠落しているアルバム リリース グループなどに遭遇する可能性があります。ただし、全体として機能するはずであり、「問題」のケースを特別なディレクトリにドロップして、Picard で処理することができます。Picard には、「音楽分析」 (PUID、Acoustid) ごとにファイルを識別する他の手段もあります。
編集:
my @tracklist = $response->track_list();
foreach my $track ( @tracklist ) {
print $track->title(), " - ", $track->artist()->name(), "\n";
my @releaselist = $track->release_list();
foreach my $release ( @releaselist ) {
print " ", $release->title(), " - ", $release->type();
}
}
一般的には機能するはずですが、機能しません。応答のすべてのトラックを提供しますが、どういうわけか release_list() からリリースを抽出できません。スキーマが変更されたか、perl モジュールが壊れている可能性があります。