動機
とある会員制音楽系サイトの動画チュートリアルを購入、動画を視聴する度にパケ代が発生して、ただでさえブルーシート生活で困窮しているのにこれ以上家計を圧迫できない。いつもお世話になっているyt-dlpは使用できず、ググってみるとChrome拡張のVideo DownloadHelperを使えだのなんだの。色々試したが保存できず、どうしたもんか。てことで試行錯誤して成功したので備忘録として残しておきます。
手順の概要
- 会員サイトにログインしてクッキーをぶっこ抜く
- ストリーミング用プレイリストのURLを取得
- ffmpegを使用して動画を保存
前提
- OS:Mac, Linux
詳細手順
-
会員制サイトにログインして保存したい動画を再生する
-
Chromeの 「ハンバーガーアイコン」「その他のツール」「デベロッパーツール」 を開いて 「ネットワーク」 タブをクリック
-
ストリーミング用プレイリストファイル(m3u8)を探してURLを取得
-
クッキーを取得
-
上記で取得したURL、cookieからffmpegでtsから動画ファイルを構築
- 再エンコを行わず(無劣化)、コンテナをtsからmp4に変更している
- ポイントは「-heaers」オプションと 「 cookie: 」 の文字列
% ffmpeg -headers "cookie: <<取得したCookie>>" -i <<m3u8のURL>> -c:v copy -c:a copy <<出力ファイル名>>.mp4
- cookieが長い場合、例えばcookie.txtなどにファイルを保存しておいてシェル展開しても良い
ffmpeg -headers "cookie: "`cat ./cookie.txt` -i <<m3u8のURL>> -c:v copy -c:a copy <<出力ファイル名>>.mp4
以上です。