iTuesStore アフィリ関連ライトハック

世界最大の音楽ダウンロードショップ、iTuesStore がアフィリエイトプログラムを提供していることは多くの方がご存知だと思いますが、私自身もリンクシェアを通じてアフィリエイトに参加をしている一人です。ただ正直なところ、プラットホームが iTunes クローズド過ぎる印象を持つのは私だけでしょうか?

どういうことかと言うと、例えばアフィリエイターに提供されるこのリンクをクリックすると、「けいおん!秋山澪たんイメージソングEPの Web ページが表示されて、次いで iTunes が起動される、という仕組みになっています。不満なのは、アフィリエイト参加者はこの導線でしかサービスを行えないことです。そもそも、Web ページ内でも曲の試聴が可能になっているのに、何故ページ表示時に iTunes を起動させるか分かりません。Web ページ内で気軽に試聴させて、購入したくなったら「iTunesを起動して購入する」ボタンをクリックさせる、という手順の方が絶対にユーザフレンドリだと思うのですが。

例えばブログページのサイドバーに、プッシュしたいアルバムのジャケットと楽曲一覧がコンパクトに表示されていて、その中で試聴も行える、というのが私の実現したいサービスの姿です。この要件は「技術的に」不可能なのか? という疑問を出発点に、このアフィリエイト周りの仕組みを軽く調べてみました。

まず、提供されたリンクをクリックして表示される Web ページで行われている処理(JavaScript)を追うところから始めました。このページでリンクされている JavaScript

<script type="text/javascript" charset="utf-8" src="http://ax.phobos.apple.com.edgesuite.net/htmlResources/9AF3/web-storefront-base.jsz"></script>
<script type="text/javascript" charset="utf-8" src="http://ax.phobos.apple.com.edgesuite.net/htmlResources/9AF3/web-storefront-preview.jsz"></script>
<script type="text/javascript" charset="utf-8" src="http://ax.phobos.apple.com.edgesuite.net/htmlResources/9AF3/web-storefront-previewRegionSensitive.jsz"></script>

は合計で1万行くらいあり(ビューティファイアを通して読みやすくした後ですが)、かなりビビりましたが、実際は当たりをつけて重点的に読むだけでだいたいの全体像がつかめました。Web ページのロード時に行われる処理はざっくり言うと

  1. PC に iTunes がインストールされているか調べる。
  2. されている場合は、当該ページ URIプロトコルを http から itms に書き換えたものを、window.open() する。

てな感じです。つまり、iTunes インストール時に、プロトコル itms の対応アプリが iTunes になるようにセットされているらしく、itms://〜 を叩くと iTunes が起動するという訳です。ということなら、曲を試聴する仕組みが自前で実現できれば、iTunes 起動無しでお気軽試聴も実現できそうです。試聴はどのような仕組みなんでしょうか? 結論から言うと、Web ブラウザの QuickTime プラグイン(これも iTunes インストール時にセットアップされると思われ)を JavaScript で制御している、というものでした。Web ページには表示されている曲目の試聴音源(30秒程の.m4aファイル)の URI が埋め込まれていて、この URIQuickTime に渡して再生させる、というシンプルなものでした。音源ファイルには特にアクセス制限や DRM が施されている訳でもないようです。以下は、これを思いっきりシンプルにしたコードです。

<!-- JavaScript -->
<script type="text/javascript" charset="utf-8">
// 再生処理
function itunesPlay() {
	var qt = document.getElementById( 'QuickTime' );
	qt.SetURL( 'http://a1.phobos.apple.com/(略).m4a' );
	qt.Play();
}
</script>

<!-- QuickTime プラグイン -->
<object type="video/quicktime" data="" width="1" height="1" id="QuickTime">
	<param name="autoplay" value="false" />
	<param name="controller" value="false" />
	<param name="hide" value="true" />
	<param name="EnableJavaScript" value="true" />
	<param name="postdomevents" value="true"/>
</object>

もちろん、実際にはブラウザ判定による分岐を始めややこしい処理が満載で、三角印のプレイボタン周りのビジュアル効果やフェードイン・アウト処理までもがガリガリ書かれていて、けっこう泥臭いなぁと思いました。

兎に角、この難易度だったら上記案件を実現できそうだな、と思い、ちょこちょこっとプロトタイピングして予想よりあっさりと自前の Web ページ内で試聴音源の再生に成功しました。これを少し小奇麗にして当 bLog で華々しく発表、と思ったのですが、Windows 上だと上手く動作しないという不具合にぶち当たりました(普段 Mac を使ってるので)。よくよく調べると、アフィリで表示される Apple の Web ページの試聴で既に同様の不具合が出ており、私の書いたプログラムのせいでもなさそうです。最もユーザが多い Windows 環境下で不具合が出ているというのは一寸信じ難いので、私の PC 環境に原因があるかもしれません。とにかく、当初の目論見を Mac 限定にする訳にもいかず、これ以上はさらに時間を費やしての調査が必要そうなので、一連の試みはひとまず終了することにしました。志半ばというか、予想しなかった事態による挫折で無念ですが。

最近では Amazon でも音楽コンテンツの試聴が始まっているようですが、とにかくこの試聴手段をもっとオープンかつフレキシブルにして、多くのネットユーザが自由に楽しいコンテンツづくり出来るような状況になって欲しいと思います。お薦めの楽曲を好きに組み合わせて、ちょうど昔のオリジナルテープづくりみたいな行為が Web 上で不特定多数に向けてできるようになれば楽しいと思うんですがねー。アフィリ提供元の収益にも充分つながると思いますし。

追記
「オリジナルテープ」の発想を、YouTube に転がっている音源で実現しちゃえ、という割り切りで構築されたサービスが最近ローンチされました。UGUISS さんFreeLabell というサービスです。私も早速参加して「ジョジョの奇妙な Mix」を皮切りに、こんなアルバムを作ってみました(楽しっ)。