2014年11月13日

rtmpExplorer + rtmpdumpでGyaO!とかの動画を保存する方法 【2014年版】


このエントリーをはてなブックマークに追加
7か月前には、毎日更新するとか言っていたものの、更新に時間をかけてしまうクセがあるのが露呈したので、ブログ更新は休止する次第としました(そのクセ、Twitterにはちょくちょく出没してますが・・・)

とは思っていたものの、「完全放置は完全放置でアレだなぁ」と思っていたところに良いネタが出来たので記事にしました。



この記事では、タイトルの通りrtmpExprolerとrtmpdumpを利用したGyaO!の動画を保存する方法を紹介します。ここから先の手順を行ったことによる損害・損失等について、管理人は一切の責任を負いませんので、自己責任でお願いします。


rtmpExplorer(もしくはrtmpExploreX)とrtmpdumpは、RTMPを利用したキャッシュしない動画サイト(GyaO!やらニコニコ生放送やら)で配信されている動画を保存する際に、よく利用されているらしいフリーソフトです。
 しかし、今年に入ってからGyaOの動画をrtmpExprolerで視聴しようとすると、「ActiveXが無効になっているため、映像を視聴できません」とエラーが表示されてしまいます。
 そこで、いろいろと調べたところ、どうやら「rtmpExprolerで利用されている、WebBrowserコントロール(IEコンポーネント)がバージョン7のIEとしてレンダリングされている」ことが原因らしいので、ここをどうにかすることにします。



ここのセクションは基礎知識みたいなものなので、読み飛ばしてもらっても構いません。

【rtmpExplorerとは?】 「RTMPを利用した通信(ポート番号:1935)を発見したら、この通信をフックして、ローカルホスト(127.0.0.1:1935)へ接続する」ことを行うソフト(たぶん)です。これ単体ではあまり意味がありません。要するに「rtmpsrv、rtmpsuckの補助ソフトウェア」と思ってもらえればよいです。

【rtmpsuckとは?】  クライアントとサーバーの通信を中継し、Flash Media Serverのconnectコマンド、playコマンドなどのコマンドを"なりすまし"によって読み取る透過プロキシです。

