iTunesStore / AppleMusicの楽曲情報をAPIで取得、ブログ紹介用のパーツを作る方法

やわなべです。

先週、こんな自己満足記事を書いたのですが。

AppleMusicで手に入る、ヘッドホンで聴くべきアルバム20枚

この記事の中で、音楽アルバムを紹介するのにiTunesストアへの商品リンクを貼りたかったんですよね。こんな感じで。

すとーりーず / ZAZEN BOYS

2012 / ロック

いつも書籍の紹介で慣れてるAmazonの商品リンクだと早いんですけど、実はiTunesで音楽コンテンツへのリンクって貼ったことがない。どうすればいいのか、この記事のためだけに調べたら意外とシンプルだったんで、備忘録まで。iPhoneアプリの紹介パーツを作成する段取りも全く同じです。

スポンサーリンク

iTunesのAPI呼び出しは簡単

Amazonや楽天の商品を紹介するために、サービス側が用意している仕組みをAPIと言いますが、iTunesにも用意されています。

公式ドキュメントはここ。

iTunes Search API – Affiliate Resources

iTunesStoreとAppStoreで販売されているもの、音楽コンテンツ、映画、ドラマなどの映像コンテンツ、iOS/MacOS向けのアプリもこのAPIによって情報の検索や、詳細情報の取得ができます。

さらにiTunesアフィリエイトの登録をしていれば、商品リンクに自分のIDを埋め込むことができ、誰かがそこからコンテンツを購入した場合にアフィリエイト報酬が支払われる仕組みもあります。まあ、それで稼いでるという話は聞きませんけど。

コンテンツ紹介のためのAPIは基本的にこの2つを使います。

  • 検索API
  • 商品情報取得API

で、iTunesの場合、いずれも簡単なHTTP呼び出しで使えるんですよ。

検索API(Search API)

商品検索は検索ワードと、その他のパラメータをURLにして、呼び出せばOKです。たとえば「beatles」を含む音楽をアルバムを検索するURLはこちら。

https://itunes.apple.com/search までが検索APIのURLで、以下がパラメータです。

  • 検索ワード(term)=beatles
  • 検索メディア(media)=music
  • カテゴリ(entity)=album
  • どの国ストアか(country)=jp

実際、上のURLをクリックしてもらうとわかりますが、Chromeブラウザだと、検索結果をテキストファイルとしてダウンロードします。

中身はこんな。

