iTunes Store Web Service Search APIのアートワークについての考察。アイコンのサイズについて。
取得できる情報は「artworkUrl60」と「artworkUrl100」。それぞれ縦横60ピクセルと100ピクセルのサイズ。名前から想定できるものだ。と思いきや、それが実際は異なるという話から。
確かにアルバムや曲、ムービーのアートワークは想定されるサイズ(ムービーは縦横比が違ったりするものもあるけど、おおむねそのサイズ)。たとえば、こんな感じ(以下、商品アイコンおよび名称はアフィリエイトリンクになってます)。
ご承知のとおり、左が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指定で縮小
●はてな方式
さらに調べる。
iTunesのWebプレビューページでは175×175ピクセルのアイコンが使われている。これなんかは、拡張子の前の部分が「175×175-75」となっている。ほかの数字を指定してもいけそうだが、そうでもないようだ。あくまでもいくつかのパターンが用意されているということか。
さらに調べると、拡張子がjpgとpngのいずれかがあるということさえ、必ずしもそうではないようだ。だいたい、artworkUrl100に拡張子が「tif」のファイル名が返ってくるものすらある! 「tiff」なんてのもあるし。こんなのまで許されてんの? ありえねー。デベロッパーの申請次第なのか、それともAPIのデータベースのミスなのか(後者である可能性は低そう)。これをはてな方式に置換してもファイルは存在しないし。うーむ。
実質、artworkUrl60以外は使えないんじゃないだろうか?
とりあえず、今後のためにメモ。もちろんではあるが、この方法でのリンクが有効かどうかは責任は持てない。
そういえば、リンク作成用Mac用アプリとか作ってる人はどうしてるんだろう? それは面倒なので今回は調べない。
コメント