iPhone App Storeの無料アプリ総合ランキング2位に「iLoveMusic」という無料で音楽を聞けるアプリがありました。目立つので気になっていた人も多いかと思います。私も気になって説明を読んでみたのですが、すぐわかったのは、音楽データはインターネット上で公開されているサービスに掲載されているコンテンツで、ダウンロード機能はない(ストリーミング再生)ということでした。そしてユーザーたちは、著作権にまつわる問題や法律(違法かどうか)が気になっているようです。
私の場合は、「このアプリが音楽データを一体どこから持ってきているのか」「本当にインターネット上で公開されているデータからストリーミング再生しているのか(iLoveMusicのサーバーでキャッシュしていたりしないのか)」が気になりました。
この点については、多くの利用者やその他のいろいろな立場の人(権利者とか)も気になっていると思われます。そこで今回は、WiresharkでiPhoneのパケットキャプチャを行い、音楽データはどこからストリーミングされているのかを調べてみました。紹介します。
最終的に、中国の音楽ストリーミングサービスから直接ストリーミング再生していることが判明しました。
そして、「こういう音楽無料再生アプリって、こんなふうに作れてしまうんだなぁ」、ということがよくわかりました。
他の人気アプリ4つについても同様の解析を行いました(5月14日):AppStoreで人気の「無料音楽アプリ」5つを通信解析してわかった音楽無料提供の仕組みとは (iLoveMusic・MusicCloud・DropMusic・Music Stream・Music Bank)
iLoveMusic は、4/17にiOS版がリリースされたばかりの新しいアプリです(Android版は4/28リリース)。
しかし、既にiTunesの無料アプリの総合ランキング上位にあり、100万ダウンロードを突破済みで、無料総合ランキング1位も経験しているようです。
作者の名前は「Yinlong Tan」という人で、中国系かな、と思わせるのですが、アプリの対応言語は「日本語」「英語」で中国語はありません。
というか、オリコンのランキングが前面に出ていたり、アプリ内の日本語説明文が日本語ネイティブが書いたと思われる自然な日本語だったので、もしかすると作者が日本人なのかもしれません。また、Android版のレビューに対しては、流暢な日本語で答えています。
さて、このアプリの解説文には、「無料で数千万曲が聴き放題」と書かれているのですが、その音楽データについては、次のように説明されています。
【コンテンツについて】 当アプリ内においての音楽は一般にインターネット上で公開されているサービス上に掲載されているコンテンツであり、ダウンロードする機能はありません。
当アプリでは当該コンテンツの著作権に関しては関知しておりませんのでご了承ください。
本アプリにおいて著作権を侵害している又はその恐れがあるものについては、対応致しますのでお問合わせより御連絡下さい。
ここで重要なのは、「音楽データは、ほかのサービスから取得している」ということと、「ダウンロード機能はない」ということです。
どちらも、法律的な問題を回避するため(回避できているかは不明)の文言だと思われます。とはいえ、それはアプリ作者の話ではなく、ユーザーを安心させるための文章のように感じました(ダウンロード機能がない、というところが特に)。
ちなみに、このアプリには、大量の広告が掲載されています。
さて、iPhone端末の通信をWiresharkでパケットキャプチャする方法は別掲することにして、分析結果を紹介します。
アプリを起動して、通信先を特定する目的で、最初の画面に表示された音楽を1つ、再生してみました。そしてそこから、中国国内のIPアドレスからストリーミングされていることが分かりました。
IPアドレスから中国のIPアドレスであることはわかったのですが、IPアドレスだけでは、どこのなんという名前のどういうサービスからストリーミングされているのかは不明でした(後ほど判明します)。
これだけだと、このアプリ作者(※所在は分からない)が中国国内にサーバーを借りて、自らストリーミングサーバーを立てている可能性も考えられます。
IPアドレスで中国だ、とわかっても、そこからサービスまで特定するのは難しそうでした。IPアドレスからの逆引きはできませんでした。
そこで目をつけたのが、iLoveMusicの音楽の検索機能です。
ストリーミングサーバーは別のサイトであっても、検索サーバーは、iLoveMusicの所有するサーバーかもしれない!と思ったからです(注:この時点で、いろいろなサービスから音楽データをかき集めてきたのだと思っていた)。
そこで、Wiresharkで、検索機能を使った直後のHTTPヘッダを見てみました。
すると、「GET /app/android/search-part?key=searchword&type=songs&page=1 HTTP/1.1 Host: api.xiami.com ...」や「GET /app/android/search-part?key=searchword&type=albums&page=1 HTTP/1.1 Host: api.xiami.com ...」というリクエストヘッダを見つけることができました。
つまり、iLoveMusicは、Xiami.comの音楽・アルバム検索APIを利用していたとわかったのです。また、他のサービスへの検索リクエストは見当たりませんでした。
ここから、「xiami.com」というサイトの、検索APIを叩いていることが分かりました。また、そのドメインから、「虾米音乐网(xiami.com)」というサイトが見つかりました。
このxiami.comについて調べてみると、Xiami.comは、中国の無料音楽ストリーミングサイトであるとわかりました。
そしてこのAPIからは、アルバムのジャケット画像(.jpg)や、xiami.com上のmp3ファイルのURL、アルバム名、アーティスト名、曲名、音楽固有のID などがごっそり取得できているようでした。
つまり、iLoveMusicに表示される音楽情報は、丸ごとこのXiami.comのAPIから取得できるものだということがわかりました。つまり、自前の音楽情報サーバーは必要なかったのです。
「こんな音楽ファイル検索APIがあるとは!」という軽い衝撃です。
ただ、よくAPIのURLを見てみると、api.xiami.com/app/android/...となっており、なぜか「android」という文字が入っています。
そこで、APIのURLで検索してapi.xiami.comの解説を探したのですが、公式の解説ページは見つからず(フォーラムの書き込みが見つかるくらい)、その代わりに、xiami.comの公式アプリ「虾米音乐」があることがわかりました(iOS、Android、Windows、Macなどなど)。
このことから、xiami.comの公式アプリ(虾米音乐)が利用している音楽検索APIを使っていると予想出来ました。
ここで、検索APIから返ってきている.mp3のあるホスト(m5.file.xiami.com)のドメインをnslookupしてみると、先ほど詳細不明だった、音楽ファイルのストリーミング元IPアドレスと一致しました。
こうしてようやく、音楽ファイルはXiami.comから持ってきているということが明らかになりました。
また、検索APIのところで指摘したように、他のサービスは使っておらず、Xiami.comの検索APIと、Xiami.comの音楽ファイルのみを使っていると考えられます。
ということから、iLoveMusicは、Xiami.comという中国のサイトに完全に乗っかった、クライアントアプリだということがわかりました。
とりあえず、こんなに簡単に音楽ファイルを検索できるAPIが利用可能だとは思いませんでした。いくつかのサイトをクロールして音楽データの情報を収集しているのかと最初は思っていたので、驚きました。
そして、この仕組みから、類似アプリがいくらでも作られる可能性がある、ということも分かりました。
今回は調べていませんが、他のアプリもこういうAPIを利用していているのかもしれません。
本当はもっと調べればいろいろわかるはずですが、もう事前に知りたかった重要なところは判明したので、アプリはアンインストールしました。
iLoveMusic公式サイトのドメイン「ilovemusic.pw」のWhois情報を見てみると、バリュードメイン(日本のドメイン登録代行・GMOデジロック株式会社)のWhois情報代行を利用していることがわかるので、やはりiLoveMusicの作者は日本人であると思われます(※海外の人がわざわざ日本のドメイン登録代行業者を使うとは考えにくい前提)。
iLoveMusicでは、検索した曲やランキングにあった曲を再生リストにまとめておくことが出来ます。しかし、初期状態では、曲数にきびしい制限があります。
その曲数上限が「レビューする」ことで増加します。また、アプリへユーザーを招待すると曲数の上限を増やすことができるので、招待コードを晒す場所としても利用されているようです(3人招待で曲数が無制限になる)。
そんなこんなで、2014年5月11日現在で、累計16万レビュー(iPhone版)もされています。
公開日:2014年5月10日
最終更新日:2014年7月2日