手順は4ステップです。簡単なので誰でもできます。Windows環境のみで確認していますが、バッチファイルが実行できる環境なら他のOSでも大丈夫だと思います。
手順
- ffmpegのバイナリをダウンロードします。(http://blog.k-tai-douga.com/)
- ffmpeg.exeを動画のダウンロードフォルダに置きます。
- メモ帳を起動し、ffmpegに渡すコマンド(次の項で説明)を貼り付けます。
- 拡張子をbatにしてダウンロードフォルダに保存し、実行します。
URLの解析
上記手順3のコマンドとは、動画ページのURLを解析して取り出したURLを、ffmpegのコマンドと組み合わせたものです。と書くと、何だか難しい感じがしますが、ツールが勝手にやってくれます。
解析サイトを使う
リンクはしない方が良さそうなので直リンクはしません。検索で上位に出るサイトです。
使い方は、解析URLの入力欄に動画ページURLを入力し、解析ボタンを押すだけです。少し補足すると、チェックボックスやオプション類は付けなくても保存できます。
解析ボタンを押すと、人力によるアクセスを確認するための数字入力があり、その後でffmpegに渡すコマンドが表示されます。表示されたコマンドを上記手順3で使用します。
BANDWIDTHの大きい方が、解像度の高い動画のコマンドです。この解析サイトのコマンドを使って保存した動画は、TSファイルになります。
user.jsを使う(1)
この方法で解析を行うためには、ブラウザでuser.jsを使用できる環境が必要です。(FirefoxならGreasemonkeyがインストールされている必要があります)
こちらのuser.jsを使用すると、動画ページや動画説明ページに、コマンド取得ボタンが表示されるようになり、ffmpeg、youtube-dl、Livestreamerのコマンドを取得することができます。このツールは上の解析サイトと違い、240p以下の低い解像度のコマンドは表示されません。
JavaScriptの知識が少し必要ですが、スクリプトを少しだけ書き換えれば、コマンドを自分好みに変更できるので大変便利です。
user.jsを使う(2)
上と同じくuser.jsを使用できる環境が必要です。
こちらのuser.jsを使用すると、対応サイトでは右上にボタンが表示され、GYAO!だけでなく、あらゆるストリーミング動画サイトでURLの解析ができます。このuser.jsは上2つの方法とは違い、解析URLのみを取得しますので、そのままでは上記手順3で使用することはできません。ffmpegのコマンドとオプションを追加する必要があります。
ffmpegコマンド
ffmpeg -i "入力.ts" "出力.ts"
ffmpegの基本的なコマンドは、上記のような形が基本です。
ffmpeg -i "解析URL" -c copy "ストリーミング.ts"
ストリーミング動画を保存する場合は、上記のようなコマンドになります。
-c copy
は、入力動画の映像と音声を複製するオプションです。GYAO!やTVerのような、HTTP Live Streaming (HLS)配信の動画は、TSファイル(mpeg2-ts)にしなくてはならないという決まりがあるので、-c copy
オプションを付け、出力動画の拡張子をTSにすれば、理論上は入力動画を複製できます。
ffmpeg -i "解析URL" -user-agent "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0" -codec copy -copyts -bsf:a aac_adtstoasc "ストリーミング.mp4" -loglevel "error"
私は上記のようにオプションを付けています。ちょこっと調べただけの付け焼き刃なので、おすすめではありません。
各オプションの簡単な説明です。-user-agent ""
は、そのままユーザーエージェントですが、ストリーミングの場合は付けた方が良いようなので付けています。-codec copy
は、-c copy
と同じです。-copyts
は、タイムスタンプをコピーするオプション。音ズレ対策になるかもと思って付けています。-bsf:a aac_adtstoasc
は、コンテナをTSからMP4に変換するときに付けるオプションです。上記のコマンドは出力動画をMP4にしているので、このオプションを付けています。-loglevel "error"
は、コマンドプロンプトに表示されるログの設定です。通常はフレームやファイルサイズなどの情報がログとして表示され続けますが、このオプションを付けるとエラーが起こったときのみログが表示されます。
https://ffmpeg.org/ffmpeg.html#Main-options
https://ffmpeg.org/ffmpeg.html#Generic-options
https://www.ffmpeg.org/ffmpeg-protocols.html#http
https://www.ffmpeg.org/ffmpeg-bitstream-filters.html#aac_005fadtstoasc
バッチファイルについて補足
- バッチファイル(.bat)は右クリックメニューで編集を選択すると、再度編集できます。
- バッチファイルは1行に1処理が基本なので、複数の動画をまとめてダウンロードする場合は、1行に1つずつコマンドを貼り付けます。
- pauseと書いた行をバッチファイルの最後の行に追加すると、ダウンロード終了後ウィンドウが閉じません。応用すれば、ダウンロードが終わったらPCをシャットダウンすることもできるはずです。
うまく保存できました。
返信削除このコメントは投稿者によって削除されました。
返信削除大変助かりました。ありがとうございました。
返信削除ちなみに上記の方法と大体同じような情報が別のサイトで見つかりました。
一応そのページを貼り付けます
https://www.videosolo.jp/tutorials/download-gyao-videos.html