ログイン新規登録

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます

0

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

最終更新日 投稿日 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 としてスキップされます。

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
  3. ダークテーマを利用できます
ログインすると使える機能について
この記事は以下の記事からリンクされています

コメント

この記事にコメントはありません。

いいね以上の気持ちはコメントで

記事投稿キャンペーン開催中
Qiita×Findy記事投稿キャンペーン 「自分のエンジニアとしてのキャリアを振り返ろう!」
~
0

新規登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる

ソーシャルアカウントでログイン・新規登録

メールアドレスでログイン・新規登録