以下命令对我有用(意味着它返回视频的 JSON 数据):
yt-dlp.exe https://www.youtube.com/watch?v=1C0ZtmBlL-s --skip-download --dump-single-json --no-check-certificate --restrict-filenames
但是,对于尚未“首映”(处于“即将发布”模式)的视频,相同的命令不会返回任何 JSON 数据!它输出 null 并错误记录一段英文文本:“Premieres in 3 hours”,这对我来说毫无用处:
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貌似支持。那么为什么当视频处于“即将播放”状态时输出为空?
PS:根据您阅读本文的时间,第二个链接中的视频可能不再“即将发布”。在发布本文时,它还有 32 分钟。
您需要添加
--ignore-no-formats-error
到命令中,因为这是在无法下载视频格式时抛出的错误。例如:
请参阅文档