Перейти к содержимому

yt-dlp: "Sign in to confirm you're not a bot"

Эта ошибка yt-dlp означает, что YouTube счёл ваш запрос автоматическим. Разберём, что её вызывает, какие исправления работают и как избежать её совсем.

Что означает ошибка

YouTube решил, что запрос похож на бота, и теперь требует вошедшую, проверенную сессию, прежде чем отдать видео. yt-dlp показывает это как «Sign in to confirm you’re not a bot». Это серверная стена, а не баг yt-dlp.

Почему это происходит

  • Ваш IP помечен — диапазоны дата-центров и VPS (и IPv6) срабатывают быстрее всего.
  • Нет PO-токена: YouTube всё чаще хочет Proof-of-Origin токен, который yt-dlp не всегда может создать.
  • Нет cookies: анонимный клиент больше похож на скрапер, чем на браузер.
  • Объём: слишком много запросов с одного IP за короткое время.

Исправления, которые работают

Начните с передачи настоящих cookies браузера, чтобы запрос выглядел как вошедшая сессия:

yt-dlp --cookies-from-browser chrome "https://youtu.be/dQw4w9WgXcQ"

Если не помогло: принудительно используйте IPv4 через --force-ipv4, установите JS-рантайм (Deno), чтобы yt-dlp мог создать PO-токен, идите через резидентный прокси вместо IP вашего VPS и обновитесь до последней ночной сборки — экстракторы часто меняются.

Постоянное решение: не воюйте со стеной

Cookies истекают, IP снова помечаются, PO-токены меняются. Хостинг-API держит свежие сессии, резидентные IP и PO-токены на сервере, поэтому ваш код просто просит ссылку и получает её:

curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=720p" \
  -H "Authorization: Bearer tnl_your_api_key"

Дальнейшие шаги

Новые аккаунты получают 100 бесплатных кредитов без карты. Если стена бота постоянно всплывает в продакшене — это сигнал вынести извлечение с вашего собственного IP.

Частые вопросы

Добавление cookies всегда решает проблему?

Часто, но не навсегда. Cookies истекают, а помеченный IP всё равно могут проверить, поэтому cookies — это заплатка, а не надёжное решение.

Что такое PO-токен?

Proof-of-Origin токен, которым YouTube проверяет клиента. Чтобы его создать, yt-dlp нужен JS-рантайм, и схема со временем меняется.

Хостинг-API упрётся в ту же стену?

Он берёт стену на себя — ротация резидентных IP, свежие сессии и PO-токены работают на сервере, так что ваше приложение не видит проверку.

Похожие руководства