youtube-dl 正在下载频道页面 #number => 如何跳过旧页面?

youtube-dl 正在下载频道页面 #number => 如何跳过旧页面?

我住在离网的地方,没有互联网接入。偶尔我会去图书馆运行我的脚本,它会备份视频频道(youtube、bitchute、rumble 等)

我在大型频道上浪费了很多时间......因为 youtube-dl 必须加载所有页面......例如:

[BitChuteChannel] thedavidknightshow:正在下载频道第 1 页
...
[BitChuteChannel] thedavidknightshow:正在下载频道第 194 页

该库阻止了 BitChute 和 rumble......所以我必须对它们进行 torify,这会使其速度变得更慢。

由于我已经下载了整个频道,我该如何仅索引最新的页面?

我们也欢迎其他能加快这一进程的建议。

答案1

如果你已经有了最旧的文件,你可以使用--playlist-items--playlist-end

例如:

yt-dlp playlist_url --playlist-end 30

仅获取最新的 1 或 2 页。这也适用于帐户或频道,因为频道基本上是特定类型的播放列表

答案2

--playlist-end 可能有用,但你还有另外两个不错的选择。第一个选项是在下载时使用

--download-archive <archive file> 

选项。您可以给它一个文件名,如 YOUTUBE.CHANNEL.archive.txt,它会列出该存档文件中下载的文件。下次您运行该命令时,比如几个月后,它会跳过您已经下载的文件。

另一个选择是

--datebefore YYYYMMDD 

--dateafter YYYYMMDD  

您可以使用 --datebefore 下载从开始到某个日期的所有内容。您可以使用 --dateafter 下载从该日期到当前日期的所有内容。例如,如果我在 11 月左右停止观看某个节目,并且不想在那之后下载任何内容,我可以使用

--datebefore 20231101

因此,整个命令行的示例如下

yt-dlp -f 'bv*[height<=1440]+ba' --embed-thumbnail --embed-metadata --download-archive YOUTUBE.CHANNEL.archive.txt https://www.youtube.com/@YOUTUBE.CHANNEL/videos --datebefore 20231101 -o '%(channel)s/%(title)s.%(ext)s'

将 YOUTUBE.CHANNEL 替换为正确的名称。这应该可以解决您的问题。

相关内容