videoDownloadTGbot/youtube-downloader
vrubelroman c9972f3d68
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 52s
fix(cookies): не давать yt-dlp затирать мастер-файл кук, честнее алерты
Реальный инцидент: cookies "протухли" за пару дней вместо ~года. Причина —
не срок годности, а сам yt-dlp: --cookies FILE читает И дописывает cookie
jar обратно в файл после каждого запуска (--help: "read cookies from and
dump cookie jar in"), а когда Instagram-экстрактор решает, что сессия
невалидна, он явно чистит sessionid из jar'а — и это тут же сохраняется на
диск через YoutubeDL.close(). Наш собственный health-check (каждые 30 мин)
и обычные скачивания медленно, но верно стирали себе рабочие cookies.

Фикс: yt-dlp больше никогда не видит мастер-файл, только одноразовую копию
в фиксированном /tmp-пути (безопасно — оба сервиса --workers=1, гонок нет).
Проверено: md5sum/mtime мастер-файлов не меняются ни после серии
/cookies/check, ни после реального /download/stream.

Заодно в bot.py: notify_admin_cookie_alert больше не заявляет "это НЕ
cookies" для extraction_failed — на практике это оказалось не всегда
верно (анонимный rate-limit тоже "не cookies" по факту, но валидная
сессия могла бы его обойти). В алерты добавлена проверяемая ссылка
(test_url из /cookies/check), чтобы сразу было видно, что это health-check
дёргает тестовый ролик, а не реальная ссылка пользователя. Новый статус
cookies_incomplete детектирует "файл есть, но sessionid нет" ещё до
сетевых проверок — ловит именно тот случай, что привёл к инциденту.

Отдельно: пользователю теперь показывается понятное сообщение, когда
Instagram сам блокирует контент как возрастной/чувствительный
("can't be seen by certain audiences") — вместо общего "Something went
wrong", раз повторная попытка всё равно не поможет. Админ по-прежнему
получает полный технический текст без изменений.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:18:13 +00:00
..
.gitignore Add YouTube cookies to repository 2025-12-17 17:54:39 +03:00
app.py fix(cookies): не давать yt-dlp затирать мастер-файл кук, честнее алерты 2026-07-31 15:18:13 +00:00
docker-compose.yml Enhance YouTube video download functionality with improved error handling and format options. Update Docker configuration to use environment variable for port and simplify network settings. 2025-12-24 22:41:20 +03:00
Dockerfile fix(downloaders): Deno runtime, свежий yt-dlp, честный health-check, смоук-тест 2026-07-26 00:31:16 +00:00
requirements.txt fix(downloaders): Deno runtime, свежий yt-dlp, честный health-check, смоук-тест 2026-07-26 00:31:16 +00:00
youtube_cookies.txt fix(cookies): mount youtube/instagram cookies from host instead of baking into image 2026-06-30 22:02:14 +00:00