以下命令对我有用(意味着它返回视频的 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
看文档