yt-dlpで最高品質の動画をダウンロードする
とりあえず最高品質で
yt-dlpで最高品質の動画をダウンロードする場合は、基本的に何もオプションを付ける必要はない
code:sh
yt-dlp <URL>
これだけでいい
何もオプションを付けなかった時のデフォルトが-f bestvideo*+bestaudio/bestになっているため
ただし、あらかじめffmpegのパスを通しておかないと、解像度が下がってしまうことがあるので注意
便利なオプション(任意)
必要に応じてオプションをつけよう
--embed-thumbnail
動画ファイルにサムネイルを埋め込む
--embed-subs
動画に字幕を埋め込む
.mp4, .webm, .mkv形式にしか対応していない
--embed-metadata, --add-metadata
メタデータを動画に埋め込む
デフォルトでは、後述のチャプターやinfojsonも一緒に埋め込む
--no-embed-chaptersや--no-embed-info-jsonを併用することで、埋め込まないように設定可能
--embed-chapters
チャプターマーカーを動画ファイルに追加する
ただし、チャプターマーカー自体はmpv等の一部の再生アプリでしか対応していないので注意
--embed-info-json
添付されたinfojsonを.mkvや.mka形式の動画ファイルに埋め込む
--list-formats
ダウンロード可能な動画形式を一覧を確認する
このオプションが付いている時、動画はダウンロードされない
yt-dlp --list-formats
-f <フォーマット>
ダウンロードする動画や音声のフォーマットを指定できる
詳細:yt-dlp --format
動画本体以外もダウンロードするオプション
--write-description
動画の詳細文をテキストファイルとしてダウンロードする
<動画タイトル> [<動画ID>].descriptionというファイル名で保存される
--write-comments
投稿されたコメントをJSON形式でダウンロードする
<動画タイトル> [<動画ID>].info.jsonというファイル名で保存される
.mkvで保存する
.mp4に拘りがなければ、以下のコマンドで最も品質の高い動画をダウンロードできる。
※.mp4に拘りがある場合はページ下部の項目を参照。
code:sh
yt-dlp --embed-thumbnail --embed-subs --embed-metadata -f "bv*+ba/best" --merge-output-format mkv <URL>
.mkvでダウンロードすることによって、高画質(フルHD解像度以上)の動画をほぼ無変換でダウンロードすることができる。
つまり最速でダウンロードが可能。
.mp4で保存したい
code:sh
yt-dlp -f "bv*ext=mp4+baext=m4a/bext=mp4" <URL>
これで多分.mp4として保存される
動画ファイルに.mp4、音声ファイルに.m4aを指定している
これ以外の組み合わせだと、.webmになったり.mkvになったりする
mp4であれば、上記のサムネイル埋め込みや字幕埋め込みなどにも対応している
code:sh
yt-dlp --embed-thumbnail --embed-subs --embed-metadata -f "bv*ext=mp4+baext=m4a/bext=mp4" <URL>
ただし、上のコマンドはフルHD解像度より高い動画を落とせないという欠点がある
4K解像度でかつ.mp4形式の動画が欲しい
code:sh
yt-dlp --recode-video mp4 --embed-thumbnail --embed-subs --embed-metadata <URL>
最高画質の動画をダウンロードした後、.mp4に変換する
ffmpegでやることもできる(というかそっちの方がGPUエンコードができるので早い)
ただし、サムネイルや字幕などに対応していない形式が挟まれると、それらの埋め込みが外れてしまう可能性がある
途中コンソールが長時間固まるが、エンコードに時間がかかっているだけなので中断しないように気をつけよう
サムネイル等を捨てて手っ取り早く4K mp4の動画を入手したい人向け
NVIDIA GeForceシリーズのGPUを積んでいる人は、ffmpegを使用して高速に変換できる
そうでない人は通常と時間は変わらないので、素直にyt-dlpのみで変換をかけたほうが良い
AMD Radeon GPUに対応したオプションもあるかもしれないけれど、Mijinko_SD.iconは知らない
1. yt-dlpで動画と音声を別々にダウンロードする
code:sh
yt-dlp -f "bv,ba" -o "%(title)s %(id)s %(format)s.%(ext)s" <URL>
デフォルトのままだと動画と音声でファイル名がダブることがあったので、それを解消するために-oオプションでファイル名の形式を指定している
2. ffmpegを使って動画と音声を結合する
code:sh
ffmpeg -i "<動画ファイル名>" -i "<音声ファイル名>" -vcodec hevc_nvenc <出力するファイルの名前>.mp4
参考
yt-dlpの使い方-簡易版
yt-dlp オプション一覧及びそのメモ - †MASAYOSHI†のオンラインメモ帳
FFmpegで動画編集をするガイド - moriyoshiの日記
FFmpegでよく使う例、コーデックをまとめてみた(2021年版) - Qiita