Improve YouTube cookies handling and script

This commit is contained in:
vrubel 2025-12-17 17:53:34 +03:00
parent 1e7f3be3f3
commit fdaaddff98
3 changed files with 126 additions and 22 deletions

View file

@ -48,17 +48,68 @@ if ! command -v yt-dlp &> /dev/null; then
exit 1
fi
yt-dlp --cookies-from-browser "$BROWSER" --cookies "$COOKIES_FILE" --no-download https://www.youtube.com 2>&1 | head -10
echo ""
echo "ВАЖНО: Убедитесь, что вы залогинены в YouTube в выбранном браузере!"
echo "Нажмите Enter для продолжения..."
read
echo ""
echo "Получаю cookies из браузера $BROWSER..."
echo "Это должно занять несколько секунд..."
# Используем простой способ: извлекаем cookies из браузера и сохраняем в файл
# Используем главную страницу YouTube (самый простой запрос)
# Таймаут 15 секунд - этого должно хватить для извлечения cookies
# --no-download - не скачивать видео
# --quiet - минимум вывода
timeout 15 yt-dlp \
--cookies-from-browser "$BROWSER" \
--cookies "$COOKIES_FILE" \
--no-download \
--quiet \
"https://www.youtube.com" 2>&1 | head -20
EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then
echo ""
echo "⚠️ Процесс получения cookies превысил таймаут (20 сек)"
echo " Проверяю, был ли создан файл cookies..."
elif [ $EXIT_CODE -ne 0 ] && [ $EXIT_CODE -ne 124 ]; then
echo ""
echo "⚠️ Процесс завершился с кодом $EXIT_CODE"
echo " Проверяю, был ли создан файл cookies..."
fi
if [ -f "$COOKIES_FILE" ]; then
echo ""
echo "✅ Cookies успешно сохранены в $COOKIES_FILE"
echo ""
echo "Теперь перезапустите youtube-downloader:"
echo " docker compose -f youtube-downloader/docker-compose.yml restart"
# Проверяем, что файл содержит данные (не только заголовки)
COOKIE_LINES=$(grep -v '^#' "$COOKIES_FILE" | grep -v '^$' | wc -l)
if [ "$COOKIE_LINES" -gt 0 ]; then
echo ""
echo "✅ Cookies успешно сохранены в $COOKIES_FILE"
echo " Найдено строк с cookies: $COOKIE_LINES"
echo ""
echo "Теперь перезапустите youtube-downloader:"
echo " docker compose -f youtube-downloader/docker-compose.yml restart"
echo ""
echo "Или перезапустите все сервисы:"
echo " ./stop_all.sh && ./start_all.sh"
else
echo ""
echo "❌ Ошибка: файл cookies создан, но не содержит данных"
echo " Убедитесь, что вы залогинены в YouTube в браузере $BROWSER"
rm -f "$COOKIES_FILE"
exit 1
fi
else
echo ""
echo "❌ Ошибка: файл cookies не был создан"
echo ""
echo "Возможные причины:"
echo "1. Вы не залогинены в YouTube в браузере $BROWSER"
echo "2. Браузер $BROWSER не найден или недоступен"
echo "3. Проблемы с правами доступа к файлу cookies браузера"
exit 1
fi