Как сохранить для себя видео с потоковых сервисов, ч.2
Ну, только поделился, лопушидзе такой, возможностью кочадь и радоваца, как отхватил вот такой вывод (ЗСДС - Замедленный сервис с деградирующими серверами):
[ЗСДС] Extracting URL: https://www. ЗСДС.com/watch?v=%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0-%D0%B1%D0%BB%D0%B0
[ЗСДС] E=-=-=-Q: Downloading webpage WARNING: [ЗСДС] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. ЗСДС extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one [ЗСДС] E=-=-=-Q: Downloading android vr player API JSON ERROR: [ЗСДС] E=-=-=-Q: This video is not available
Причём с других ресурсов проблем не поступало.
Крч, это, оказывается, появились новые требования yt-dlp к JS-рантайму и ограничения со стороны ЗСДС для конкретного ролика, который я и пытался сохранить. yt-dlp раньше мог вытаскивать данные с ЗСДС без выполнения явы. Теперь, оказывается, ЗСДС активно шифрует и генерирует данные через JavaScript, без JS yt-dlp получает обрезанный или подменённый ответ ив итоге часть видео выглядит как несуществующая. Крч, это не видео удалено, а yt-dlp не может корректно разобрать страницу.
Как оказалось, с недавних версий yt-dlp extraction без JS официально признан устаревшим, по умолчанию в нём включён только deno и если JS-рантайма нет или он недоступен, yt-dlp работает в деградированном (простите) режиме. Отсюда фраза: some formats may be missing.
This video is not available - логика такая: пытается разобрать страницу без JS, получает неполные данные, падает на этапе android API (Downloading android vr player API JSON), не может сопоставить стримы и выводит: видео недоступно
Для видео, которое я пытался дёрнуть: либо региональные ограничения, либо усиленная защита, либо (что скорее всего) это то видео, которое отдаётся только после JS-инициализации. В браузере оно открывается, потому что там есть ява, кукисы, player context, а в yt-dlp без JS - фигушки.
Итак, победное решение – накатить в систему, мать их, индусов, яву. Самый норм вариант – node.js с долгосрочной поддержкой. Идём сюдой, забираем LTS (https://nodejs.org/en/download). Ставим (собака, долго, add to PATH проверьте, чтобы было), докачивает там что-то…
Допилил батник со следующими характеристиками: проверяется yt-dlp, проверяется наличие Node.js (если есть - используется, если нет - предупреждает и работает как раньше, без него).
Сработало, всё скачал :) Версия 2 батника прилагается.
Ну а скачать я пытался одну серию мультика про всем известную губку. :D