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:Defaultyt-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 может привести к ограничению или блокировке аккаунта.
Похожие руководства
- Ошибки yt-dlp: что означает каждая и какое решение работает →
- yt-dlp: «Sign in to confirm you're not a bot» — что это значит и как исправить →
- yt-dlp 403 Forbidden: почему возникает и в каком порядке исправлять →
- yt-dlp с прокси: синтаксис, какие прокси реально работают против YouTube и во что это обходится →
- Альтернатива yt-dlp, которую не нужно обслуживать →