iTunes StoreやApp Storeを検索して結果をJSONで得る方法

iTunes, App Store, iBookstore, and Mac App Store Affiliate Resources – Search API
ここに大体の説明が英語でですが書いてあります。

ひとつ前に書いたiPhoneアプリを開発しようと色々調べてた時に知った、Appleの各ストアを検索するためのSearch APIの使い方。

 

任意の文字列を渡して複数の結果を得るsearchの使い方

参考のページにアプリケーションを検索する際の例として以下のリンクがあります。
http://itunes.apple.com/search?term=yelp&country=us&entity=software


日本のApp Storeを対象とする場合はcountry=jpに変更
http://itunes.apple.com/search?term=yelp&country=jp&entity=software

さらに/jpを追加するとアプリ名や説明などが日本語になります。(アプリによる)
http://itunes.apple.com/jp/search?term=yelp&country=jp&entity=software

最後のパラメータentity=softwareはiPhone(ユニバーサル)アプリのみを対象とします。

iPadアプリを対象とする場合はsoftwareをiPadSoftwareに変更、Macアプリの場合はmacSoftwareに変更して下さい。大文字小文字を区別するのでご注意下さい。

 

次に固有のIDを渡して単一の結果を得るlookupの使い方

iTunes IDからアプリケーションを検索する際の例として以下のリンクがあります。
http://itunes.apple.com/lookup?id=284910350

こちらもcountry=jpや/jpを足して検索対象及び検索結果を変更できます。
http://itunes.apple.com/jp/lookup?id=444303913&country=jp

最後に付いてる9桁の数字がアプリそれぞれが持つユニークな値で、searchで得られたJSONデータにはtrackIdとして含まれています。

ちなみにMacのApp Storeアプリケーションだと、価格の右横の三角をクリックすると出てくるメニューのリンクをコピーで得られるURLにidxxxxxxxxxとして含まれています。

mac app store get unique id

 

最後に、iTunes Storeを検索したい場合はsearchのパラメータentityを削除すると可能です。

entityを削除するとなぜiTunes Storeが検索されるのかと言うと、今回使っていないパラメータmediaのデフォルト値がallとなっている為だと思うのですが、なぜかアプリは検索にかからないようです。