optimization scripts update coockies

This commit is contained in:
vrubel 2025-12-20 04:58:52 +03:00
parent 08c1cdf09c
commit 1c99e109b8
2 changed files with 105 additions and 71 deletions

View file

@ -1,39 +1,82 @@
#!/bin/bash #!/bin/bash
# Скрипт для получения cookies Instagram через yt-dlp # Скрипт для получения cookies Instagram через yt-dlp из Firefox
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
COOKIES_FILE="$SCRIPT_DIR/instagram_cookies.txt" COOKIES_FILE="$SCRIPT_DIR/instagram_cookies.txt"
BROWSER="firefox"
echo "Получение cookies Instagram из браузера..." # Если запущено с sudo, используем HOME реального пользователя
echo "" if [ -n "$SUDO_USER" ]; then
echo "Выберите браузер:" REAL_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
echo "1) Chrome" export HOME="$REAL_HOME"
echo "2) Firefox" echo "⚠️ Обнаружен sudo, использую домашнюю директорию пользователя: $HOME"
echo "3) Edge" fi
echo "4) Opera"
read -p "Введите номер (1-4): " browser
case "$browser" in echo "Получение cookies Instagram из Firefox..."
1) BROWSER="chrome" ;;
2) BROWSER="firefox" ;;
3) BROWSER="edge" ;;
4) BROWSER="opera" ;;
*)
echo "Неверный выбор"
exit 1
;;
esac
echo "Получаю cookies из $BROWSER..."
echo "Файл cookies будет сохранен в: $COOKIES_FILE" echo "Файл cookies будет сохранен в: $COOKIES_FILE"
echo "Получаю cookies..."
yt-dlp --cookies-from-browser "$BROWSER" --cookies "$COOKIES_FILE" --no-download https://www.instagram.com 2>&1 | head -10 # Используем таймаут для предотвращения зависания
timeout 15 yt-dlp \
--cookies-from-browser "$BROWSER" \
--cookies "$COOKIES_FILE" \
--no-download \
--quiet \
"https://www.instagram.com" 2>&1 | head -20
EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then
echo ""
echo "⚠️ Процесс получения cookies превысил таймаут (15 сек)"
echo " Проверяю, был ли создан файл cookies..."
elif [ $EXIT_CODE -ne 0 ] && [ $EXIT_CODE -ne 124 ]; then
echo ""
echo "⚠️ Процесс завершился с кодом $EXIT_CODE"
echo " Проверяю, был ли создан файл cookies..."
fi
if [ -f "$COOKIES_FILE" ]; then if [ -f "$COOKIES_FILE" ]; then
echo "" # Проверяем, что файл содержит данные (не только заголовки)
echo "✅ Cookies успешно сохранены в $COOKIES_FILE" 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 "Теперь перезапустите instagram-downloader:"
echo " docker compose -f instagram-downloader/docker-compose.yml restart"
echo ""
echo "Или перезапустите все сервисы:"
echo " ./stop_all.sh && ./start_all.sh"
else
echo ""
echo "❌ Ошибка: файл cookies создан, но не содержит данных"
rm -f "$COOKIES_FILE"
exit 1
fi
else else
echo "" echo ""
echo "❌ Ошибка: файл cookies не был создан" echo "❌ Ошибка: файл cookies не был создан"
echo ""
echo "Возможные причины:"
echo "1. Firefox не найден или недоступен"
echo "2. Проблемы с правами доступа к файлу cookies браузера"
echo "3. Cookies не найдены в браузере"
echo ""
echo "Проверка:"
if [ -n "$SUDO_USER" ]; then
REAL_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
FIREFOX_DIR="$REAL_HOME/.mozilla/firefox"
else
FIREFOX_DIR="$HOME/.mozilla/firefox"
fi
if [ -d "$FIREFOX_DIR" ]; then
echo " ✓ Директория Firefox найдена: $FIREFOX_DIR"
else
echo " ✗ Директория Firefox не найдена: $FIREFOX_DIR"
echo " Попробуйте запустить скрипт БЕЗ sudo: ./get_instagram_cookies.sh"
fi
exit 1 exit 1
fi fi

View file

