Skip to content

Скрипт для парсинга видео с Ютуба

Notifications You must be signed in to change notification settings

kentavr009/Youtube-Parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Youtube-Parser

Отказоустойчивый парсер YouTube

Python

Профессиональный скрипт на Python для массового сбора данных с YouTube через официальный API v3. Читает ключевые слова из Google Sheets, собирает информацию о видео и сохраняет результаты обратно в Google Sheets и локальный CSV-файл.

Спроектирован для длительной работы и устойчивости к ошибкам. Описание как парсер для ютуба рождался можно почитать в моей статье на моем блоге - Парсинг Youtube. Личная рекомендация для генерации АПИ ключей используйте браузер Gologin (дают бесплатно до 2гб прокси трафика), если трафик прокси кончился, можно докупить на этом сервисе, свежий игрок, так что не ломят цены - Floppydata.com

Ключевые особенности

  • Ротация API-ключей: Автоматически переключается между несколькими API-ключами при исчерпании квоты одного из них.
  • Сохранение состояния: Скрипт запоминает, на каком ключевом слове остановился, и при перезапуске продолжает с того же места.
  • Кэширование запросов: Повторные запросы с одинаковыми параметрами берутся из локального кэша, экономя драгоценные единицы квоты API.
  • Отказоустойчивость: Встроены механизмы повторных попыток (retry) при сетевых сбоях и ошибках API.
  • Пакетная запись: Результаты сохраняются порциями (батчами), чтобы не потерять данные при внезапном сбое.
  • Интеграция с Google Sheets: Удобное управление входными данными и просмотр результатов прямо в таблице.
  • Гибкая конфигурация: Все параметры (ключи, ID таблиц, настройки поиска) вынесены в .env файл.

Подготовка и Установка

Шаг 1: Клонирование репозитория

git clone https://github.com/ВАШ_НИК/youtube-parser.git
cd youtube-parser

Шаг 2: Создание виртуального окружения и установка зависимостей

Рекомендуется использовать виртуальное окружение, чтобы не засорять системные библиотеки.

# Создание окружения
python -m venv venv

# Активация (Windows)
venv\Scripts\activate

# Активация (macOS/Linux)
source venv/bin/activate

# Установка зависимостей
pip install -r requirements.txt

Шаг 3: Настройка Google Cloud & API

  1. YouTube Data API v3:

    • Перейдите в Google Cloud Console.
    • Создайте новый проект.
    • В разделе "APIs & Services" -> "Library" найдите и включите "YouTube Data API v3".
    • Перейдите в "Credentials" и создайте несколько API Keys. Скопируйте их.
  2. Google Sheets API:

    • В том же проекте в "Library" найдите и включите "Google Sheets API".
    • Перейдите в "Credentials" -> "Create credentials" -> "Service Account".
    • Дайте ему имя, пропустите шаги с ролями.
    • На последнем шаге найдите созданный аккаунт, перейдите в него, во вкладку "Keys" -> "Add Key" -> "Create new key". Выберите JSON и скачайте файл.
    • Переименуйте скачанный файл в credentials.json и положите его в корень проекта.
    • Скопируйте email сервисного аккаунта (выглядит как ...gserviceaccount.com).
    • Откройте вашу Google Таблицу и предоставьте этому email'у права на редактирование (кнопка "Share").

Шаг 4: Конфигурация

  1. Скопируйте файл .env.example и переименуйте его в .env.
    # (в Windows используйте copy)
    copy .env.example .env
    # (в macOS/Linux)
    cp .env.example .env
  2. Откройте .env и заполните все поля вашими данными:
    • SHEET_ID: ID вашей Google Таблицы.
    • SERVICE_ACCOUNT_JSON: Убедитесь, что имя файла совпадает с вашим JSON-ключом (credentials.json).
    • YT_API_KEYS: Вставьте ваши YouTube API ключи через запятую, без пробелов и кавычек.
    • Остальные параметры настройте по желанию.

Шаг 5: Подготовка Google Таблицы

  • Убедитесь, что у вас есть два листа с именами, указанными в .env (по умолчанию Keywords и Results).
  • В листе Keywords столбец A (начиная с A2) должен содержать ключевые слова для поиска.
  • Столбец J (начиная с J2) может содержать исходные URL (если они есть), которые будут просто перенесены в таблицу результатов для удобства.

Запуск скрипта

После завершения всех настроек просто запустите скрипт из корневой папки проекта:

python yt_parser.py

Вы увидите логи процесса в консоли. Результаты будут дописываться в лист Results в вашей Google Таблице и в файл yt_results.csv.

Как это работает "под капотом"

  • KeyManager: Центральный класс для управления API-ключами. Он выдает рабочий ключ, а в случае ошибки quotaExceeded деактивирует его и прозрачно переключается на следующий.
  • shelve: Встроенная библиотека Python, которая используется для создания персистентных хранилищ:
    • progress.db: Хранит индекс последнего успешно обработанного ключевого слова.
    • yt_cache.db: Хранит ответы от YouTube API. Ключом является уникальная строка запроса, а значением — ответ сервера. Это радикально экономит квоту при повторных запусках.
  • Обработка ошибок: Скрипт использует try...except блоки не только для квот, но и для сетевых проблем (ConnectionResetError, socket.error), применяя стратегию экспоненциальной задержки (Exponential Backoff) для повторных попыток.

About

Скрипт для парсинга видео с Ютуба

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages