twitchBot-intelligent
Bot Twitch qui enregistre l’audio d’un stream, le transcrit en texte, analyse le contenu avec une couche de type « chat IA » (ex. tgpt), et peut répondre dans le chat. Le dépôt inclut une interface web pour piloter les flux et les composants (enregistrement, sous-titres, génération, envoi de messages).
Fonctionnalités principales
- Enregistrement audio du stream (via intégration avec twitch-recordAudio).
- Transcription / alignement temporel (workflow prévu avec WhisperX).
- Génération de réponses et stockage des générations (fichiers JSON sous
storage/). - Lecture et envoi sur le chat Twitch (OAuth, utilisateurs dans
config/user.json). - Interaction chat (mentions) : si un viewer mentionne un des comptes enregistrés (ex:
@exoticnaturees), le bot peut répondre automatiquement via réponses préenregistrées et règles conditionnelles (page “Interaction chat”). - Interface web (Flask + Socket.IO) : gestion des flux, toggles IA / contrôle Twitch, sous-titres automatiques, etc.
L’architecture détaillée des routes et composants est décrite dans README_ARCHITECTURE.md. L’interface utilisateur côté navigateur est décrite dans README_WEB_INTERFACE.md.
Structure du dépôt
| Élément | Rôle |
|---|---|
start_web_interface.py |
Point d’entrée recommandé : vérifie dépendances, config, lance le serveur. |
web_interface.py |
Application Flask : routes HTTP, Socket.IO, boucles auto (sous-titres / messages). |
twitch_bot/ |
Logique métier isolée : controller.py (orchestration des flux et bots), chat_state.py (drapeau d’envoi des messages). |
fonction/ |
Classes principales du bot (first_class.py, second_fonction.py). |
config/ |
config.json (paramètres généraux), user.json (comptes / tokens Twitch). |
storage/ |
Données JSON (sous-titres, générations IA, etc.). |
static/, templates/ |
Frontend de l’interface web. |
main_auto_loop.py |
Mode terminal : boucle clavier pour enregistrement / IA sans passer par le web. |
debug/ |
Scripts et essais de debug (hors chemin nominal). |
Prérequis
- Python 3.10+ (le projet a été utilisé avec 3.10 ; adaptez le venv si vous changez de version).
- Comptes / tokens Twitch configurés pour le chat et l’API selon votre usage.
- Pour la transcription GPU : CUDA / cuDNN si vous utilisez Whisper côté machine (ex. Arch :
sudo pacman -S cuda cudnn— ajustez selon votre distribution).
Installation
git clone https://github.com/Foufure13/twitchBot-intelligent.git
cd twitchBot-intelligent
python3 -m venv env
source env/bin/activate # Windows: env\Scripts\activate
pip install -r requirements.txt
Dépôts externes (selon votre pipeline)
- Audio : twitch-recordAudio — enregistrement du flux.
- Transcription : WhisperX — installation suivant la doc du projet (
python setup.py installou équivalent). - « Chat » texte en CLI : tgpt — binaire ou méthode d’appel attendue par votre configuration.
Fichiers de configuration
Avant de lancer l’interface, créez ou complétez au minimum :
config/config.json— paramètres du bot (chemins, prompts, etc.).config/user.json— utilisateurs Twitch pour l’envoi des messages.
Le script start_web_interface.py vérifie la présence de ces fichiers et crée les dossiers storage/, record/, in_record/ si besoin.
Lancement
source env/bin/activate
python start_web_interface.py
L’interface écoute par défaut sur http://0.0.0.0:5000 (voir start_web_interface.py).
Interaction chat (mentions @)
Principe
- Si un message de chat contient une mention d’un compte enregistré (défini dans
config/user.json), par exemple@exoticnaturees, alors le module “Interaction chat” peut répondre automatiquement en notifiant l’auteur:- par défaut:
@<auteur> salut - ou via une règle conditionnelle (ex: si
cammenbertdit “etoile etoile”, répondre@cammenbert filante)
- par défaut:
Configuration
- La configuration se fait dans l’interface web, onglet Interaction chat.
- Les données sont stockées sous
storage/:storage/interaction_chat_config.jsonstorage/interaction_chat_log.json
Mode TGPT
- Le mode TGPT est disponible: il envoie le message du viewer à
tgptavec un préprompt (global ou par règle), puis renvoie la réponse.
Mode terminal sans interface web :
python main_auto_loop.py -twitchname NOM_DU_CANAL
(Consulter les options -threads, -recordtime dans le script.)
Dépannage
Réparer un environnement pip cassé
deactivate
rm -rf env
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
Whisper / erreurs fréquentes
- Discussion utile : openai/whisper#1027.
- Sur Arch, si besoin :
sudo pacman -S python-openai-whisper.
Références communautaires (bots / chat Twitch)
Pour le comportement des toggles chat / sous-titres et correctifs récents, voir aussi les fichiers notes du dépôt (CHAT_TOGGLE_README.md, TOGGLE_IMPROVEMENTS.md, etc.) si présents.