StreamTail — современный, асинхронный и высокопроизводительный менеджер трансляций для стримеров. Управляйте статусом, названием и категорией трансляции одновременно на всех популярных платформах в один клик.
- Мультиплатформенность: Полноценная интеграция с Twitch, YouTube, VK Видео Live, Kick, GoodGame и RUTUBE.
- Глубокая асинхронность: Параллельный опрос статуса всех платформ через
asyncio.gather— никаких зависаний интерфейса и очередей выполнения. - Умный парсинг кук (Smart Cookie Parser): Принимает куки в любом удобном формате (JSON-массив, Netscape/текстовый файл, HTTP Raw) и автоматически преобразует их в чистые HTTP-заголовки.
- Аппаратная безопасность (Encrypt-then-MAC): Локальная база данных
streamtail.dbшифрует ваши токены и API-ключи по уникальному аппаратному хэшу материнской платы (Hardware ID). Использование схемы Encrypt-then-MAC на базе SHA-256 и HMAC-SHA256 гарантирует криптографическую стойкость и контроль целостности данных. - Защита авторизации (OAuth CSRF State): Строгая генерация и верификация параметра
stateчерезsecrets.token_urlsafe(16)на всех поддерживаемых платформах предотвращает атаки фиксации сессии при авторизации в браузере. - Безопасный мультичат (SSL IRC & Proxying): Встроенный чат-клиент Twitch переведен на защищенный порт
6697(TLS/SSL). Реализовано сквозное проксирование низкоуровневых сокетов чата (SOCKS5/HTTP CONNECT) через глобальные настройки прокси. - Умный планировщик (Exponential Backoff): Интеллектуальный обход блокировок и защита от банов по IP. При возникновении сетевых ошибок или превышении лимитов запросов (API 429/503) планировщик временно приостанавливает опрос проблемной платформы, экспоненциально увеличивая задержку.
- Модульный веб-оверлей чата: Локальный веб-сервер FastAPI полностью разделен на независимые маршрутизаторы со статическим фронтендом (HTML, CSS, JS), изолированным внутри каталога веб-модуля.
- Дизайн и UX: Современная темная тема (sv-ttk), плавное сворачивание в системный трей, всплывающие уведомления (Plyer) и адаптивная сетка дашборда.
Для облегчения поддержки и тестирования кодовая база проекта разделена на специализированные модули:
streamtail/
├── app/
│ ├── auth/ # Авторизация платформ (Twitch, YouTube, VK Live, GoodGame, Kick)
│ ├── core/ # Ядро системы (Шина событий, планировщик задач, схемы данных)
│ ├── platforms/ # Пакеты интеграций с API платформ и чат-клиенты
│ ├── services/ # Бизнес-логика (Сервис мультичата, игр, уведомлений)
│ ├── ui/
│ │ ├── cli/ # Интерфейс командной строки (CLI)
│ │ └── desktop/ # Графический интерфейс Tkinter (разбит на компоненты и вкладки)
│ │ └── main_window/ # Инкапсулированный пакет Дашборда, Мультичата и Монитора
│ │ └── web/ # Локальный FastAPI сервер
│ │ └── static/ # Изолированный фронтенд веб-оверлея (HTML, CSS, JS)
│ └── utils/ # Потокобезопасная СУБД SQLite, криптография, утилиты логирования и прокси
├── assets/ # Брендированные иконки, общие статические ресурсы и инструкции
├── docs/
│ └── api/ # Техническая документация API платформ (Twitch, YouTube, RUTUBE и др.)
└── main.py # Главная точка входа в приложение
Для прохождения авторизации и управления трансляциями через официальные протоколы необходимо зарегистрировать приложение на порталах разработчиков соответствующих платформ:
- Перейдите на Twitch Developer Console и зарегистрируйте новое приложение.
- В поле OAuth Redirect URLs добавьте строго:
http://localhost:19234/callback. - Сохраните проект, скопируйте Client ID и сгенерируйте Client Secret.
- Перейдите на Google Cloud Console и создайте новый проект.
- Включите YouTube Data API v3 через Библиотеку API.
- Настройте OAuth consent screen (Экран согласия), выбрав тип External, и обязательно добавьте свой стримерский Google-аккаунт в список Test users.
- В разделе Credentials создайте идентификатор клиента OAuth client ID для Web application.
- В поле Authorized redirect URIs вставьте:
http://localhost:19234/callback. - Скопируйте полученные Client ID и Client Secret.
- Откройте настройки профиля на GoodGame.ru и перейдите во вкладку OAuth / Разработчикам.
- Создайте новое приложение, указав в поле Redirect URI:
http://localhost:19234/callback. - Заберите выданные Client ID и Client Secret.
Вы можете либо получить токен напрямую из сессии браузера (вкладка Application -> Local Storage на сайте live.vkvideo.ru), либо зарегистрировать классическое приложение типа Сайт на портале VK Developers с перенаправлением на http://localhost:19234/callback для получения собственных Client ID и Client Secret.
-
Склонируйте репозиторий:
git clone <repository_url> cd streamtail
-
Установите зависимости:
pip install -r requirements.txt
-
Запустите приложение:
python main.py
- Запустите программу. Перейдите во вкладку Настройки.
- В самом верху нажмите Показать инструкцию по авторизации для получения детальных справок.
- Настройте платформы:
- Kick: Введите имя канала и скопируйте куки из браузера (или официальный Bearer-токен).
- RUTUBE: Введите ID канала и скопируйте куки Студии вещания.
- VK Live: Скопируйте JSON-строку
authиз LocalStorage сайта. - Twitch / YouTube / GoodGame: Введите Client ID / Secret ваших созданных приложений во вкладке Настройки, после чего пройдите авторизацию в 1 клик во вкладке Авторизация.
- Нажмите Сохранить настройки и наслаждайтесь удобным мультивещанием!


