Ошибки yt-dlp: что означает каждая и какое решение работает
Автор Команда TunelioОпубликовано
Почти у каждого сбоя yt-dlp на YouTube один из трёх корней: устаревшая сборка, отсутствующий JavaScript-рантайм или IP-адрес, которому YouTube не доверяет. Сначала выполните три команды ниже — они закрывают большинство жалоб. Затем найдите своё сообщение об ошибке в каталоге: у каждой записи причина, первое действие и полное руководство.
Универсальная первая помощь (до всего остального)
yt-dlp -U # или: pip install -U yt-dlp (пакеты дистрибутивов отстают на месяцы)
curl -fsSL https://deno.land/install.sh | sh # JS-рантайм — обязателен для YouTube с 2025
yt-dlp -4 --rm-cache-dir -vU "URL" # IPv4, чистый кеш, подробный вывод: ГДЕ падаетЧитайте вывод -v сверху вниз: отладочный заголовок показывает версию, найденные JS-рантайм и ffmpeg; первое WARNING или ERROR говорит, какая стадия упала — запрос информации (YouTube не описал видео), загрузка медиа (описал, но отказал в файле) или постобработка (ffmpeg). Каталог ниже сгруппирован так же.
Ошибки стадии информации: YouTube не хочет с вами разговаривать
«Sign in to confirm you’re not a bot»
YouTube оценил запрос как автоматизацию — дата-центровый или IPv6-адрес, нет PO-токена, нет сессии, слишком большой объём. Порядок: обновление, JS-рантайм, -4, затем cookies запасного аккаунта из приватного окна, затем провайдер PO-токенов, затем резидентный выход. Одни cookies живут недолго.
→ Полное руководство: «Sign in to confirm you’re not a bot»
«Unable to extract …», «nsig extraction failed», «Some formats may be missing»
YouTube изменил код плеера, и ваш yt-dlp не может решить новую подпись, либо нет JavaScript-рантайма для её выполнения. Обновитесь (nightly, если стабильный релиз ещё не вышел) и поставьте Deno; удалите устаревший плагин YTNsigDeno, если он есть. На старой сборке это не лечится никаким флагом.
→ Полное руководство: как обновить yt-dlp
«Video unavailable», «Private video», «HTTP Error 404: Not Found»
Видео удалено, приватно, ограничено по региону или для участников — либо опечатка в ID. Проверьте ссылку в браузере: если и там не работает, yt-dlp не поможет. 404 во время загрузки означает истёкшую подписанную ссылку (переизвлеките с -c); в плейлистах добавьте --ignore-errors, чтобы пропускать мёртвые элементы.
→ Полное руководство: причины и решения HTTP Error 404
«Cookies are no longer valid», «could not find … cookies database», возрастные ограничения / только для участников
Сессионные cookies ротируются и истекают; файл из браузера, которым продолжали пользоваться, устарел сразу, а cookies основного аккаунта могут привести к его ограничению. Экспортируйте один раз из приватного окна запасного аккаунта, закройте его, передайте --cookies cookies.txt. Видео с возрастным ограничением и для участников требуют cookies аккаунта, который их видит.
→ Полное руководство: безопасный экспорт и использование cookies
Ошибки стадии медиа: YouTube описал видео, но отказывает в файле
«HTTP Error 403: Forbidden» (часто после первого куска)
Подписанная медиа-ссылка не совпала с клиентом, IP или PO-токеном, которых ждал YouTube. Обновитесь и поставьте JS-рантайм, принудительно IPv4, перестаньте задавать itag через -f (используйте сортировку -S), попробуйте другой клиент плеера, дайте PO-токен; cookies — в последнюю очередь, они могут вызывать медиа-403. Дата-центровые и IPv6-адреса получают это гораздо чаще.
→ Полное руководство: причины 403 Forbidden и порядок исправления
«Requested format is not available»
Принудительный itag не существует для этого видео или закрыт PO-токеном для вашего клиента. Посмотрите форматы через -F и выражайте предпочтение, а не ID: -S "res:1080,ext:mp4". Если 1080p+ нет совсем, причина — ffmpeg (для слияния) или PO-токен.
→ Полное руководство: ffmpeg, слияние и почему нет 1080p
Очень медленные загрузки (несколько КБ/с), зависания, throttling
Урезанная скорость — ответ YouTube на неверный параметр «n»: почти всегда устаревшая сборка или отсутствие JS-рантайма, а не ваш канал. Сначала обновитесь; затем --concurrent-fragments 4 помогает фрагментированным форматам. Ограничение частоты на массовых запусках — другое: добавьте флаги sleep.
→ Полное руководство: обновление yt-dlp
Ошибки прокси: «Unable to connect to proxy», «Missing dependencies for SOCKS support», бот-проверка через прокси
Проверьте схему и порт (socks5h:// для удалённого DNS), поставьте yt-dlp[default] для SOCKS и помните, что репутация выхода оценивается как у вашего сервера — дата-центровые прокси наследуют те же 403 и бот-проверки; резидентные работают, но гонят через себя всё видео.
→ Полное руководство: прокси, которые реально работают против YouTube
Ошибки постобработки: ffmpeg
«ffmpeg not found», «You have requested merging … but ffmpeg is not installed»
Без ffmpeg yt-dlp тихо сохраняет лучший однофайловый формат (обычно 720p) и не может делать MP3. Установите его (apt/brew/winget), откройте новый терминал или передайте --ffmpeg-location. Проверьте строку ffmpeg в yt-dlp -v.
→ Полное руководство: установка ffmpeg и указание пути
«Postprocessing: Conversion failed!», на выходе .webm вместо .mp3
Повреждённая частичная загрузка, очень старый ffmpeg или его отсутствие. Удалите .part, обновите оба инструмента, повторите с -x --audio-format mp3 --audio-quality 0 — или оставьте исходный Opus/AAC через --audio-format best без транскодирования.
→ Полное руководство: yt-dlp в MP3
→ Что оставить: WebM/Opus, M4A или MP3
Ошибки в коде: DownloadError в Python, зависшие async-серверы
yt-dlp оборачивает сбои в yt_dlp.utils.DownloadError с исходным сообщением внутри — сопоставляйте по тексту («Sign in to confirm», «HTTP Error 403», «Private video»). Он синхронный и стоит ~1,2 с CPU на извлечение; вызванный в event loop, он замораживает сервер — выполняйте в пуле потоков и ограничивайте параллельность.
→ Полное руководство: yt-dlp из Python
→ yt-dlp за API: self-host или хостинг
Безопасно ли и законно ли это вообще?
Сам yt-dlp открыт и безопасен из официальных релизов или pip; срабатывания антивирусов на сборку для Windows — ложные срабатывания PyInstaller. Риски — поддельные сайты, cookies основного аккаунта и недоверенные плагины. Законность зависит от того, что вы скачиваете и где живёте.
→ Полное руководство: безопасен ли yt-dlp?
Ошибки, превращающие одну проблему в постоянную
- Повторять бот-проверку или 403 в тесном цикле — быстрейший способ пометить IP навсегда.
- Передавать cookies личного Google-аккаунта на сервере.
- Принудительные itag из старых туториалов (-f 137+140) вместо сортировки -S.
- Сидеть на прошлогоднем пакете дистрибутива и читать форумы вместо обновления.
- Ротировать дешёвые дата-центровые прокси и ждать другой репутации.
Когда пора перестать чинить yt-dlp
Для нескольких личных загрузок хватит команд первой помощи и руководств выше. Если yt-dlp работает внутри бота, приложения или пайплайна, каждая ошибка выше становится регулярной эксплуатационной задачей — обновления, рантаймы, PO-токены, ротация cookies, резидентные прокси, CPU ffmpeg. Хостинговый API возвращает ссылку на скачивание на каждый запрос и держит всё это на своей стороне. Tunelio — наш сервис, учитывайте это. Новые аккаунты получают 100 бесплатных кредитов.
→ Альтернатива yt-dlp: когда нужен хостинговый API
Источники
- README и wiki yt-dlp — справочник опций, FAQ, руководства по PO-токенам и cookies.
- Трекер yt-dlp — #14680 и #17395 (403), треды о бот-проверке и nsig.
- Наши измерения (парк извлечения Tunelio, 2026): доля проверок на дата-центровых IP, отказы по IPv6, CPU на извлечение.
Частые вопросы
Какая самая частая причина ошибок yt-dlp?
Устаревшая сборка. YouTube меняет плеер каждые несколько недель; yt-dlp старше месяца падает с 403, троттлингом, бот-проверками или пропавшими форматами. Обновляйтесь раньше всего.
Почему yt-dlp работает на ноутбуке, но не на сервере?
Репутация IP: дата-центровые и IPv6-адреса оцениваются как вероятные боты. Сначала принудительный IPv4; если мало — резидентный выход или хостинговый API.
Нужны ли ffmpeg и Deno?
Да, для полной поддержки YouTube: Deno (или Node/Bun) решает JavaScript-челленджи YouTube; ffmpeg сливает потоки 1080p+ и конвертирует аудио.
Добавлять cookies сразу, как что-то упало?
Нет. Cookies решают только случай стены входа и могут вызывать медиа-403 или ограничение аккаунта. Сначала обновление, JS-рантайм и IPv4; cookies запасного аккаунта — в последнюю очередь.
Похожие руководства
- yt-dlp: «Sign in to confirm you're not a bot» — что это значит и как исправить →
- yt-dlp 403 Forbidden: почему возникает и в каком порядке исправлять →
- yt-dlp «HTTP Error 404: Not Found» — что это значит и как исправить каждую причину →
- Как обновить yt-dlp — все способы установки, nightly и почему это важно →
- yt-dlp cookies: как экспортировать, использовать и почему они перестают работать →
- yt-dlp и ffmpeg: зачем он нужен, как установить и какие команды его используют →
- yt-dlp с прокси: синтаксис, какие прокси реально работают против YouTube и во что это обходится →
- yt-dlp в MP3: правильная команда, настройки качества и метаданные →
- yt-dlp аудио: WebM/Opus, M4A/AAC или MP3 — что оставить? →
- yt-dlp из Python: встроенный API, опции, хуки и запуск на сервере →
- Безопасен ли yt-dlp? Честно о безопасности, приватности и законности →
- yt-dlp как API: встраивание, свой REST-враппер или хостинговый сервис →
- Альтернатива yt-dlp, которую не нужно обслуживать →