yt-dlpでYouTubeやTwitchから動画をダウンロードする方法
YouTubeやTwitchなどの動画サイトから映像や音声をダウンロードできる「youtube-dl」をforkしてさらに高機能化させたものが「yt-dlp」です。更新頻度も高く、コマンドラインに抵抗がない方であれば、現存のダウンローダーの中で最も優秀と言っても良いほどのツールです。
この記事では、そんなyt-dlpの導入方法と使い方について解説していきます。
yt-dlpとは
yt-dlpは、youtube-dlが非アクティブになったのをきっかけにforkが行われて開発が始まりました。そのためyt-dlpの開発目的は、元のプロジェクトを最新に保ちながら新しい機能等を追加することです。しかし、現在ではyoutube-dlよりもツールとしての性能は上がっており、例えば動画をダウンロードする際にかかる時間は、現在ではyt-dlpの方が100倍速くなっています。
細かく書く気はありませんが、使い方によってはとても危険なツールです。用途には注意して使用してください。
yt-dlpのダウンロード
yt-dlpのリポジトリからWindwosの場合は「yt-dlp.exe」をダウンロードします。
ダウンロードしたyt-dlp.exeの保存先はCドライブのユーザーディレクトリ直下(C:\Users\ユーザー名
)であれば環境変数の設定なしに動作しています。これ以外の階層に置く場合は環境変数の設定が必要となるかと思います。
FFmpegの導入(オプション)
yt-dlpは単体でも機能しますが、FFmpegを併せて使用することでダウンロード時に映像を除き音声のみをダウンロードしたり、ダウンロード時のフォーマット変換などを行うことができます。
FFmpegの導入はあくまでオプションであるため、不要であれば行う必要はありません。FFmpegを使用するという場合は、下記の記事で導入方法を解説していますのでご利用ください。
yt-dlpの使い方
動画のダウンロード
コマンドプロンプトを使用してyt-dlpを使用します。サービスが異なっていてもyt-dlpのコマンドのフォーマットは同じです。
yt-dlp 動画URL
# 例:yt-dlp https://www.youtube.com/watch?v=xxxxxxxxxxx
yt-dlpがサポートしているサービスはリポジトリで確認できます。
時間を指定してダウンロード
時間を指定により、動画の一部分のみをダウンロードすることも可能です。下記は動画の10分00秒から20分00秒までを指定。
yt-dlp --download-sections *10:00-20:00 https://www.youtube.com/watch?v=xxxxxxxxxxx
ダウンロードする動画のファイル名と保存先
yt-dlpでダウンロードした動画はデフォルトでは、
- ファイル名:動画のタイトル+動画ID
- 保存先:yt-dlpと同じ階層
という形で保存されます。
ダウンロード時のコマンドを以下とすることで、ダウンロードした動画のファイル名を動画タイトル+拡張子にすることができます。
yt-dlp -o "%(title)s.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxx
また、こちらのコマンドでダウンロードした動画のファイル名を変更しつつ、保存先をDドライブ直下に作成したフォルダに変更することができます。
yt-dlp -o "D:\dl\%(title)s.%(ext)s" https://www.youtube.com/watch?v=xxxxxxxxxxx
これらのオプションは、リポジトリのOUTPUT TEMPLATEに記載されています。少し古いですが日本語で解説されている記事(yt-dlp オプション一覧及びそのメモ)もあります。
yt-dlpのアップデート
サービス側の仕様変更に併せてyt-dlpも頻繁に更新されています。突然ダウンロードができなくなったという場合にはサービス側の仕様変更があった可能性もありますので、必要であればアップデートを行って下さい。
yt-dlpを更新するにはcmdで以下のコマンドを実行します。
yt-dlp -U
yt-dlpをカスタマイズして利便性を向上する
yt-dlpはデフォルトでは動画をダウンロードする度に都度コマンドを叩く必要があり面倒です。そこで、バッチファイルを作成してyt-dlpの利便性を向上します。
yt-dlp.exeと同じ階層にyt-dlp.conf
、dlurl.txt
、yt-dlp.bat
ファイルを作成します。
yt-dlp.confをメモ帳などのテキストエディタで開き、下記を追加します。
-o "D:\dl\%(title)s.%(ext)s"
-N 3
--no-mtime
--embed-thumbnail
--console-title
-a dlurl.txt
-f bestvideo[ext=mp4]+bestaudio[ext=m4a] -S vcodec:h264
-o "D:\dl\%(title)s.%(ext)s"
でファイル名と保存先(Dドライブ直下のdl
フォルダ)を変更。-N 3
で3スレッドで並列ダウンロードを行い高速化。スレッド数は環境やダウンロードする動画の本数に合わせて変更しても良い。--no-mtime
で更新日時をダウンロード日時に変更。デフォルトでは動画の投稿日時がそのまま反映されてしまうため、変更を加えた方が整理しやすい。--embed-thumbnail
でサムネイルの埋め込み。--console-title
でコンソールにダウンロード進行状況を表示。-a dlurl.txt
でdlurl.txt
に記載されたURLの動画を指定。-f bestvideo[ext=mp4]+bestaudio[ext=m4a] -S vcodec:h264
でフォーマットを「MP4」、コーデックを「H.264」に指定(使用するにはFFmpegが必要)。これは、編集ソフトに読み込むときにフォーマットは対応しているがコーデックが対応しておらず音声のみが読み込まれないという事態を防ぐため、無難なフォーマットとコーデックを指定してダウンロードを行うための設定。
dlurl.txtを開き、適当な動画URLを記述して保存します。
yt-dlp.batを開き、yt-dlp
と記述して保存します。
これでyt-dlp.batを実行すればバッチが実行され、dlurl.txtに記述されたURLの動画が、yt-dlp.confに記述されたルールに従ってダウンロードされます。
新たに動画をダウンロードする場合はdlurl.txtの中身を変更する必要がありますが、それ以外は既存のままで使用できます。なおdlurl.txtに記述されているURLの動画は全てダウンロードされることに注意してください。
以上です。