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

yt-dlp cookies: как экспортировать, использовать и почему они перестают работать

Автор Команда TunelioОпубликовано

Cookies позволяют yt-dlp предъявить настоящую сессию YouTube: это снимает «Sign in to confirm you’re not a bot» и открывает видео с возрастным ограничением или для участников. Сделанные неправильно, они приводят к ограничению Google-аккаунта и всё равно перестают работать через день. Здесь — безопасный способ: запасной аккаунт в приватном окне, один экспорт и нужные флаги.

Коротко

# 1. приватное окно → вход в ЗАПАСНОЙ Google-аккаунт → открыть https://www.youtube.com/robots.txt
# 2. экспортировать cookies.txt расширением типа "Get cookies.txt LOCALLY" → закрыть окно
yt-dlp --cookies cookies.txt -4 "https://youtu.be/dQw4w9WgXcQ"

Это весь рецепт, который рекомендуют мейнтейнеры yt-dlp: сессия, которую никто больше не трогает, экспорт со страницы, не обновляющей токен, и никаких повторных открытий в браузере. Ниже — почему важна каждая часть и что делать, если cookies всё равно не работают.

Когда cookies действительно нужны

  • YouTube отвечает «Sign in to confirm you’re not a bot», а обновление yt-dlp, JS-рантайм и принудительный IPv4 не помогли.
  • Видео с возрастным ограничением, только для участников, приватное (открытое вашему аккаунту) или в приватном плейлисте.
  • Нужны субтитры, история или региональные настройки вашего аккаунта.

Для обычных публичных видео с домашнего подключения cookies не нужны вовсе. Добавлять их «на всякий случай» — путь к заблокированному аккаунту и файлу, который истекает еженедельно.

Два способа передать cookies

--cookies FILE (рекомендуется для серверов)

Принимает cookies.txt в формате Netscape. Это метод для VPS, Docker и скриптов: файл явный, переносимый и не зависит от установленного браузера. Экспортируйте один раз из приватного окна (шаги ниже) и держите вне системы контроля версий.

--cookies-from-browser БРАУЗЕР (удобно на своей машине)

yt-dlp --cookies-from-browser chrome "https://youtu.be/dQw4w9WgXcQ"
# поддерживаются firefox, chromium, edge, brave, opera, safari, vivaldi;
# профиль/контейнер: firefox:profile_name или chrome:Default

yt-dlp читает базу cookies браузера напрямую. Хорошо для разового локального использования, но читается ваш повседневный аккаунт, браузер продолжает обновлять сессию, пока открыт, а на Linux может понадобиться доступ к keyring. Для автоматизации не подходит.

Правильный экспорт cookies (по шагам)

  • Откройте приватное окно, чтобы никакая другая вкладка YouTube не делила сессию.
  • Войдите в запасной Google-аккаунт, созданный для этого, — не в тот, которым дорожите.
  • Перейдите на https://www.youtube.com/robots.txt: страница загружает сессионные cookies, но не запускает скрипты, которые их обновляют.
  • Экспортируйте расширением, сохраняющим в формате Netscape (в wiki yt-dlp рекомендуют «Get cookies.txt LOCALLY»).
  • Закройте приватное окно, не заходя больше на YouTube: каждый следующий просмотр в этой сессии может инвалидировать экспортированный токен.
  • Перенесите файл на машину с yt-dlp, chmod 600 и передайте через --cookies.

Почему cookies перестают работать

  • Ротация: YouTube обновляет сессионные токены в фоне, пока открыта вкладка. Если экспорт сделан из окна, которым продолжали пользоваться, файл уже устарел.
  • Истечение: сессионные cookies недолговечны по замыслу — считайте на дни или несколько недель, затем повторный экспорт.
  • Репутация IP: файл cookies не спасёт дата-центровый IP, который YouTube уже пометил. Если cookies работают день и падают — проблема в адресе; см. руководство по прокси.
  • Не тот клиент: некоторые клиенты плеера игнорируют cookies или не должны их получать; yt-dlp предупреждает, когда cookies передаются клиенту, который их не использует.
  • Потеря форматов: мейнтейнеры отмечают, что с cookies часть форматов становится недоступной — медиа-403 сразу после добавления cookies это известный паттерн.

Безопасность аккаунта

Автоматический трафик с помеченного серверного IP под залогиненной сессией — ровно то, что ищут антиабуз-системы Google. Такие аккаунты получают ограничения, принудительную верификацию или блокировку. Одно правило: cookies, которые вы даёте yt-dlp на сервере, принадлежат аккаунту, который не жалко потерять. Никогда не пересылайте cookies.txt в чате или тикете — это полноценный вход.

Cookies в скриптах, cron и Docker

# держите файл вне образа и монтируйте только для чтения
docker run --rm -v "$PWD/cookies.txt:/cookies.txt:ro" -v "$PWD/out:/out" \
  yt-dlp-image yt-dlp --cookies /cookies.txt -4 -o "/out/%(title)s.%(ext)s" "URL"

yt-dlp по возможности перезаписывает файл обновлёнными значениями после запуска; монтирование только для чтения это блокирует, поэтому переэкспортируйте по расписанию. Логируйте версию yt-dlp и возраст файла cookies при каждой ошибке — большинство тикетов «cookies сломались» это устаревший файл плюс старый бинарник.

Когда cookies — не тот инструмент

Если yt-dlp стоит под ботом, приложением или пайплайном, гигиена cookies становится регулярной рутиной: ротация каждые несколько недель, запасные аккаунты, IP, которые всё равно придётся менять. Хостинговый API держит сессии, PO-токены и резидентные выходы на своей стороне и возвращает ссылку одним запросом:

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

Tunelio — наш сервис; для редких загрузок с ноутбука хватит --cookies-from-browser и бесплатных инструментов. Новые аккаунты получают 100 бесплатных кредитов, карта не нужна.

Источники

  • Wiki yt-dlp — «How do I pass cookies to yt-dlp?» (приватное окно, приём с robots.txt, ротация).
  • README yt-dlp — справка по --cookies и --cookies-from-browser.
  • Трекер yt-dlp — сообщения о недоступности форматов с cookies (2026).

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

Какой формат cookies нужен yt-dlp?

Netscape/Mozilla cookies.txt. «JSON»-экспорт браузеров не подходит; используйте расширение с форматом Netscape или пусть --cookies-from-browser читает браузер напрямую.

Как часто переэкспортировать?

Когда загрузки начинают падать с ошибкой входа — обычно каждые несколько дней или недель. Экспорт из закрытого приватного окна живёт дольше всего.

Cookies исправят 403 Forbidden?

Только вариант со стеной входа. 403 на загрузке медиа — обычно несовпадение клиента/PO-токена/IP, и cookies могут ухудшить ситуацию; см. руководство по 403.

Можно ли использовать основной Google-аккаунт?

На сервере — нет. Возьмите запасной аккаунт. Автоматизированное использование с помеченного IP может привести к ограничению или блокировке аккаунта.

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