LoginSignup
2
3

yt-dlp で チャネル内動画を一括ダウンロードする

Last updated at Posted at 2024-02-12

この記事の目的

この記事では、yt-dlp を使用して YouTube のチャネル内動画を一括ダウンロードする方法を説明します。

サンプルコードでは、 Wolfgang's ChannelMrBeast精选电视剧频道Microsoft Developer などを例にとり、期間や単語を指定してのダウンロード方法を説明しています。

ヨビノリまめたまキンプリ を含め、サンプルコードを少し書き換えることで、好きなアーティストやクリエイターの動画をダウンロードすることができます。

(応援したいクリエイターやアーティストの場合は、少しでもその努力が還元されるように、動画をダウンロードした後も、オリジナルサイトで再生してください。)

手順

1. yt-dlp の実行ファイルの取得

この記事は以前の記事の続編です。

以前の記事を参照し、 yt-dlp の実行ファイルを取得してください。

2. サンプルコード

2.1. 🔥 チャネル内の動画すべてをダウンロードする 🔥

チャネル内の動画すべてをダウンロードする場合、以下のようなコマンドを実行します。

yt-dlp -o "%(upload_date)s - %(title)s.%(ext)s" https://www.youtube.com/@WolfgangsChannel

👉 -o "%(upload_date)s - %(title)s.%(ext)s" の部分はファイル名に YouTube へのアップロード日を追加します。
これによって、動画の時系列が分かりやすくなります。

上記コードを複数行で記載すると以下のようになります。

yt-dlp ^
  -o "%(upload_date)s - %(title)s.%(ext)s" ^
  https://www.youtube.com/@WolfgangsChannel

👉 各行末に ^ (キャレット)があることに注意してください。
^ (キャレット)を使うことで、コマンドを複数行で記述できるようになります。

2.2. 🔥🔥 期間を指定して動画をダウンロードする 🔥🔥

過去 3 ヶ月の動画を一括ダウンロードしたい場合は以下のようなコードになります。

yt-dlp ^
  --dateafter now-3month ^
  -o "%(upload_date)s - %(title)s.%(ext)s" ^
  https://www.youtube.com/@MrBeast

👉 month の代わりに、 dayweekyear も使えます。

2.3. 🔥🔥🔥 タイトルを指定して動画をダウンロードする 🔥🔥🔥

動画タイトルに含まれる文字列を指定して、動画をダウンロードしたい場合は以下のようなコードになります。

yt-dlp ^
  --match-filter "title~=繁花梦" ^
  -o "%(upload_date)s - %(title)s.%(ext)s" ^
  https://www.youtube.com/@user-mr4qg5bw3h

検索文字列が空白を含む場合は、以下のように文字列を ' (シングルクォート)で囲ってください。

yt-dlp ^
  --match-filter "title~='GitHub Copilot'" ^
  -o "%(upload_date)s - %(title)s.%(ext)s" ^
  https://www.youtube.com/@microsoftjapanvideos

2.4. 🔥🔥🔥🔥 プレイリストに含まれる動画をダウンロードする 🔥🔥🔥🔥

以下のように出力ファイルを設定することで、

  1. プレイリスト・タイトルのフォルダを作成し
  2. 通し番号(2 桁)が先頭についた形で動画ファイルが保存されます。
yt-dlp ^
  -o "%(playlist_title)s/%(playlist_index)02d - %(title)s.%(ext)s" ^
  https://www.youtube.com/playlist?list=PLj6YeMhvp2S5G_X6ZyMc8gfXPMFPg3O31

他の環境での実行

1. PowerShell での実行

👉 PowerShell の場合は、 ^ (キャレット)の代わりに ` (バッククォート)を使用します。
また、 yt-dlp の代わりに、 .\yt-dlp もしくは ./yt-dlp と記載します。

サンプルコードは以下のようになります。

./yt-dlp `
  -o "%(upload_date)s - %(title)s.%(ext)s" `
  https://www.youtube.com/@BLACKPINK

👉 エクスプローラーから PowerShell のウィンドウを開くには、アドレスバーに powershell と入力して Enter キーを押します。

2. Linux での実行

👉 Linux の場合は、 ^ (キャレット)の代わりに \ (バックスラッシュ)を使用します。

yt-dlp \
  -o "%(upload_date)s - %(title)s.%(ext)s" \
  https://www.youtube.com/@MichaelJackson

⚡ 途中で止めたい場合 ⚡

途中で止めたい時は、Ctrl + Cです。

回線が遅かったり、予想以上にファイルサイズが大きくて時間がかかりそうな時は、Ctrl + C でダウンロードをいったん中止して、通信環境の良い状態で再度実行しましょう。

⚡ フォルダ内のファイルを削除しても大丈夫? ⚡

全ての動作は実行フォルダ内で完結しています。
不要なファイルやダウンロード途中で停止したファイルを削除しても、 Windows が使えなくなるなどの不具合が発生することはありません。

また、同じ動画をダウンロードする場合、ダウンロード済み場合は(正確には、同じ名前のファイルが存在する場合は) already been downloaded としてスキップされます。

2
3
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
2
3