rtmpdumpについて詳しく → RTMPDump和訳(http://rtmp.akemihomura.info/?p=4)




準備(1回だけでOK)
  1.  RTMPExplorer 1(http://www.videohelp.com/tools/RTMPExplorer) の「Download RTMPExplorer 1 (direct link)」をクリックしてダウンロード&解凍します。
  2. RTMPDumpを 公式サイト(http://rtmpdump.mplayerhq.hu/)  からダウンロード・・・したいところですが、ここではKSVさんという方が改良を加えてコンパイルした非公式のバージョンを「rtmpdump-2.4.zip」をクリックしてダウンロード&解凍します。
  3. 解凍したrtmpExplorerが含まれているフォルダの「rtmpsrv.exe」と「rtmpsuck.exe」 を 2. でダウンロードしたそれと置き換えてください。 
  4. このままだと、あとでファイル名をいちいち変更する手間があるので、ここから自作した「Command.bat」をダウンロード&解凍してrtmpExplorerと同じフォルダに入れてください。【12/04追記:リンク先変更しました】【2015/10/24追記: 再びリンク先を変更しました】
  5. スタートメニューの検索ボックスに「regedit」と入力して、レジストリエディタを起動します。
  6. 「HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION」に移動します。
    レジストリエディタの画面
  7. 何もないところを右クリックして、「新規」→「DWORD (32ビット) 値」を選択。
  8. 「名前」に「rtmpExplorer.exe」と入力し、それをダブルクリックして「値のデータ」に「10000」を入力し、「表記」は「10進数」を選択します。(ここで入力した数値がIEコンポーネントのIEバージョンになります。「8000」なら「IE8」、「9000」なら「IE9」、「10000」なら「IE10」、「11000」なら「IE11」といった具合です。)
  9. すべて入力し終わったら、レジストリエディタを終了します。
    作成後の画面

保存の手順
  1. rtmpExplorerを起動します。同時に、rtmpsrvが起動されますが、使わないので終了しておきます。
  2. 先にrtmpsuckを起動します。初回起動時は、以下のようなファイアーウォールに関する警告が表示されることがありますが、「アクセスを許可する」 を選択します。
    ファイアーウォールに関する警告画面
  3. 念のため、 確認くん にアクセスして、「現在のブラウザー」に「MSIE 10.0」が含まれていることを確認してください。(この手順は一度で良いです)
    確認くん
  4. Internet Explorer(IE)を起動し、歯車マーク→「インターネット オプション」をクリックして、「閲覧の履歴」の「終了時に閲覧の履歴を削除する」をチェックしたのち、「削除...」をクリック。
    インターネット オプション

  5. ※1のように「インターネット一時ファイルおよび Web サイトのファイル」、「クッキーと Web サイトデータ」、「履歴」をチェックして、「削除」をクリック。履歴が削除されたメッセージを確認したら、IEを終了します。
    ※1 閲覧の履歴の削除
  6. ここからが本番です。GyaO!の動画ページのURLをアドレス欄に入力し、「GO」をクリックします。プレーヤーが表示されて動画の再生が開始されると同時に、rtmpsuckの画面が※2のように変化すれば成功です。
    再生に成功した場合
    ※2 rtmpsuckの画面の一例
     
  7. 9. で、 以下の画像のようなエラーメッセージが表示されて、動画の再生が開始されない場合があります。この場合は、4. と5. の手順をもう一度やり直してみてください。
    再生に失敗した場合の一例
  8. 一旦、再生を一時停止し、rtmpExplorerが配置されているフォルダに「Command.txt」が生成されていることを確認してください。
  9. Command.txtを適当なテキストエディタ(行番号表示があるのが望ましい)で開きます。プレーヤーのシークバーを何度か動かしていた場合、その回数分だけCommand.txtにrtmpdumpのコマンドが出力されています。ひとつだけで良いので、最終行のみを残して後は削除して上書き保存してください。1行しかなかった場合は、そのままエディタを閉じてください。
    1行しかなかった場合
  10. 準備段階で一緒に突っ込んだ「Command.bat」をダブルクリックして、バッチファイルを走らせてください。以下のようなDOS画面が表示されたら、進捗が100%になるまで待ちます。
    保存途中の画面
  11. 無事、100%になったらDOS画面は勝手に消えます(非常に再生時間の長い動画の場合、ごくまれに失敗することがありますが…)。rtmpExplorerが配置されているフォルダにflv形式のファイルとして動画が保存されているはずです。
    めでたしめでたし
  12. これにて、めでたく保存は完了です。あとはXMediaRecodeやら何やらで変換しておくことをお勧めします。
補足

・rtmpExprorerとrtmpsuckを起動している間は、rtmpExprolerでページ遷移して、他の動画の再生・保存を行うことが出来るはずです。
・動画ファイル自体はAVC/MP4+AACのコンテナ形式なので、再エンコはしなくても良いはず・・・
・一度、 rtmpExprorerかrtmpsuckを終了した場合、4. と5. のIEのキャッシュと履歴の削除はほぼ必須になると思います。
・rtmpExprolerの代わりにrtmpExproleXを利用することも出来ると思います。その場合は、準備の8. で「名前」に「RTMPExploreX.exe」を入力してください。詳しい手順は気が向いたら書きます。
・GyaO!に限らず、RTMPを利用した動画配信サイトなら原則、保存は可能だと思います。

【参考にしたサイト様】
WebBrowserコントロールのIEバージョン - (。・ω・。)ノ・☆':*;':*

OsadaSoft » [C#] WebBrowserコントロールのレンダリングモードをデフォルトのIE7から最新IEモードに変更する

0 件のコメント:

コメントを投稿