yt-dlp で既にダウンロード済みのファイルをスキップするには、主に --download-archive オプションを使う方法が確実です。また、--no-overwrites オプションも状況によって役立ちます。
以下の表に、それぞれのオプションの特徴と違いをまとめました。
| オプション | 仕組み | メリット | 注意点/ベストプラクティス |
|---|---|---|---|
--download-archive FILE | ダウンロードに成功した動画のIDを指定したファイルに記録し、次回以降はそのリストと照合してスキップ。 | 👍 最も信頼性が高い。異なる画質や形式で再ダウンロードする場合もスキップできる。プレイリストの途中から再開する場合に便利。 | アーカイブファイルを紛失すると機能しなくなる。異なるディレクトリでダウンロードする場合は、アーカイブファイルのパスを意識する必要がある。 |
--no-overwrites (-w) | ダウンロード先に同じファイル名が存在するかどうかで判断する。 | 設定が簡単。単一の動画を再度ダウンロードする際など、シンプルな状況で手軽に使える。 | ファイル名が変わると重複ダウンロードされる。例えば、異なる形式(.mp4 と .webm)や、テンプレートで名前にプレイリスト番号を付ける場合などは効かない。 |
💡 具体的な使い方とコマンド例
実際のコマンドは以下のようになります。--download-archive の使用が特におすすめです。
--download-archiveを使用する(推奨)
プレイリスト全体をダウンロードする際、すでに取得済みの動画をスキップしたい場合に最適です。yt-dlp --download-archive "downloaded_videos.txt" "https://www.youtube.com/playlist?list=PL..."このコマンドを実行すると、ダウンロードした動画のIDがdownloaded_videos.txtというファイルに記録されます。次回同じコマンドを実行すると、このリストを参照して新しい動画のみをダウンロードします。--no-overwritesを使用する
同じファイル名でダウンロードを繰り返したくない場合の基本的なオプションです。bash yt-dlp --no-overwrites "https://www.youtube.com/watch?v=..."
⚠️ 注意点とその他の関連オプション
--no-overwritesの限界: このオプションはファイル名ベースでの判定であるため、テンプレート(-oオプション)でファイル名を変更したり、異なる形式でダウンロードしたりすると、同じ動画が重複してダウンロードされる可能性があります。--abort-on-errorとの組み合わせ: プレイリストのダウンロード中にエラーが発生しても処理を中止せずに続行したい場合は、--ignore-errorsオプションを併用します。bash yt-dlp --download-archive archive.txt --ignore-errors "プレイリストURL"
💎 まとめ
- 確実に管理したいなら
--download-archive: プレイリストやチャンネル全体を継続的にバックアップする場合や、異なる形式での重複を防ぎたい場合は、このオプションが必須です。 - 簡単な使い捨てなら
--no-overwrites: 単体の動画を再度ダウンロードする可能性が低い、ごくシンプルな場合の簡易措置として利用できます。
何か特定のシナリオ(例えば、定期的なチャンネルのバックアップなど)があれば、より最適なコマンド例をお伝えできるかもしれません。


コメント