@ -1,30 +1,18 @@
#!/bin/bash #!/bin/bash
# Скрипт для получения cookies YouTube через yt-dlp # Скрипт для получения cookies YouTube через yt-dlp из Firefox
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
COOKIES_FILE="$SCRIPT_DIR/youtube_cookies.txt" COOKIES_FILE="$SCRIPT_DIR/youtube_cookies.txt"
BROWSER="firefox"
echo "Получение cookies YouTube из браузера..." # Если запущено с sudo, используем HOME реального пользователя
echo "" if [ -n "$SUDO_USER" ]; then
echo "Выберите браузер:" REAL_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
echo "1) Chrome" export HOME="$REAL_HOME"
echo "2) Firefox" echo "⚠️ Обнаружен sudo, использую домашнюю директорию пользователя: $HOME"
echo "3) Edge" fi
echo "4) Opera"
read -p "Введите номер (1-4): " browser
case "$browser" in echo "Получение cookies YouTube из Firefox..."
1) BROWSER="chrome" ;;
2) BROWSER="firefox" ;;
3) BROWSER="edge" ;;
4) BROWSER="opera" ;;
*)
echo "Неверный выбор"
exit 1
;;
esac
echo "Получаю cookies из $BROWSER..."
echo "Файл cookies будет сохранен в: $COOKIES_FILE" echo "Файл cookies будет сохранен в: $COOKIES_FILE"
# Проверяем наличие yt-dlp # Проверяем наличие yt-dlp
@ -48,38 +36,28 @@ if ! command -v yt-dlp &> /dev/null; then
exit 1 exit 1
fi fi
echo "" echo "Получаю cookies..."
echo "ВАЖНО: Убедитесь, что вы залогинены в YouTube в выбранном браузере!"
echo "Нажмите Enter для продолжения..."
read
echo ""
echo "Получаю cookies из браузера $BROWSER..."
echo "Это должно занять несколько секунд..."
# Используем простой способ: извлекаем cookies из браузера и сохраняем в файл # Используем простой способ: извлекаем cookies из браузера и сохраняем в файл
# Используем главную страницу YouTube (самый простой запрос) # Используем конкретное короткое видео (не плейлист, не главную страницу)
# Таймаут 15 секунд - этого должно хватить для извлечения cookies # Таймаут 10 секунд
# --no-download - не скачивать видео # --no-download - не скачивать видео
# --quiet - минимум вывода # --skip-download - пропустить скачивание
timeout 15 yt-dlp \ # --flat-playlist - не извлекать информацию о видео в плейлистах
# Перенаправляем весь вывод, чтобы не видеть процесс скачивания
timeout 10 yt-dlp \
--cookies-from-browser "$BROWSER" \ --cookies-from-browser "$BROWSER" \
--cookies "$COOKIES_FILE" \ --cookies "$COOKIES_FILE" \
--no-download \ --no-download \
--skip-download \
--flat-playlist \
--quiet \ --quiet \
"https://www.youtube.com" 2>&1 | head -20 "https://www.youtube.com/watch?v=jNQXAC9IVRw" > /dev/null 2>&1 || true
EXIT_CODE=$? EXIT_CODE=$?
if [ $EXIT_CODE -eq 124 ]; then # Не важно, какой код возврата - главное проверить, создался ли файл cookies
echo "" # yt-dlp может вернуть ошибку, но cookies все равно сохранить
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 if [ -f "$COOKIES_FILE" ]; then
# Проверяем, что файл содержит данные (не только заголовки) # Проверяем, что файл содержит данные (не только заголовки)
@ -98,7 +76,6 @@ if [ -f "$COOKIES_FILE" ]; then
else else
echo "" echo ""
echo "❌ Ошибка: файл cookies создан, но не содержит данных" echo "❌ Ошибка: файл cookies создан, но не содержит данных"
echo " Убедитесь, что вы залогинены в YouTube в браузере $BROWSER"
rm -f "$COOKIES_FILE" rm -f "$COOKIES_FILE"
exit 1 exit 1
fi fi
@ -107,9 +84,23 @@ else
echo "❌ Ошибка: файл cookies не был создан" echo "❌ Ошибка: файл cookies не был создан"
echo "" echo ""
echo "Возможные причины:" echo "Возможные причины:"
echo "1. Вы не залогинены в YouTube в браузере $BROWSER" echo "1. Firefox не найден или недоступен"
echo "2. Браузер $BROWSER не найден или недоступен" echo "2. Проблемы с правами доступа к файлу cookies браузера"
echo "3. Проблемы с правами доступа к файлу cookies браузера" echo "3. Cookies не найдены в браузере"
echo ""
echo "Проверка:"
if [ -n "$SUDO_USER" ]; then
REAL_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
FIREFOX_DIR="$REAL_HOME/.mozilla/firefox"
else
FIREFOX_DIR="$HOME/.mozilla/firefox"
fi
if [ -d "$FIREFOX_DIR" ]; then
echo " ✓ Директория Firefox найдена: $FIREFOX_DIR"
else
echo " ✗ Директория Firefox не найдена: $FIREFOX_DIR"
echo " Попробуйте запустить скрипт БЕЗ sudo: ./get_youtube_cookies.sh"
fi
exit 1 exit 1
fi fi