当 YouTube 视频处于“即将播放”模式时,如何使 yt-dlp JSON 数据不返回 null?

当 YouTube 视频处于“即将播放”模式时,如何使 yt-dlp JSON 数据不返回 null?

以下命令对我有用(意味着它返回视频的 JSON 数据):

yt-dlp.exe https://www.youtube.com/watch?v=1C0ZtmBlL-s --skip-download --dump-single-json --no-check-certificate --restrict-filenames

但是,对于尚未“首映”的视频(处于“即将上映”模式),相同的命令不会返回任何 JSON 数据!它输出 null 并错误地记录了一条英文文本:“3 小时后首映”,这对我来说毫无用处:

yt-dlp.exe https://www.youtube.com/watch?v=bNWB7wu9hjE --skip-download --dump-single-json --no-check-certificate --restrict-filenames

我需要能够在首映之前看到首映的时间戳,以便自动为自己插入提醒。此信息可在 YouTube 网页上查看,因此存在:"isUpcoming":true并且"scheduledStartTime"

此外,根据手册,yt-dlplive_status在 JSON 输出中确实有一个属性,可以是,因此is_upcoming没有意义当视频处于“即将播放”状态时,我的命令不会返回任何内容。数据可用,yt-dlp 似乎支持它。那么为什么当视频处于“即将播放”状态时输出为空?

附言:根​​据您阅读本文的时间,第二个链接中的视频可能不再是“即将上映”。发布本文时,该视频将再上映 32 分钟。

答案1

您需要添加--ignore-no-formats-error到命令中,因为如果无法下载任何视频格式则会引发错误。

例如:

yt-dlp https://www.youtube.com/watch?v=rG0m71ilPuY --skip-download --dump-single-json --no-check-certificate --restrict-filenames --ignore-no-formats-error

文档

相关内容