0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

yt-dlp,VideoDownloadHelperを使用しないWeb上の動画保存方法

Posted at

動機

とある会員制音楽系サイトの動画チュートリアルを購入、動画を視聴する度にパケ代が発生して、ただでさえブルーシート生活で困窮しているのにこれ以上家計を圧迫できない。いつもお世話になっているyt-dlpは使用できず、ググってみるとChrome拡張のVideo DownloadHelperを使えだのなんだの。色々試したが保存できず、どうしたもんか。てことで試行錯誤して成功したので備忘録として残しておきます。

手順の概要

  1. 会員サイトにログインしてクッキーをぶっこ抜く
  2. ストリーミング用プレイリストのURLを取得
  3. ffmpegを使用して動画を保存

前提

  1. OS:Mac, Linux

詳細手順

  1. 会員制サイトにログインして保存したい動画を再生する

  2. Chromeの 「ハンバーガーアイコン」「その他のツール」「デベロッパーツール」 を開いて 「ネットワーク」 タブをクリック

  3. ストリーミング用プレイリストファイル(m3u8)を探してURLを取得

    • 右クリック
    • コピー
    • リンクのアドレス をコピー
      • この例の場合、720p, 1080p, originalとプレイリストがあり最も画質の良いoriginalのm3u8を選択している
        0000.png
  4. クッキーを取得

    • デベロッパーツールを使用する場合

      1. 対象のtsファイルを選択
      2. ヘッダータブを選択
      3. リクエストヘッダーのcookieを右クリック
      4. 値をコピーを選択
        0001.png
    • Chrome拡張のEditThisCookieを使用する場合

      1. Cookieのエクスポート を選択
        0002.png
  5. 上記で取得した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
    

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?