youtube-dlを使用して特定の日付より前のすべてのビデオをより効率的にダウンロードする方法は?

youtube-dlを使用して特定の日付より前のすべてのビデオをより効率的にダウンロードする方法は?

youtube-dlを使用して、特定の日付より前に特定のYouTubeチャンネルにアップロードされたすべての動画をダウンロードしたいと思います。だから私はやりましたyoutube-dl <url_to_youtube_channel> --datebefore <date>。ビデオをダウンロードする前に、youtube-dlはまずビデオWebページをダウンロードし、アップロード日が指定された日付より前であることを確認します(「Webページをダウンロード中」)。

しかし、チャンネルは薬をアップロードしました。動画は1700枚なので、すべてのページをダウンロードするのにかなり時間がかかります。さらに、上記のコマンドを別の日付に複数回実行する予定です。それでは、このプロセスをスピードアップする方法があるかどうか疑問に思います。 youtube-dlで動画のURLと制作日をダウンロードできますか?この場合、必要なURLを抽出し、それをyoutube-dlに直接提供するクエリテーブルを構築できます(パラメータは重複し--datebeforeます)。

答え1

このレベルの制御が必要な場合は、youtube-dlデータベースを構築するために最初に情報を取得してダンプする必要があります。後でそれを使用して目的のyoutube-dlビデオのみをダウンロードできます。

これは例です。jsonフィルタと出力を直接作成できます。たとえば、

$ youtube-dl --skip-download --print-json <URL-CHANNEL> | jq --join-output '.upload_date," ",.id," ",.title,"\n"'
DATE1 ID1 TITLE1
DATE2 ID2 TITLE2
...

結果は、youtube-dl実際にダウンロードされたIDをフィルタリングするために必要に応じて処理できるテキストファイルです。

関連情報