From 1560ecadd67736b74ba0b6c4572a607ea2ef85c5 Mon Sep 17 00:00:00 2001 From: NANDI Date: Thu, 5 Mar 2026 10:37:56 +0100 Subject: [PATCH] Add README with setup and usage instructions Co-Authored-By: Claude Opus 4.6 --- README.md | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..42bddfe --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# Twitch Stream Vision Analyzer + +Программа в реальном времени анализирует Twitch-стрим: периодически захватывает кадры и отправляет их в Gemini Vision API, получая текстовое описание происходящего. + +``` +Twitch HLS → streamlink → ffmpeg (кадр каждые N сек) → Gemini Vision API → консоль + лог +``` + +## Требования + +- Python 3.10+ +- ffmpeg (установлен в системе) +- API ключ [Google AI Studio](https://aistudio.google.com/apikey) + +## Установка + +```bash +git clone https://git.animeenigma.ru/NANDI/twitchStreamVision.git +cd twitchStreamVision +pip install -r requirements.txt +``` + +## Настройка + +Скопируй `.env.example` в `.env` и укажи API ключ: + +```bash +cp .env.example .env +``` + +```env +GEMINI_API_KEY=your-api-key-here +# Опционально: Cloudflare AI Gateway +# GEMINI_BASE_URL=https://gateway.ai.cloudflare.com/v1/account/gateway/google-ai-studio +``` + +## Запуск + +```bash +python3 main.py --channel xqc --interval 15 --quality 480p +``` + +### Аргументы + +| Аргумент | По умолчанию | Описание | +|---|---|---| +| `--channel` | (обязательный) | Имя Twitch-канала | +| `--interval` | `15` | Интервал захвата кадров (секунды) | +| `--quality` | `480p` | Качество стрима (`480p`, `720p`, `1080p`, `best`) | +| `--lang` | `ru` | Язык описаний (`ru` / `en`) | +| `--log-file` | `stream_log.txt` | Путь к лог-файлу | + +## Как это работает + +1. **streamlink** подключается к Twitch-каналу и получает HLS-поток +2. **ffmpeg** извлекает JPEG-кадры с заданным интервалом (без записи на диск) +3. **Gemini Vision API** анализирует каждый кадр и возвращает краткое описание +4. Результат выводится в консоль (через rich) и записывается в лог-файл + +Для связности описаний контекст предыдущего ответа передаётся в следующий запрос. + +Остановка — `Ctrl+C`.