iTunes Store Web Service Search APIで取得できるアートワーク

 iTunes Store Web Service Search APIのアートワークについての考察。アイコンのサイズについて。
 取得できる情報は「artworkUrl60」と「artworkUrl100」。それぞれ縦横60ピクセルと100ピクセルのサイズ。名前から想定できるものだ。と思いきや、それが実際は異なるという話から。
 確かにアルバムや曲、ムービーのアートワークは想定されるサイズ(ムービーは縦横比が違ったりするものもあるけど、おおむねそのサイズ)。たとえば、こんな感じ(以下、商品アイコンおよび名称はアフィリエイトリンクになってます)。
Ray Of Hope Ray Of Hope
 ご承知のとおり、左がartworkUrl60、右がartworkUrl100(例は山下達郎の「Ray Of Hope」)。
 しかし、アプリ(App)のアートワークはそうではない。artworkUrl60については、アプリもその他の商品(アルバム、曲、ムービー)と同様なのだが。
 artworkUrl100は512×512ピクセルの画像が返ってくる
 実例を見てもらおう。いずれも同じ商品だ(有名なスケジュール管理ソフト「さいすけ」)。


●artworkUrl60
さいすけ
●artworkUrl100
さいすけ
 100でかすぎ!
 ちなみに、APIで取得できるartworkUrl100のファイルのURLは以下のとおり。
 http://a1.mzstatic.com/us/r1000/087/Purple/ad/16/0e/mzl.meiruzgi.jpg
 というわけで、そのまま使うにはいまひとつ。HTMLタグでサイズを指定してもいいのだろうが、実際にダウンロードされるファイルのサイズは変わらない。帯域的にも抑えたいところ。
 では、同じAPIを使っていると思われる「はてな」はどうしてるのだろうか? はてなのiPhoneアプリのページはこちら。
 「はてなブックマーク – iPhone アプリ
 ファイルの情報を見てみると、
 http://a1.mzstatic.com/us/r1000/069/Purple/96/86/90/mzl.nbsbtgfg.100×100-75.png
 とある。以下、これを便宜上「はてな方式」と呼ぶこととする。画像はこんな感じ。
●はてな方式
さいすけ
 サイズ指定なしでこの大きさ。帯域的にもこのほうがよさそう。
 で、もう一度、ファイル名を見てみる。拡張子の直前の「100×100-75」がポイントだろうか? 
 というか、拡張子自体が違ってるじゃないか。一括置換では無理か?
 と思い、さらに調べる。
 そもそもアプリによって、artworkUrl100のURLの拡張子は異なることが判明。pngだったりjpgだったり。デベロッパーによって違うのだろうか? それに対して、artworkUrl60はすべてpngで統一されているようだ(調査漏れがあるかもですが。これはほかも同様)。
 そして、はてな方式に置換してみる。元がjpgでもpngでもpngでも、pngに一括で置換でOKの模様。JavaScriptならこんな感じ?
 url = url.replace(/png|jpg/, “100×100-75.png”);
 なお、上の例でははてな方式のみ角丸で光が反射したような効果になってるけど、全部が全部そうなるわけではない。これはデベロッパーがあらかじめ用意した場合、ということになりそう。以下、例。
●artwirkUrl100をwidth指定で縮小
さいすけ 無料版ドラッグカレンダー (iPhoneカレンダーと自動同期)-DragCalハチカレンダー(iPhoneカレンダー対応)Caleve
●はてな方式
さいすけ 無料版ドラッグカレンダー (iPhoneカレンダーと自動同期)-DragCalハチカレンダー(iPhoneカレンダー対応)Caleve
 さらに調べる。
 iTunesのWebプレビューページでは175×175ピクセルのアイコンが使われている。これなんかは、拡張子の前の部分が「175×175-75」となっている。ほかの数字を指定してもいけそうだが、そうでもないようだ。あくまでもいくつかのパターンが用意されているということか。
 さらに調べると、拡張子がjpgとpngのいずれかがあるということさえ、必ずしもそうではないようだ。だいたい、artworkUrl100に拡張子が「tif」のファイル名が返ってくるものすらある! 「tiff」なんてのもあるし。こんなのまで許されてんの? ありえねー。デベロッパーの申請次第なのか、それともAPIのデータベースのミスなのか(後者である可能性は低そう)。これをはてな方式に置換してもファイルは存在しないし。うーむ。
 実質、artworkUrl60以外は使えないんじゃないだろうか?
 とりあえず、今後のためにメモ。もちろんではあるが、この方法でのリンクが有効かどうかは責任は持てない。
 そういえば、リンク作成用Mac用アプリとか作ってる人はどうしてるんだろう? それは面倒なので今回は調べない。

コメント