Как сделать так, чтобы данные 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

См. документацию

Другие вопросы по тегам