我想使用 youtube-dl 下载特定 YouTube 频道在特定日期之前上传的所有视频。因此,我做到了youtube-dl <url_to_youtube_channel> --datebefore <date>
。在下载视频之前,youtube-dl 首先下载视频网页,检查上传日期是否早于指定日期(“正在下载网页”)。
然而,该频道已经上传了大约。 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。