ストリーミング動画をダウンロードする方法
streamlink + ffmpeg
Section titled “streamlink + ffmpeg”streamlink -o output.ts {url} bestffmpeg -i output.ts -c copy output.mp4基本はこれでいいが、たまにPNGフォーマットとして偽装しているものがある。その場合はだいたい先頭8バイトを無視すればいい。ffmpeg の -i オプションでスキップするバイト数を指定できる。
ffmpeg -i subfile,,start,8,end,0,,:output.tsFFmpegのオプションメモもある。
ffmpeg単体
Section titled “ffmpeg単体”基本的にはヘッダー等を加えて m3u8 ファイルのURLを指定するだけでいいがオプションは先頭から適用されていくので順番はとても重要。
headers=$'Accept-Encoding: gzip\r\nUser-Agent: mozilla/xxx\r\n'ffmpeg -headers "$headers" -i {url} -c copy -bsf:a aac_adtstoasc output.mp4たまに、m3u8 ファイルに列挙されるURLにパラメータが付いている場合があって、その場合 ffmpeg はパラメータ部分を無視してしまうので事前にダウンロードしなければならない。
curl -o list.m3u8 {url}sed -i '/^#/!s|^|'"$url"'/|'ffmpeg -protocol_whitelist file,https,tcp,tls \ -i ./list.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4