smk7758のはてなブログ

技術系の雑談やイベントについてを書きます。

youtube-dl (yt-dlp)を用いて、メンバー限定動画を保存するにはブラウザクッキーを使えば良い

やり方

note.com

この記事に従って、yt-dlp, ffmpeg, AtomicParsleyを導入する。

メンバー限定動画を保存するには認証が必要ならば、ブラウザクッキーを使う

ブラウザクッキーを使えばいいわけであるが、軽く調べたところ、面倒そうであった。

crieit.net

しかし、yt-dlpを見ていると、以下の引数を見つけた。

github.com

Cookies from browser: Cookies can be automatically extracted from all major web browsers using --cookies-from-browser BROWSER[+KEYRING][:PROFILE]

つまり、この引数を指定すれば有名なブラウザであれば自動的にクッキーを持ってきてくれるようであったので、利用する。

スクリプトファイル(batファイル)を記述する

自分は先程のを参考に、以下のように記述した。

@echo off
set /p url=MovieURL:
yt-dlp "%url%" --cookies-from-browser vivaldi --write-thumbnail --embed-thumbnail --add-metadata --write-sub --socket-timeout 30 --download-archive "finished.txt" --ignore-errors -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --output "%%(upload_date)s-%%(title)s.%%(ext)s" --retries 3
pause

自分が使っているブラウザはVivaldiであるため、--cookies-from-browserにはvivaldiを指定している。適宜、chromeなどへ書き直すと良い。

@echo off
set /p url=MovieURL:
yt-dlp "%url%" --cookies-from-browser chrome --write-thumbnail --embed-thumbnail --add-metadata --write-sub --socket-timeout 30 --download-archive "finished.txt" --ignore-errors -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --output "%%(upload_date)s-%%(title)s.%%(ext)s" --retries 3
pause

参考

https://note.com/kame_equal_eros/n/nc1e25fca17e9

https://crieit.net/posts/youtube-dl