videoDownloadTGbot/youtube-downloader/requirements.txt

6 lines
66 B
Text
Raw Normal View History

Flask==3.0.0
flask-cors==4.0.0
fix(downloaders): Deno runtime, свежий yt-dlp, честный health-check, смоук-тест Возрастные YouTube-видео не скачивались: с cookies yt-dlp отбрасывает клиент android и остаётся web, которому нужно решить n-challenge, а в образе стоял Node 20 при требуемом минимуме 22 ("JS runtimes: node-20.19.2 (unsupported)"). Ставим Deno — рекомендованный yt-dlp рантайм и один статический бинарник. Instagram падал с "empty media response" одинаково с cookies и без них — дело было не в сессии, а в устаревшем экстракторе: слой pip был закеширован на yt-dlp 2026.06.09. Поднимаем нижнюю границу до 2026.7.4. /cookies/check помечал проблемой с cookies ЛЮБОЙ сбой, из-за чего на поломку JS-рантайма прилетел алерт про протухшие cookies и увёл разбор не туда. Теперь ответ содержит status: ok | cookies_invalid | extraction_failed | no_cookies, и админ-бот шлёт разные сообщения. Разбор ответа в bot.py сохраняет совместимость со старым форматом без поля status. Добавлен smoke_test.py — гоняет реальные ссылки (включая обе регрессии выше) через запущенные сервисы и печатает таблицу. Запускать после каждой правки. Схема получения cookies переведена с крона на разовый ручной экспорт: cookies-cron/ -> cookies/, удалены скрипты с анти-паттерном `--cookies-from-browser BROWSER --cookies FILE`, который wiki yt-dlp прямо запрещает и который сам ломал YouTube-сессию ротацией. Ключевые cookies живут около года, поэтому обновление по расписанию не нужно — триггером служит алерт health-check. deliver_cookies.sh только доставляет файлы по scp. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 00:31:16 +00:00
yt-dlp>=2026.7.4
gunicorn==21.2.0