{
“resultCount”:50,
“results”: [
{“wrapperType”:”collection”, “collectionType”:”Album”, “artistId”:136975, “collectionId”:402060584, “amgArtistId”:3644, “artistName”:”ビートルズ”, “collectionName”:”The Beatles Box Set”, “collectionCensoredName”:”The Beatles Box Set”, “artistViewUrl”:”https://itunes.apple.com/jp/artist/bitoruzu/id136975?uo=4″, “collectionViewUrl”:”https://itunes.apple.com/jp/album/the-beatles-box-set/id402060584?uo=4″, “artworkUrl60″:”https://is3-ssl.mzstatic.com/image/thumb/Music/v4/98/10/bd/9810bd86-9023-fb20-c6d8-d15e6a25222e/source/60x60bb.jpg”, “artworkUrl100″:”https://is3-ssl.mzstatic.com/image/thumb/Music/v4/98/10/bd/9810bd86-9023-fb20-c6d8-d15e6a25222e/source/100x100bb.jpg”, “collectionPrice”:23000.00, “collectionExplicitness”:”notExplicit”, “trackCount”:256, “copyright”:”℗ 2010 The copyright in this audio & audiovisual compilation is owned by EMI Records Ltd”, “country”:”JPN”, “currency”:”JPY”, “releaseDate”:”2009-09-09T07:00:00Z”, “primaryGenreName”:”ロック”},

デフォルトの検索結果が50件で、以下「results(検索結果)」として、50枚のアルバムの詳細情報がずらっと並ぶ形です。フォーマットはJSONというデータ形式で、PHP他どの言語でも簡単に取り出すことができます。

例えば最初のアルバムの情報を分解すると、これらの情報が格納されてることがわかります

商品URLや画像URLをクリックすると、iTunesの詳細画面や画像が表示されるのがわかるかと思います。この中で重要なのがアルバムID(collectionID)です。これがわかると次の商品情報取得APIで、ピンポイントでアルバム情報を取り出すことができます。

Amazonとかだと、このAPIの呼出しするにも認証が必要なんで、かなり複雑になるんですが、それより単純だということがおわかりいただければ。

商品情報取得API(lookup API)

上のアイテムIDがわかっていれば、下のURLで特定のアイテムの情報をひとつだけ取り出せます。例えば上の検索結果の1枚目のアルバムであれば、

でOK。実際クリックするとまた同じようにJSON形式で、ただし今度はアルバム1枚ぶんの情報だけを拾ってきます。中身を見ると、さっきと件数が違うだけで、返されてくる内容は同じなのがわかるかと。

あとはここから欲しい情報をピックアップしてHTMLに整形し、ブログにはっつければOKです。商品URLにアフィリエイトIDを仕込ませたい場合は、商品URLの末尾に「&at=[アフィリエイトID]」とつければよいです。アフィリエイトIDの申請はここからできます。特に審査が厳しいとかもなかったと思います。

iTunesストアとAppleMusicとではリンクが違うのか

ひとつ気になるのが、私が紹介したいのは、あくまで聴き放題サービスであるAppleMusicで聴けるアイテムであって、iTunesストアで個別に販売しているものとイコールでないんですよね。で、ここまで紹介したiTunesのAPIにはAppleMusicに関する記述が全くありません。

アップルの公式ドキュメントを見ると、iOSの9.3から、AppleMusicに対するAPIが用意されたようです。

Apple Music Best Practices for App Developers – Affiliate Resources

アフィリエイトに関する言及もあって、リンクを経由してAppleMusicに加入した場合に報酬が支払われるとのこと。ただ、報酬は1回きりで、加入したユーザーが初月に支払った料金かける料率、ということなんで、ほとんど収入的には期待できないですね。

で、下のページで、具体的にAppleMusicコンテンツへのリンクをどう作るかが書かれてます。

Apple Music is now live – Affiliate Resources

Q. 明示的にAppleMusicへのリンクにしたい場合はどうすればいいか?
A. iTunesのURLに「&app=music」とつければいいよ

Q. 逆に明示的にiTunesストアへのリンクにするには?
A. 同じ箇所を「&app=itunes」とすればよろしい

とのこと。今回の私の場合は、明示的にAppleMusicへ誘導するべく上のiTunesApiで取得したURLの末尾に「&app=music」とつけています。

もちろんAppleMusicで聴ける楽曲はiTunesストアで販売されてる楽曲の一部なので、AppleMusic非対応の楽曲URLに「&app=music」をつけても、リンク先でNot Found的なエラーになるかと。

こんな面倒な手順やってられないよ、という方

APIが簡単なのはわかったけど、その結果をHTMLに整形、ってとこがいちいちやってられないんだよ

という方は、ここまでの手順をブラウザから簡単にできるサービスが公開されているので、それを使えばいいでしょう。アフィリエイトIDの埋め込みにも対応しています。

Sticky iTunes Link Maker – iTunes リンク作成ツール

商品を検索し、見てくれを指定すると、

このようにHTMLパーツを生成してくれます。

「なんだよ、だったら最初からこれ紹介しろよ。ここまでの手順ぜんぶいらねーじゃねぇか」

ええ、その通り。これを使えばAPIの知識もいらないですし、HTMLの組み立てまで全部やってくれますからね。

ただ、楽できるぶんデメリットもあって、「LinkMaker」で作成したブログパーツはHTMLタグを含めると、ひとつで1000文字くらいになるんですよ。冒頭エントリーのように、20個も並べてたら管理画面の入力欄がえらいことになってしまうんですよね。それに、後で見た目を調整したいと思っても、ひとつひとつタグを直さなくちゃいけなくて、ものすごく手間です。

そこで、私はどうしてるかというと、WordPressのショートコード機能を使って、記事中にiTunesストアの商品IDを見つけたら、勝手に紹介パーツを生成するようにしています。まあ、これはこれで、APIの結果をキャッシュ化するとか、テクニックがいるんでまた機会があれば書くかもです。