アニメイトTV
http://www.animate.tv/
アニメイトTV の RTMPプロトコルで配信される動画を、ローカル環境に保存する方法の覚え書きです。
アニメイトTV の動画(音声)は、mmsプロトコルで配信されている場合と、rtmpプロトコルで配信されている場合と、があるみたいです。スクリプトは、mmsプロトコルの URLを拾った場合、それをそのまま表示するようにしています。mmsプロトコルの動画に関しては、mmsプロトコルに対応したダウンロード用のアプリケーションなどがありますので、そちらをお使いになることをお勧めします。この記事では、アニメイトTV の rtmpプロトコルの動画を対象にすることにします。
記事の中で、「ブラウザから Cookie値を拾ってこれをスクリプト側に教えてやる」、ということをしています。rtmpプロトコルの動画の URL は、Cookie値を送信してやらないと、うまく拾えないことが多くて、このようにしています。しかし、なかには、Cookie値を送信しなくても URL を拾えることもあるみたいです。たとえば、上記、mmsプロトコルの URL は、たいていの場合、Cookie値がなくても拾えるようでした。
- RTMPDump
- スクリプト animate.rsite.js
- 右クリックから保存してください。
- スクリプトが、 mmsプロトコルの URL を拾った時は、それをそのまま表示します。rtmpプロトコルの URL を拾った時は、RTMPDump のコマンドライン文字列を表示します。
animate.tv のクッキー値を取得します。ここでは、Internet Explorer を例にして、ブックマークレットを使った方法を紹介します。
- Internet Explorer で、今見ているこのページを開きます。
- このリンク、
animate.tvのクッキー値を取得するブックマークレット
にカーソルをあて、右クリック。コンテキストメニューから、お気に入りに追加、をクリックします。- ここで、セキュリティの警告が出るかもしれません。
- お気に入りに追加、のダイアログボックスが表示されます。
名前、作成先を設定して、よければ OK をクリック。 - お気に入りに、ブックマークレットが作成されます。
- このブックマークレットの作成は、必須ではありません。要するに、animate.tv の Cookie値が取得できればよいです。例えば、Internet Explorer では、ツールバーの ツール > 開発者ツール、から開発者ツールを開き、開発者ツールのツールバー、キャッシュ > Cookie 情報を表示する、として Cookie情報を表示できます。animate.tv の Cookie の NAME が "atv" の VALUE 値を取得します。この Value値を JavaScript で取得しよう、というのが上記ブックマークレットです。
ここでは、Internet Explorer を例にします。
- Internet Explorer を立ち上げて、animate.tv のページを開きます。
- ここで、Internet Explorer のお気に入りを開いて、先ほど作成したブックマークレットをクリックします。ダイアログボックスが開いて、
みたいな、0 ~ 9、a ~ f の 32文字程度の文字列が表示されれば成功です。この文字列を後で使いますので、コピーしてメモ帳などに貼り付けておいてください。- ブックマークレットは、JavaScript として動作しますので、ブラウザの JavaScript(アクションスクリプト)設定を有効にしておく必要があります。
- 取得に失敗した場合は、「取得失敗」とか表示されます。この場合は、別の方法で Cookie 値を調べて、Cookie の atv値を取得してください。
- ダイアログボックス内の文字列の取得は、XP 以降であれば、たぶん、Ctrl + C キーでできると思います。うまく取得できない場合は、ダイアログボックス内の文字列を取得することのできるアプリケーションなどありますので、捜してみてください。
- 保存したい動画や音声の "details.php" ページへ移動します。
- "details.php"ページというのは、
とか
とか
とか
表示されているページです。このアイコンのリンクから、実際の動画や音声を再生するページへと移動できます。 - 表示されているアイコンが、
とかなっている場合は、ログインしてください。 - その動画の "details.php"ページを開いた、という「実績」がないと、リンク先ページがうまく開けない場合があるみたいです。
- "details.php"ページというのは、
- 3のアイコンにポイントして右クリック、コンテキストメニューから、ショートカットのコピーをクリックすると、このアイコンのリンク先の URL がクリップボードにコピーされると思うので、これを、メモ帳などに貼り付けておきます。
- リンク先の URL は、たいていの場合、
http://www.animate.tv/play.php?パラメータ
という形式です。
- リンク先の URL は、たいていの場合、
- atv値とリンク先URLが取得できました。以上でブラウザ側での操作は終わりですが、念のため、ブラウザは閉じずにそのまま開いておいてください。
- 先に保存した animate.rsite.js をダブルクリック、ないし、右クリックから開く、とすると、URLを入力するインプットボックスが開くと思うので、ここに、先の4で取得した、リンク先URL を入力します。OK をクリック。
- つづいて、Cookie の atv 値を入力するインプットボックスが開くと思うので、ここに、先の2で取得した atv値を入力します。OK をクリック。
- Cookie の atv値を使う必要がなければ、キャンセルをクリックします。
- うまくいけば、ダイアログボックスが開き、RTMPDump のコマンドライン文字列(または、mmsプロトコルの URL)が表示されます。取得がうまくいかなければ、エラーメッセージとかが表示されるかもしれません。
- 検証は、無料のコンテンツのみで行っています。有料のものについては未検証です。
- Cookie の atv値を入力しなくても、mms url や RTMPDumpコマンドライン文字列が取得できる場合もあります。Cookie が必要であるかないかの見分け方は、ちょっとわかりません。
- Cookie の atv値をインプットボックスから入力するのが面倒な場合は、animate.rsite.js の 21 ~ 22 行目あたり、_AniMate.SetAtv を true にして、_AniMate.Atv に atv 値を設定します。
- Cookie の atv値は、animate のサーバがセッション管理するために発行する一時的な識別子だろうと思います。この値の元に、ユーザーのログイン情報やページの閲覧状況などを記憶していくのでしょう。この値は、ユーザー側にあっては、ユーザー側がブラウザを閉じるまで有効だろうと思います。サーバ側では、おそらく、一定時間が経過すると、破棄されるのではないかと思います。
- Cookie の atv値の元には、そのユーザーのログイン情報、そこから引き出されるアニメエンの情報などが付いていくと考えられますので、この値を取得しても、他人に教えないようにしてください。(一時的なものでいずれは破棄されるにしても)。
- WSH上でスクリプトを動かしているため、いったんブラウザ側から Cookie値を取り出すというめんどくさいことをやっています。ブラウザ上(内)で動作するスクリプトのように、ブラウザの documentオブジェクトにアクセスできるようなスクリプトにしてやれば、cookie値を外に取りだす必要がない(あるいは Cookieそのものを取得する必要がない)ので、もっとすっきりした安全なスクリプトになると思います。作れる方は作ってみてください。Craving Explorer は、スクリプト側に documentオブジェクトを提供してくれないんですよね。