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