yt-dlp:重新下载更高质量的同时尊重下载存档

问题描述 投票:0回答:1

我每天运行一个 yt-dlp 命令来从几个频道下载任何新的 Youtube 视频。我不想永远保留视频,因此我使用

--download-archive
来防止在删除或移动视频时重新下载:

yt-dlp --continue --no-overwrites --ignore-errors --download-archive archive.txt \
     -o "%(channel)s [%(channel_id)s] -- %(title)s-[%(id)s] [%(resolution)s].%(ext)s" $CHANNELS

但是,有时 YouTube 仍在处理视频,因此 yt-dlp 下载可用的低分辨率版本。

如何强制 yt-dlp 在可用时重新下载更高质量的视频,同时仍然能够删除视频而不触发重新下载?

如果我删除

--download-archive
,yt-dlp 将自动下载更好的质量,因为文件名会有所不同(格式中的
%(resolution)s
)。但这会重新下载我删除的视频。

如果我保留

--download-archive
,yt-dlp 不会重新下载已删除的视频,但也不会下载更高质量的视频。

我可以将视频 ID 分辨率保存在存档密钥中吗?或者挂钩一个预处理脚本来决定何时下载?我可以接受一定程度的重新下载,例如删除低分辨率视频。

yt-dlp
1个回答
0
投票

我用

--match-filters
标志解决了我的问题。更具体地说,添加分辨率高度过滤器:

--match-filters "height>=?720"

此过滤器会跳过小于 720p 的视频,同时仍然允许未知大小的视频(

?
>=?
部分)。

这样,低分辨率视频将被完全跳过并且不会提交到存档,但它会在高分辨率版本可用时自动下载。缺点是仅以低分辨率提供的视频将不会被下载,但这对我的用例来说不是问题。

我也尝试了

-f '[height>=?720]'
,它应该根据文档工作,但由于某种原因不断出现
Requested format is not available
错误。

© www.soinside.com 2019 - 2024. All rights reserved.