Вопрос или проблема
Если я пытаюсь загрузить завершенный поток, 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" при попытке загрузить фрагменты, чаще всего связана с тем, что сервис ограничивает частоту запросов.
Шаги для решения проблемы с загрузкой элементов стрима:
-
Использование флага
--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
-
Снижение скорости загрузки:
Вы также можете уменьшить скорость загрузки с помощью флага--limit-rate
. Это позволит избежать быстрого достижения лимита, установленных сервером YouTube. Например, установить скорость загрузки на 250 KiB/s:yt-dlp --hls-prefer-native --limit-rate 250K -f 140 https://www.youtube.com/watch?v=UQ12Y-XxRRM
-
Постепенные повторные попытки:
Если ошибка продолжает возникать, вы можете настроить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
-
Обновление
yt-dlp
:
Убедитесь, что вы используете последнюю версиюyt-dlp
, так как команды и параметры могут быть обновлены. Для обновления вы можете воспользоваться следующей командой:python -m pip install -U yt-dlp
-
Скачивание альтернативных форматов:
Если вы все еще столкнетесь с проблемами, возможно, стоит попробовать загрузить видео в другом формате или качестве. Измените параметр-f
на более низкокачественный, чтобы снизить нагрузку на запросы.
Заключение
Следуя вышеописанным рекомендациям, вы можете значительно повысить шансы на успешную загрузку недавнего стрима с YouTube без вызова ограничений со стороны сервера. Некоторые из указанных шагов могут быть адаптированы в зависимости от ваших нужд и скорости интернет-соединения. Применяя различные флаги, вы сможете подстроить процесс загрузки под текущие условия, минимизируя риски возникновения ошибок.