Give yt-dlp a JavaScript runtime to avoid YouTube's bot checks
Downloads failed with "Sign in to confirm you're not a bot" even with cookies and a working proxy. yt-dlp was also warning that no JavaScript runtime was available: YouTube's player challenges now require one, and without it extraction degrades into exactly those bot checks. The image already ships Node, so yt-dlp is pointed at it via --js-runtimes, but only after confirming the installed build understands the flag — an older binary would otherwise fail on an unknown option. Startup logs which runtime was picked and warns when there is none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
71dc3f2da8
commit
2ee907626e
@@ -276,6 +276,25 @@ YTDLP_PROXY=socks5h://127.0.0.1:1080
|
||||
Прямые ссылки и интернет-радио ffmpeg скачивает сам, и там прокси применяется только для схем
|
||||
`http://` и `https://`.
|
||||
|
||||
## «Sign in to confirm you're not a bot»
|
||||
|
||||
Три причины, по которым YouTube так отвечает, в порядке частоты:
|
||||
|
||||
1. **Нет JS-рантайма.** Современный yt-dlp обязан исполнять JavaScript плеера YouTube; без этого
|
||||
извлечение деградирует и запросы выглядят как ботовые. В образе уже есть Node, и бот включает
|
||||
его флагом `--js-runtimes node` (`YTDLP_JS_RUNTIME`). При старте в логе видно, что рантайм
|
||||
подхвачен: `"jsRuntime":"node"`. Если там `null` — рантайм не определился, будет отдельное
|
||||
предупреждение.
|
||||
2. **Нет или протухли cookies** — см. раздел ниже. Проверить файл прямо в контейнере:
|
||||
|
||||
```bash
|
||||
docker compose exec mbot yt-dlp --cookies /data/cookies.txt --simulate https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
||||
```
|
||||
|
||||
3. **Подозрительный IP.** Выходные узлы Psiphon и прочих публичных прокси YouTube знает и
|
||||
проверяет чаще. Здесь помогают именно cookies; экспортировать их лучше из браузера,
|
||||
работающего через тот же прокси, чтобы сессия не выглядела прыгающей между странами.
|
||||
|
||||
## Учётка YouTube (cookies)
|
||||
|
||||
Логин и пароль для YouTube yt-dlp не поддерживает — единственный рабочий способ авторизоваться
|
||||
|
||||
Reference in New Issue
Block a user