・m3u8+動画ゲッター+ffmpegの覚え書き2018/05/20 23:59


webの動画をダウンロードするのに「動画ゲッター」を使っている。これはChromeの機能拡張だが、非常に便利で手放せない。しかしたまに動画本体じゃなくてm3u8という拡張子のファイルしかダウンロードできない場合がある。これは動画が分割されている状態で、そのリストがm3u8ファイルということ。この場合も動画ゲッターでダウンロードできないことはないのだが、こういう場合は100分割されているとかも普通で、動画ゲッターはそれを連続してダウンロードしてくれるわけではなく、個々にダウンロードする必要がある。つまり100分割のファイルなら人間が100回保存処理をしなくちゃならんということだ。
これは面倒臭すぎる。

実はリストファイルからffmpegを使って自動的にダウンロード->mp4ファイルに結合という方法があるのだが、この方法が使えるのはリストファイルに記述されている分割ファイルがフルパス(例えばhttp://aa.aa/0001.tsとか)になっている場合だけで、0001.tsとかの相対パスになっている場合はエラーが起きるだけだ。しかし逆に言えば、リストファイルの分割ファイルのURLをフルパスにしてしまえばffmpegで簡単に処理できることになる。

ということで、少しだけ面倒臭くなくなる方法を考えた。

(1)動画のweb pageのソースを表示して、m3u8ファイルの記述を探す。
ここではvideo.m3u8というファイルが、http://a.a/b.b/video.m3u8と記述されていたとする。
(2)ブラウザのアドレスバーに上記URLを記述して、video.m3u8をダウンロードする。
(3)video.m3u8をテキストエディタで開いて、m3u8ファイルの記述を探す。
ここではplaylist.m3u8というファイルが、600kbps/playlist.m3u8と記述されていたとする。
(4)上記の記述からplaylist.m3u8は、http://a.a/b.b/600kbps/playlist.m3u8にあることがわかるので、ブラウザのアドレスバーにこのURLを記述してplaylist.m3u8をダウンロードする。
(5)playlist.m3u8をテキストエディタで開いて、tsファイルの記述を確認する。
ここでは、
0001.ts
0002.ts
0003.ts
と記述されていたとする。
(6)上記の記述なら分割ファイルはplaylist.m3u8と同じ階層にある。例えば0001.tsのフルパスは
http://a.a/b.b/600kbps/0001.tsとなるので、エディタの置換機能等を使ってそれぞれのファイルのパスを書き換える。
上記の例の場合は多分、
"(改行)+0"を"(改行)+http://a.a/b.b/600kbps/0"に置換すればOK。
(7)修正したplaylist.m3u8をffmpegで処理する。

なおffmpegで処理する部分はネットを検索すればたくさんの情報があるのでここでは詳述しない。
上記の理屈がわかっているなら、動画ゲッターでvideo.m3u8とplaylist.m3u8をダウンロードしてもよい。

あと、すべてのサイトが上記の構成になっているわけではないだろうから、m3u8ファイルの中を確認したうえでサイト構成に応じた対応をする必要があると思われる。


------------------------------------------
このブログの本店「かるた堂本舗」もよろしくです。

・ファーストガンダムのかるた売ってます。
・ファイル整理に便利な自作ツール置いてます。
・写真(コスプレ、ポートレート、動物)公開してます。
------------------------------------------

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログはxxの思考錯誤日記です。
xxの部分をお答えください。

コメント:

トラックバック

このエントリのトラックバックURL: http://karutadou.asablo.jp/blog/2018/05/20/8856575/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。