(2014.02.01 追記)
この記事の内容は古くなっています。2014.02.01現在、このサイトの動画の保存は、下記の方法ではできなくなっているようです。
(追記ここまで)
バンダイチャンネル
http://www.b-ch.com/
用意するもの:
- RTMPDump ( v2.4 GIT-2011-07-11 → )
- スクリプト banch.rsite.js
スクリプトの動作確認は、無料の動画のみで行っていて、有料のものについてはよくわかりません。
使い方はこれまでと同じです。スクリプトをダブルクリックないし右クリックから開くをクリック、インプットボックスが表示されると思うので、動画ページの URL を入力、OK。RTMPDump のコマンドライン文字列が表示されれば成功です。取得に失敗した場合は、エラーメッセージが表示されるかもしれません。
動画によっては、ダンプが途中で途切れてしまうことがあります。この場合は、コマンドライン文字列の末尾に、-e パラメータを付加して、再度実行、を繰り返すと、Complete するかもしれません。
レジュームの自動化
-e パラメータで行われる
レジュームの操作をある程度自動に行ってくれるスクリプトです。操作方法が煩雑だったりするので、あまりお勧めはしません。そんなのでもいいよ、という心の広い方のみお試しください。
使い方:
- テキストファイルを作成(ここでは仮に data.txt とします)し、上記取得したコマンドライン文字列を記入します(複数行にせず、一行で記入してください)。
- resume.js と data.txt を rtmpdump.exe のあるフォルダに入れます。
- rtmpdump.exe のあるフォルダをカレントにしてコマンドプロンプトウィンドウを開きます。
cscript resume.js data.txt
と入力して、エンターキーを押下します。 - ダンプが始まれば成功です。
その他:
- data.txt には、複数のコマンドライン文字列を記して、これらを連続してダウンロード(ダンプ)していくことができます。この場合、一つのコマンドライン文字列につき、一行にしてください。
- WSH の Execメソッドを使っています。このメソッドに渡せるコマンドライン文字列の長さは、環境によっては制限があるかもしれません。この場合、あまり長いコマンドライン文字列を指定するとエラーが出るかもしれません。(WSH の Execメソッドが扱えるコマンドライン文字列長は 260文字(バイト)が上限、という報告かありました。私の環境では、260文字を越えるコマンドライン文字列でも正常に動作しています。このあたり、よくわかりません。知っている方がいらっしゃいましたら教えてください。)
- 上記使い方では、cscript で起動しています。wscrit で起動(たとえば、スクリプトをダブルクリックで起動するなど)することもできますが、この場合、次から次へとメッセージウィンドウが開いて大変なことになりますので、やめておいてください。
- 上記使い方で、
cscript resume.js data.txt
とあるのをcscript resume.js
のように引数を取らずに起動すると、インプットボックスが表示されますので、ここにコマンドライン文字列を入力することができます。ただし、インプットボックスが受け付けることのできる文字列長に制限があり、254文字(バイト)が上限のようです。 - レジュームを繰り返す上限値は、デフォルトでは、 20回にしてあります。これを変更したい場合は、スクリプトの9行目あたり、TRY の値を書き換えてください。
- 通常のダンプ時に表示される、ダンプの進行状況を示す表示( xx% の xx のところが刻々と変化していく表示)が、このスクリプトでは表示できていません。この文字列の取得のしかたが良くわからないので、このようになっています。
- スクリプトはご自分で使いやすいように書き換えて使ってください。
バスを通す
resume.js や data.txt を、rtmpdump.exe のフォルダに放り込むのは、あまり美しくないので、ここでは、rtmpdump.exe のあるフォルダにパスを通す方法を記しておきます。
- 適当な場所にフォルダを作成します。このフォルダ内にダウンロード(ダンプ)したファイルが保存されることになります。以下、保存用フォルダと呼びます。
- 保存用フォルダ内に、テキストファイルを作成して、ファイル名を path.bat とします。
- 拡張子が、bat であればファイル名は任意でかまいません。その場合は、以下説明の緑字を読み替えてください。
- path.bat をテキストエディタで開いて、
@echo off set path=C:\usr\rtmpdump;%path% echo rtmpdumpへパスを通しました。 echo on
と記し、ファイルを上書き保存します。- ここで赤字部分 C:\usr\rtmpdump は、rtmpdump.exe のあるフォルダへのフルパスです。ご自分の環境に合わせて書き換えてください。
- 保存用フォルダをカレントにしたコマンドプロンプトウィンドウを開くためのショートカットを作成します。保存用フォルダ内で右クリック、コンテキストメニューの 新規作成 > ショートカット、をクリック。
- ショートカット作成のウィザードが表示されると思うので、
項目の場所、という入力欄に、cmd.exe /k path.bat
と入力します。- 緑字の path.bat の部分は、通常は、path.batファイルへのフルパスを記します。今回は、ショートカットを path.bat と同一フォルダ内に作成しましたので、上記のようにしています。ショートカットを別の場所に置きたい場合は、上記緑字部分 path.bat を、path.batファイルのフルパスに読み替えてください。
- 次へ。ショートカットの名前は、ご自分の好きなように。
- 完了をクリックしてウィザードを終了すると、フォルダ内にcmd.exeへのショートカットが作成されます。
- 作成したショートカットを右クリック、プロパティを開きます。ショートカットタブの作業フォルダの欄に、保存用フォルダ(1で作成したフォルダ)へのフルパスを記します。
- 作業フォルダの欄を空欄にしておくと、このショートカットが置かれているフォルダをカレントにして開くかもしれません。ただし、ショートカットキーから開く場合はダメみたいです(参照 → )。
- OKをクリックしてプロパティを閉じます。
ショートカットをダブルクリックして、保存用フォルダをカレントにしたコマンドプロンプトウィンドウが立ち上がることを確認します。ウィンドウ内に
rtmpdumpへパスを通しました。
と表示されていれば成功です。
その他:
- このショートカットから立ち上げたコマンドプロンプトウィンドウ内から、RTMPDumpコマンドライン文字列を実行することができます。ダウンロード(ダンプ)したファイルは、このフォルダ内(カレントフォルダ内)に保存されます。
- 先の resume.js や data.txt もこのフォルダ内に置き、このコマンドプロンプトウィンドウ内から実行できます。
この記事の内容を実行するに際しては、すべてご自身の判断と責任において行うようにしてください。
(2014.02.01 追記)
2014.02.01 現在、バンダイチャンネルの動画は、上記RTMPプロトコルによる配信ではなく、HDS(Http Dynamic Streaming)、ないし HLS(Http Live Streaming) による配信に変更になっているようです。PCなどからの通常のアクセスの場合、HDSによる配信となっていて、この配信は、Akamai DRM( enctyption )によって暗号化されているようでした。一方、iPadなどでアクセスした場合は、HLSによって配信され、これは、AESによる暗号化のようでした。HDS、HLS のどちらの方式で配信するかのサーバ側の判断は、現段階では、アクセス元から送られるヘッダ情報(User-Agent)によって判別されているようです。このため、PCからのアクセスであっても、User-Agent が iPad などのものならば、HLS のマニフェストファイルURLを取得可能です。某巨大掲示板(2ちゃんねる)にて、この方法を応用して、バンダイチャンネルからの動画の保存を可能とし、その手順を公開してくださっている方がいらっしゃいましたので、これをもとに、簡単なスクリプトを作ってみました(thanks for 2ch 95氏)。あまり使いやすいものではないので、お勧めはしませんが、興味ある方はどうぞ。
2014.02.01 現在、バンダイチャンネルの動画は、上記RTMPプロトコルによる配信ではなく、HDS(Http Dynamic Streaming)、ないし HLS(Http Live Streaming) による配信に変更になっているようです。PCなどからの通常のアクセスの場合、HDSによる配信となっていて、この配信は、Akamai DRM( enctyption )によって暗号化されているようでした。一方、iPadなどでアクセスした場合は、HLSによって配信され、これは、AESによる暗号化のようでした。HDS、HLS のどちらの方式で配信するかのサーバ側の判断は、現段階では、アクセス元から送られるヘッダ情報(User-Agent)によって判別されているようです。このため、PCからのアクセスであっても、User-Agent が iPad などのものならば、HLS のマニフェストファイルURLを取得可能です。某巨大掲示板(2ちゃんねる)にて、この方法を応用して、バンダイチャンネルからの動画の保存を可能とし、その手順を公開してくださっている方がいらっしゃいましたので、これをもとに、簡単なスクリプトを作ってみました(thanks for 2ch 95氏)。あまり使いやすいものではないので、お勧めはしませんが、興味ある方はどうぞ。
-
bch.zip
- zipで固めてありますので、解凍してください。中に、usage.txtがあります。
- パスの通し方、などは、上記記事がご参考になるのではないかと思います。
- このスクリプトのご使用に関しては、すべてご自身の判断と責任において行うようにしてください。
banch.rsite.jsを使ってバンダイチャンネルが落とせるようになったのですが、
レジュームのつなぎ目でブロックノイズが入るようです。
何か対処方法があるのでしょうか?
-b 7200000 とかやってみたのですが、変化がありませんでした。
よろしくお願いいたします。