Как сделать так, чтобы данные JSON yt-dlp не возвращали значение null, когда видео YouTube находится в «предстоящем» режиме?
У меня работает следующая команда (то есть она возвращает данные JSON для видео):
yt-dlp.exe https://www.youtube.com/watch?v=1C0ZtmBlL-s --skip-download --dump-single-json --no-check-certificate --restrict-filenames
Однако та же команда, но для видео, премьера которого еще не состоялась (оно находится в режиме «предстоящий»), не возвращает никаких данных JSON! Он выводит ноль и регистрирует ошибки на английском языке: «Премьера через 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-dlp буквально имеетlive_status
свойство в выводе JSON, которое может бытьis_upcoming
, согласно его руководству, поэтому нет смысла , чтобы моя команда ничего не возвращала, когда видео «предстоящее». Данные доступны, и yt-dlp, похоже, их поддерживает. Так почему же выходные данные равны нулю, когда видео находится в состоянии «предстоящее»?
PS: В зависимости от того, когда вы это прочтете, видео по второй ссылке может перестать быть «предстоящим». На момент публикации он продлится еще 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
См. документацию