もふもふ技術部

音楽APIのGracenote APIを叩いてperfumeを検索してみた


こんばんは!もふもふ部の部長の原田敦です。

Mashup Awards 9のアイディアソンでGracenote APIの存在を知って興味を持ったのがきっかけで、さらにはGracenote賞なるものを獲得しGracenote中の人からTシャツとフリスビー(なぜ)をいただいたりしたので、せっかくだからなんか形になるもの作りたいなーという所存です。

gracenote

準備

手始めにどんなAPIなのか実際に叩いて調べる見ることに。

あのiTunesで曲をインポートしたときに勝手にジャケット写真とか曲名とかその他もろもろの情報入るじゃないですか。実はあれGracenoteの楽曲情報を引っ張ってきているらしいです。意外と身近なところで活用されていました。

さて、やっていきましょう。まずは公式Developerサイトへ。
Facebook認証も出来るので面倒な登録作業なしで動かせます。
https://developer.gracenote.com

ログインしたら、上のメニューからMy Appsを選択。
Add new appからアプリケーションを作成するとClient IDなどが発行されます。

この辺がGetting Startedな感じ。ただ英語の方には記載があるけど日本語の方には記載がない情報があったりしたので注意。

英語
https://developer.gracenote.com/web-api

日本語
https://developer.gracenote.com/ja/web-api

リクエストを投げ飛ばす

今回はコードは組まずにcurlだけでやっていきます。まずはユーザーIDを取得しましょう。<CLIENT>には上記 Add new app で発行されたClient ID – Client Tagが入ります。

register.xml

XXXXXXXXの部分にはappのCLIENT_IDが入ります。
curl発射!

こんな感じのXMLが返ってきました。ここの<USER>がユーザーIDになります。これを使用して実際のAPIコールを行うことになります。とりあえずメモメモ。

さて、APIを叩いてみますかね。
ALBUM_SEARCHというクエリを投げる例。詳細情報が取得されます。で検索条件を指定するらしい。
この例ではアーティストは”perfume”でアルバム名が”GAME”、トラック名が”チョコレイト・ディスコ”ってことっぽい。

他にはTOC情報を取得するクエリもあるみたい。TOC情報ってのは、各トラックがどの位置からスタートしているかという情報のこと。
ここで上記で取得したクライアントIDとユーザーIDが必要になります。

music_details.xml

APIコールの結果がXMLで返ってきます。ざっとみると、国や性別、曲のテンポ、ジャンル、トラック数、カバーアート画像、バイオグラフィー、アーティスト画像などが含まれてるのがわかります。ちょっとおもしろいのは、「ムード情報」がついている点が特徴ですね!

この例では「チョコレイト・ディスコ」という曲に「Excited」や「Upbeat Pop Groove」っていうムード情報がついてます。
このムード情報は25ムードグループx100分類のムードに細分化されてるそう。この辺はなかなかアイディア心がくすぐられる仕組みですね。

画像類はURLが返ってくるので&amp;を半角アンパサンドに置換してURLコピペしてみれば確認できます。
http://web.content.cddbp.net/cds/2.0?id=8D1DE5C1792B0154&client=13046784&class=cover&origin=front&size=medium&type=image/jpeg&tag=02sEv-CyoKaZAI6Guqh47SlKESTSnUoYtFsgnEBLH6qNuA8tGIg3diSQ

レスポンスの詳しい説明は公式ドキュメントに書いてあるので参照すべし(英語のみ)。
https://developer.gracenote.com/sites/default/files/web/html/index.html

ruby gemのラッパー(非公式)があるようなのでその辺も試してみたいなぁっと。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。