音楽情報データベース「MusicBrainz」のAPI備忘録
音楽データベースのMusicBrainzからデータを引っ張ってくるときの備忘録。
手元にあった林原めぐみのアルバム(Fifty-Fifty)を例に書いています。
- アーティスト: 林原めぐみ
- 出版社/メーカー: キングレコード
- 発売日: 2018/03/30
- メディア: CD
- この商品を含むブログ (1件) を見る
前提
MusicBrainzでは各リソースごとにMBIDと呼ばれる一意なIDが割り振られています。
ここでいうリソースとは
* area
* artist
* event
* instrument
* label
* place
* recording
* release
* release-group
* series
* work
* url
の12個の要素のこと。
詳細は下記を参照。
例えば「林原めぐみ」というアーティスト(Artist)のMBIDは「375a3c4c-7898-47f0-ad0e-443a75148c7a」となります。
Fifty-Fiftyというアルバム(Release)のMBIDは「69322e7c-0fef-409e-a9f6-b43d7c361398」となります。
このアルバムに収録されている「恐山ル・ヴォワール 」という曲(Recording)のMBIDは「b7a7d6d6-b40e-47b0-96a5-208219471bea」。
発売元(Label)はキングレコードなのでMBIDは「856ae6ab-e3cb-4e8d-a69b-8269844d50a3」。
MBIDがわからない場合のデータ取得方法
DiscIDとTOCをもとに取得できます。
DiscIDの算出方法は下記のサイトを参照。
ライブラリも提供されているのでそれを使うのが確実かと。
上記のアルバムの場合、下記で取得できます。
PBk5WCAkltkq49R0Pawn4b_Qe1Y-がDiscID、それ以降のTOCのうち、1+14となっている部分が最初のトラックIDと最後のトラックID。
それ以降がTOCですね。
最初の336665がトラック0にあたり、それ以降トラック1、トラック2・・・トラック14となる模様。
取得できたXML内の、"release id="の項の値がMBIDとなります。
なお、上記URLに「&fmt=json」を付けておくと、JSONで取得可能。
CDの情報取得
https://musicbrainz.org/ws/2/release/69322e7c-0fef-409e-a9f6-b43d7c361398
上記の場合、タイトルは取れますが、曲名、アーティスト名などは取れません。
「inc=」のサブクエリを付けて取得する必要があります。
曲名も含めて取得したい場合
https://musicbrainz.org/ws/2/release/69322e7c-0fef-409e-a9f6-b43d7c361398?inc=recordings
のように、「?inc=recordings」を付けることで取得可能。
複数のサブクエリを用いる場合は「+」で区切る。
例)
これだとアルバム全体のアーティスト、発売元、曲情報(曲ごとのアーティスト情報も含む)が取得可能。
曲の情報取得
https://musicbrainz.org/ws/2/recording/ed015f01-1494-45ca-baa3-dc5a3196e744
上記だとタイトルのみ。
「?inc=artists」を付けることでアーティスト名も取得可能。
「?inc=releases」を付けることでどのCDに収録されているかが取得可能。
アルバムアート(カバーアート)の取得
CDのアルバムアートが取得可能。
http://coverartarchive.org/release/69322e7c-0fef-409e-a9f6-b43d7c361398
CDのMBIDを渡すとJSON形式でURLが取得可能。
CDによってはパッケージの前面背面だけでなく、ブックレットやCDレーベルも取得可能な模様。
・・・ブックレットはさすがにまずいと思うんですが、いいんかこれ・・・。
前面、背面を指定したい場合は
http://coverartarchive.org/release/69322e7c-0fef-409e-a9f6-b43d7c361398/front
のように、前面なら「front」、背面なら「back」と末尾につければOK。
これだと(存在する場合はですが )直接画像が取得されます。