Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StreamTail

Version Python License

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                # Главная точка входа в приложение

🛠️ Настройка Developer-приложений (OAuth 2.0)

Для прохождения авторизации и управления трансляциями через официальные протоколы необходимо зарегистрировать приложение на порталах разработчиков соответствующих платформ:

🎮 Twitch

  1. Перейдите на Twitch Developer Console и зарегистрируйте новое приложение.
  2. В поле OAuth Redirect URLs добавьте строго: http://localhost:19234/callback.
  3. Сохраните проект, скопируйте Client ID и сгенерируйте Client Secret.

🎥 YouTube (Google Cloud)

  1. Перейдите на Google Cloud Console и создайте новый проект.
  2. Включите YouTube Data API v3 через Библиотеку API.
  3. Настройте OAuth consent screen (Экран согласия), выбрав тип External, и обязательно добавьте свой стримерский Google-аккаунт в список Test users.
  4. В разделе Credentials создайте идентификатор клиента OAuth client ID для Web application.
  5. В поле Authorized redirect URIs вставьте: http://localhost:19234/callback.
  6. Скопируйте полученные Client ID и Client Secret.

🏆 GoodGame

  1. Откройте настройки профиля на GoodGame.ru и перейдите во вкладку OAuth / Разработчикам.
  2. Создайте новое приложение, указав в поле Redirect URI: http://localhost:19234/callback.
  3. Заберите выданные Client ID и Client Secret.

🌐 VK Видео Live

Вы можете либо получить токен напрямую из сессии браузера (вкладка Application -> Local Storage на сайте live.vkvideo.ru), либо зарегистрировать классическое приложение типа Сайт на портале VK Developers с перенаправлением на http://localhost:19234/callback для получения собственных Client ID и Client Secret.


📦 Установка

  1. Склонируйте репозиторий:

    git clone <repository_url>
    cd streamtail
  2. Установите зависимости:

    pip install -r requirements.txt
  3. Запустите приложение:

    python main.py

⚙️ Быстрый старт

  1. Запустите программу. Перейдите во вкладку Настройки.
  2. В самом верху нажмите Показать инструкцию по авторизации для получения детальных справок.
  3. Настройте платформы:
    • Kick: Введите имя канала и скопируйте куки из браузера (или официальный Bearer-токен).
    • RUTUBE: Введите ID канала и скопируйте куки Студии вещания.
    • VK Live: Скопируйте JSON-строку auth из LocalStorage сайта.
    • Twitch / YouTube / GoodGame: Введите Client ID / Secret ваших созданных приложений во вкладке Настройки, после чего пройдите авторизацию в 1 клик во вкладке Авторизация.
  4. Нажмите Сохранить настройки и наслаждайтесь удобным мультивещанием!

About

functionaly manager for streamers ! fur

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages