何故そんな事がしたい?
普段よくmobile端末でtwitchやyoutubeの外国語動画をBGMとして聴くのですが、母国語では無いため当然一回では理解できず何度も聴く事になります。そうなるとネットワークを無駄遣いしないためにも、また端末の消費電力を抑えるためにも一度落としてしまった方が効率が良いのは明らかです。というわけで今回はそういった事をするためのscriptを公開します。
やり方
このscriptを落としたら、script内の大文字の変数達(QUALITY
,TMP_DIR
,OUTPUT_DIR
)を自分好みに書き換えてから
python ./twitch_downloader.py https://www.twitch.tv/videos/123456789
という風に動画のURLを渡して実行するだけです。ただ多くのtwitch動画には序盤に無駄な部分(「あと○分で配信が始まるよ」みたいなやつ)があるので次のようにしてその部分を取り除くのがお薦めです。
(序盤の6分が要らない場合のコマンド例)
python ./twitch_downloader.py https://www.twitch.tv/videos/123456789 --offset=00:06:00
また必要に応じて--duration
も使って必要な部分だけを切り取りとってあげます。
(序盤の6分を捨てて、そこから1時間分だけを落としたい時のコマンド例)
python ./twitch_downloader.py https://www.twitch.tv/videos/123456789 --offset=00:06:00 --duration=01:00:00
その他
配信用の制御情報は自動で削いでくれる
twitchから落とした動画には配信のため制御情報が含まれているせいなのか、落とした物を再エンコード無しで別のファイルに書き出すだけでファイルサイズが20%〜30%減ります。その作業は基本scriptが自動でやってくれるのですが、念の為に手動で行う方法も載せておきます。
ffmpeg -i 入力元ファイル -vcodec copy -acodec copy 出力先ファイル