MusicBrainz の復習について(その1)
前にも一度調べて書きましたが、再度webapiを調べます。
まず、 MuzicBrainz ではありとあらゆる情報(楽曲、アーティスト、アルバム等)がユニークなIDで纏められています。
このIDを指定すれば、当該の情報を引き出せそうだということです。
また、MusicBrainz のIDは他の音楽系サイトでも共通で使えるようなので、各文字列情報から ID を取得するのが必要ということになります。
次に IDを取得するためのAPIですが、こちら の方法で取得できそうですね。
英文なので簡単に解説すると、最初に出てくる表のtypeで検索の際に引き出したい情報が指定出来る形になります。
typeで指定可能な各情報はこういう意味のようです(調べがつき次第追加します)
キー名 |
詳細 |
artist |
アーティスト名 |
recording |
楽曲名 |
release |
アルバム名 |
次にfmtでjsonを指定すれば、ブラウザ上で容易に情報をJavaScriptで取り出し出来、
queryで検索文字列を指定する形になりますね。
ちなみにsearchのURLは
"http://musicbrainz.org/ws/2/" で typeとしてその後ろに「指定文字列とスラッシュ」それに続いてパラメータを入れる場合は通常のフォームと同じ様に?に続いてキー=パラメータ文字列で記述し複数パラメータは&で接続出来ます。
まず動作確認した例を挙げてみます。
http://musicbrainz.org/ws/2/artist/?fmt=json&limit=1&query=鷺巣 詩郎
これは”鷺巣 詩郎” 氏のアーティスト情報を取得するために作成したURLです。一応先には説明していませんが、limitで1項目だけ抽出しました。
{"created":"2021-07-13T12:16:16.901Z","count":1405,"offset":0,"artists":[{"id":"9b127d23-f877-4541-83cd-44f46393dfb7","type":"Person","type-id":"b6e035f4-3ce9-331c-97df-83397230b0df","score":100,"gender-id":"36d3d30a-839d-3eda-8cb3-29be4384e4a9","name":"鷺巣詩郎","sort-name":"Sagisu, Shirō","gender":"male","country":"JP","area":{"id":"2db42837-c832-3c27-b4a3-08198f75693c","type":"Country","type-id":"06dd0ae4-8c74-30bb-b43d-95dcedf961de","name":"Japan","sort-name":"Japan","life-span":{"ended":null}},"begin-area":{"id":"1dcdfb34-fa66-496c-9823-51c329deddf6","type":"City","type-id":"6fd8f29a-3d0a-32fc-980d-ea697b69da78","name":"Setagaya","sort-name":"Setagaya","life-span":{"ended":null}},"disambiguation":"anime & film music composer","ipis":["00073418185","00422743574"],"isnis":["0000000079950105"],"life-span":{"begin":"1957-08-29","ended":null},"aliases":[{"sort-name":"Sagisu, Shirō","type-id":"894afba6-2816-3c24-8072-eadb66bd04bc","name":"Shirō Sagisu","locale":"en","type":"Artist name","primary":true,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shirō","type-id":"d4dcd0c0-b341-3612-a332-c0ce797b25cf","name":"鷺巣詩郎","locale":"ja","type":"Legal name","primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Siro","name":"Siro Sagisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"SAGISU, Shirou","name":"SAGISU Shirou","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shiro","name":"Shiro Sagisu (鷺巣詩郎)","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"鷺巣 詩郎","type-id":"894afba6-2816-3c24-8072-eadb66bd04bc","name":"鷺巣 詩郎","locale":"ja","type":"Artist name","primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shiroh","name":"Shiroh Sagisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"鷺巣詩朗","type-id":"1937e404-b981-3cb7-8151-4c86ebfc8d8e","name":"鷺巣詩朗","locale":null,"type":"Search hint","primary":null,"begin-date":null,"end-date":null},{"sort-name":"Shiro Sagasu","name":"Shiro Sagasu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"شيرو ساغيسو","name":"شيرو ساغيسو","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shirou","name":"Shirou Sagisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"鷲巣詩郎","type-id":"1937e404-b981-3cb7-8151-4c86ebfc8d8e","name":"鷲巣詩郎","locale":null,"type":"Search hint","primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shirô","name":"Shirô Sagisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sahisu, Shiro","name":"Shiro Sahisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"Sagisu, Shirow","name":"Shirow Sagisu","locale":null,"type":null,"primary":null,"begin-date":null,"end-date":null},{"sort-name":"さぎす しろう","type-id":"894afba6-2816-3c24-8072-eadb66bd04bc","name":"さぎす しろう","locale":"ja","type":"Artist name","primary":null,"begin-date":null,"end-date":null},{"sort-name":"さぎす しろう","type-id":"894afba6-2816-3c24-8072-eadb66bd04bc","name":"鷺巣詩郎","locale":"ja","type":"Artist name","primary":true,"begin-date":null,"end-date":null}],"tags":[{"count":1,"name":"japanese"},{"count":1,"name":"composer"},{"count":1,"name":"clean up"},{"count":0,"name":"likedis auto"}]}]}
こちらがその際に出てきた結果です。
いろいろ情報がありますが、必要そうなのは "id":"9b127d23-f877-4541-83cd-44f46393dfb7" の部分だけですね。これが ”鷺巣 詩郎” 氏のアーティストとしてのユニークなIDでしょう。
同じ様にアルバム名を指定してIDを取得する方法ではtypeとしてreleaseを指定すれば良いようです。
(楽曲検索は現在捜索中)
また、paramではtype部分を別途指定して絞り込みができるようで
最初のtypeでreleaseを指定後に query="Clarity" AND artist:ZEDD 等と指定した場合は Claryty というアルバム名で アーティストはZEDD という絞り込みが可能でした。