【yt-dlp】特定のチャプターを除外して一部だけダウンロードする方法とは?ループ部分だけ消すコマンド解説

 

yt-dlpで長時間の動画をダウンロードする際、「最後のループ部分はいらない」「特定のチャプターだけ除外したい」と思うことはありませんか?

この記事では、不要な部分を省いて必要な範囲だけをスマートに保存するコマンドの正しい使い方と仕様を分かりやすく解説します。

 

特定のチャプターを除外して一部だけダウンロードする方法

ひかわ
作業用BGMをダウンロードしたいんだけど、動画の最後についてる数時間の「ループ」部分まで保存されて容量を食っちゃう…。必要な曲のチャプターだけ残して、不要な「loop」部分だけをサクッと消すコマンドってないのかな?

 

YouTubeなどで公開されている長時間の音楽ミックスや作業用動画では、終盤に数時間単位の「loop」チャプターがくっついていることがよくあります。この不要な部分だけを消して、必要な部分のみをダウンロードするには、yt-dlpのチャプター除外オプションを活用します。

一番シンプルで確実なのは、–remove-chaptersというオプションを使う方法です。

動画に設定されているチャプター名を指定することで、その部分だけをカットした1つの動画ファイルとして保存できます。

yt-dlp --remove-chapters "loop" [動画のURL]

上記のコマンドを実行すると、「loop」という名前がついたチャプター部分だけが自動的に除外されます。

 

もし、動画に明確なチャプターが設定されておらず、自分で時間を指定して「一部だけダウンロード」したい場合は、–download-sectionsオプションを使います。

yt-dlp --download-sections "*0:00-6:15" --force-keyframes-at-cuts [動画のURL]

このコマンドは、0分0秒から6分15秒までの範囲だけを切り出してダウンロードします。

一緒に記述している –force-keyframes-at-cuts は、動画を中途半端なタイミングではなく、正確な時間で綺麗にカットするために必要なオプションです。

 

なぜ指定した範囲やチャプター名をクォーテーションで囲む必要があるのか?

ひかわ
コマンドの書き方はわかったけど、英語のドキュメントを読むと文字を「”(ダブルクォーテーション)」で囲むって書いてある。あと時間の前に「*(アスタリスク)」をつけるのも意味不明。普通に入力するだけじゃダメなの?

 

ドキュメントの指示通りに書いても、記号の使い分けに戸惑う方は多いはずです。あなたがツールを使いこなせていないわけではなく、これはパソコンのシステム(コマンドライン)とyt-dlpが引数を解釈するための厳格なルールがあるから発生する疑問です。

 

まず、チャプター名を指定する際に「” “」や「’ ‘」で囲む理由について解説します。

コマンドプロンプトやターミナルといったシステムは、入力された文字の中にある「スペース」を区切り文字として認識します。もし除外したいチャプター名が「End loop」のようにスペースを含んでいた場合、クォーテーションで囲まないと、システムは「End」という別の命令だと勘違いしてエラーを吐き出します。

これを防ぐため、「ここは1つの塊の文字列ですよ」とシステムに教えてあげる役割がクォーテーションなのです。

 

次に、時間を指定する –download-sections “*0:00-6:15” の先頭にある「*」についてです。

yt-dlpの仕様では、このオプションに「チャプター名」と「タイムスタンプ(時間)」のどちらでも入力できるようになっています。しかし、単に「0:00」と入力すると、yt-dlpのシステムはそれが「0:00という名前のチャプター」を探せばいいのか、「0分0秒という時間」で区切ればいいのか判断できません。

「これから指定するのは時間(タイムスタンプ)の範囲ですよ」と明確に分類する合図として、yt-dlpの内部構造上「*」が必須になっています。

 

また、これらのカット処理はyt-dlp単体で行っているわけではなく、内部的に「ffmpeg」という強力な動画処理ツールにデータを渡して実行されています。

yt-dlpが正しくffmpegに命令を伝えるための「お作法」として、こうした厳密な構文ルールが存在しているのです。

 

まとめ

  1. 不要なチャプターを除外したい場合は「–remove-chapters」、時間を指定して一部だけ切り出したい場合は「–download-sections」を使うことで解決できる。
  2. エラーを防ぎ、yt-dlpに正しい指示を伝えるため、指定する文字や時間はクォーテーションで囲み、時間指定の際は先頭に「*」をつけるのがツールの仕様である。

エラーや思い通りに動かない原因は、多くの場合ツールの厳格な仕様とルールにあります。裏側の仕組みさえ理解してしまえば、容量を圧迫する不要な部分を省き、必要なデータだけを完全にコントロールできるようになります。