Как скачать недавние фрагменты живых эфиров на YouTube — сегменты dash?

Вопрос или проблема

Если я пытаюсь загрузить завершенный поток, yt-dlp пытается сделать http-запрос для каждого фрагмента и получает ограничение по скорости от YouTube.

Мне нужно отменить и попробовать команду несколько раз. Как это исправить?

C:\Users\tynda\Downloads>yt-dlp -f 140 https://www.youtube.com/watch?v=UQ12Y-XxRRM
[youtube] Извлечение URL: https://www.youtube.com/watch?v=UQ12Y-XxRRM
[youtube] UQ12Y-XxRRM: Загрузка веб-страницы
[youtube] UQ12Y-XxRRM: Загрузка JSON API для iOS-плеера
[youtube] UQ12Y-XxRRM: Загрузка JSON API для мобильного плеера
[youtube] UQ12Y-XxRRM: Загрузка манифеста MPD
[info] UQ12Y-XxRRM: Загрузка 1 формата(ов): 140
[dashsegments] Всего фрагментов: 3983
[download] Назначение: Ask Us Anything: Завершение 2024 года и большие объявления на 2025 год! [UQ12Y-XxRRM].m4a
[download]   8.1% из ~ 162.14MiB со скоростью  281.45KiB/c ETA 08:56 (фрагмент 322/3983)[download] Ошибка: HTTP Error 403: Forbidden. Повторная попытка фрагмента 323 (1/10)...
[download] Ошибка: HTTP Error 403: Forbidden. Повторная попытка фрагмента 323 (2/10)...
[download] Ошибка: HTTP Error 403: Forbidden. Повторная попытка фрагмента 323 (3/10)...
[download] Ошибка: HTTP Error 403: Forbidden. Повторная попытка фрагмента 323 (4/10)...
[download] Ошибка: HTTP Error 403: Forbidden. Повторная попытка фрагмента 323 (5/10)...

Используйте флаг --hls-prefer-native

Ответ или решение

Чтобы успешно загрузить недавний стрим с YouTube, используя инструмент yt-dlp, необходимо учитывать определенные нюансы, связанные с запросами сегментов и ограничениями, накладываемыми YouTube. Ваша проблема, связанная с возникновением ошибки "HTTP Error 403: Forbidden" при попытке загрузить фрагменты, чаще всего связана с тем, что сервис ограничивает частоту запросов.

Шаги для решения проблемы с загрузкой элементов стрима:

  1. Использование флага --hls-prefer-native:
    Один из способов обойти проблему с ограничениями YouTube — это использовать флаг --hls-prefer-native. Этот параметр заставляет yt-dlp обрабатывать HLS-сегменты через нативные библиотеки, что может снизить вероятность получения ошибок 403. Убедитесь, что вы добавили этот флаг к вашей команде:

    yt-dlp --hls-prefer-native -f 140 https://www.youtube.com/watch?v=UQ12Y-XxRRM
  2. Снижение скорости загрузки:
    Вы также можете уменьшить скорость загрузки с помощью флага --limit-rate. Это позволит избежать быстрого достижения лимита, установленных сервером YouTube. Например, установить скорость загрузки на 250 KiB/s:

    yt-dlp --hls-prefer-native --limit-rate 250K -f 140 https://www.youtube.com/watch?v=UQ12Y-XxRRM
  3. Постепенные повторные попытки:
    Если ошибка продолжает возникать, вы можете настроить yt-dlp на более интеллектуальные повторные попытки при неудачных запросах. Для этого используйте флаги --retries и --retry-wait. Например, для 10 попыток, с ожиданием 5 секунд между ними:

    yt-dlp --hls-prefer-native --limit-rate 250K --retries 10 --retry-wait 5 -f 140 https://www.youtube.com/watch?v=UQ12Y-XxRRM
  4. Обновление yt-dlp:
    Убедитесь, что вы используете последнюю версию yt-dlp, так как команды и параметры могут быть обновлены. Для обновления вы можете воспользоваться следующей командой:

    python -m pip install -U yt-dlp
  5. Скачивание альтернативных форматов:
    Если вы все еще столкнетесь с проблемами, возможно, стоит попробовать загрузить видео в другом формате или качестве. Измените параметр -f на более низкокачественный, чтобы снизить нагрузку на запросы.

Заключение

Следуя вышеописанным рекомендациям, вы можете значительно повысить шансы на успешную загрузку недавнего стрима с YouTube без вызова ограничений со стороны сервера. Некоторые из указанных шагов могут быть адаптированы в зависимости от ваших нужд и скорости интернет-соединения. Применяя различные флаги, вы сможете подстроить процесс загрузки под текущие условия, минимизируя риски возникновения ошибок.

Оцените материал
Добавить комментарий

Капча загружается...