Skip to content

About

🎮 Système d'overlay Twitch moderne avec EventSub, animations temps réel et WebSocket. Interface élégante avec alertes (follows, subs, raids, bits), Intégration Trucky, statistiques live, pages démarrage/pause/fin animées. Configuration facile, responsive design, intégration complète API Twitch.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

83 Commits

Folders and files

Repository files navigation

🎮 Electrum Overlay — application desktop pour overlay Twitch

Application Windows (Electron) qui gère vos overlays de stream Twitch : alertes en temps réel (follow, sub, raid, bits...), statistiques live, chat, et intégration EventSub — le tout piloté depuis une interface graphique, sans toucher à un seul fichier de config à la main.

This readme is also available in English.

📋 Table des matières

🚀 Fonctionnalités

✨ Alertes en temps réel

  • Nouveaux followers, abonnĂ©s et renouvellements, sub gifts, raids, bits — avec confettis
  • File d'attente pour Ă©viter les chevauchements
  • Design, durĂ©e, couleurs et intensitĂ© des confettis rĂ©glables depuis l'app

🎭 Overlays animés

  • DĂ©marrage : compte Ă  rebours avant stream
  • Overlay principal : statistiques en temps rĂ©el + alertes + chat
  • Pause et Fin de stream : Ă©crans dĂ©diĂ©s
  • Thèmes de couleur, panneaux d'info et bandeau dĂ©filant configurables

📊 Statistiques en temps réel

Followers, abonnés, spectateurs actuels — mis à jour automatiquement via WebSocket.

🖥️ Une vraie application desktop

  • FenĂŞtre native avec barre de titre personnalisĂ©e, icĂ´ne dans la zone de notification
  • Le serveur continue de tourner (pour OBS) mĂŞme fenĂŞtre fermĂ©e — seul "Quitter" depuis le tray l'arrĂŞte vraiment
  • Bouton dĂ©marrer/arrĂŞter le serveur directement dans l'app
  • Assistant de configuration graphique, aucun fichier JSON Ă  Ă©diter Ă  la main
  • Visionneuse de logs et outils de simulation d'Ă©vĂ©nements intĂ©grĂ©s
  • Mises Ă  jour automatiques

📥 Installation

  1. Téléchargez le dernier installeur (ElectrumOverlay Setup x.x.x.exe) depuis la page Releases du projet.
  2. Lancez l'installeur et suivez les étapes (vous pouvez choisir le dossier d'installation).
  3. Au premier lancement, l'application vous guide dans l'assistant de configuration — voir section suivante.

🎛️ Vous avez un Stream Deck ? Le fichier com.electrumvtc.overlay.streamdeck.streamDeckPlugin est disponible sur la même page de Releases — voir la section Plugin Stream Deck.

Prérequis :

  • Windows 10/11
  • Un compte Twitch (celui qui streame)
  • Pour les stats ETS2/ATS (optionnel) : Google Chrome ou Microsoft Edge installĂ©s

đź§™ Premier lancement (assistant de configuration)

L'assistant (/setup dans l'app) comporte trois sections indépendantes — vous pouvez en modifier une seule sans redonner les autres.

1. Application Twitch

  1. Créez une application sur dev.twitch.tv/console/apps
  2. Renseignez :
    • URL de redirection OAuth : http://localhost:8080/auth-callback
    • CatĂ©gorie : Application Integration
    • Type de client : Confidential
  3. Copiez le Client ID et le Client Secret générés dans l'assistant.

2. Autorisation Twitch

Cliquez sur "Autoriser" — ça ouvre votre navigateur habituel (jamais une fenêtre de l'app) pour l'autorisation OAuth. Revenez ensuite dans l'app : la chaîne autorisée (pseudo + ID) s'affiche automatiquement, en lecture seule.

3. Branding et intégrations

  • Couleur principale de l'overlay
  • Lignes d'info et texte dĂ©filant du bandeau du bas
  • ngrok (tunnel HTTPS nĂ©cessaire aux webhooks EventSub) : cochez pour l'activer et collez votre authtoken gratuit depuis dashboard.ngrok.com/get-started/your-authtoken
  • TruckyApp (optionnel, pour les streameurs ETS2/ATS) : voir plus bas

Une fois validé, l'application redémarre automatiquement avec la nouvelle configuration.

ℹ️ En version gratuite, l'URL ngrok change à chaque redémarrage — l'app le gère toute seule (elle rafraîchit automatiquement les abonnements webhook au démarrage), vous n'avez rien à faire.

🖥️ Utilisation au quotidien

  • L'app se lance dans la zone de notification (tray) et garde le serveur actif mĂŞme fenĂŞtre fermĂ©e.
  • Depuis la page d'accueil de l'app (/app) : statut du serveur, bouton dĂ©marrer/arrĂŞter, accès rapide aux Paramètres, Logs, Tests, Statistiques, et aux pages Twitch.
  • Depuis le menu du tray : Ouvrir, Paramètres, Logs, Tests, DĂ©marrer/ArrĂŞter le serveur, VĂ©rifier les mises Ă  jour, Quitter.
  • Paramètres (/settings) : thèmes, alertes, panneaux, animations, chat, statistiques — tout s'applique en direct sur les overlays dĂ©jĂ  ouverts dans OBS, sans redĂ©marrage.
  • Logs (/logs) : suivi en direct des logs serveur, utile pour diagnostiquer un souci Twitch/ngrok.

📹 Overlays OBS

Ajoutez ces pages comme sources navigateur dans OBS (le serveur doit être démarré) :

Page URL
Démarrage http://localhost:8080/starting.html
Overlay principal http://localhost:8080/
Pause http://localhost:8080/pause.html
Fin de stream http://localhost:8080/ending.html

Le fichier ConfigOBS.json à la racine contient des scènes OBS préconfigurées (Starting, Game, Pause, Fin) avec leurs sources, prêtes à importer.

🧪 Simuler des événements

La page Tests (/tests) permet de déclencher une alerte (follow, sub, sub gift, raid, bits), un message de chat, ou un événement stream online/offline sans attendre un vrai événement Twitch — pratique pour régler le rendu des overlays avant d'être en live.

Pour tester avec de vrais événements Twitch simulés côté plateforme, la Twitch CLI reste utilisable :

twitch event trigger channel.follow --to-user-id=VOTRE_ID --from-user-id=123456

🔄 Mises à jour automatiques

L'application vérifie les nouvelles versions au démarrage puis toutes les 4h. Quand une mise à jour est disponible, elle se télécharge automatiquement en arrière-plan et une bannière apparaît sur la page d'accueil (ainsi qu'une entrée dans le menu du tray) pour l'installer en un clic.

📷 Aperçu

Écran de démarrage

Starting

Écran de pause

Pause

Écran de fin

Ending

🎨 Personnalisation

Tout se règle depuis la page Paramètres (/settings) de l'app : couleurs des thèmes par page, contenu et style des alertes, animations (particules, étoiles, météores, logo DVD), panneaux d'info, apparence du chat, statistiques. Les changements s'appliquent immédiatement aux overlays déjà ouverts dans OBS.

Pour aller plus loin (mise en page, animations CSS personnalisées), les fichiers sources restent modifiables :

  • public/css/overlay-common.css — styles partagĂ©s par tous les overlays
  • public/css/*.css — styles spĂ©cifiques Ă  chaque page
  • public/js/overlay-common.js — logique commune (alertes, chat, thèmes)

🚛 Intégration TruckyApp

Pour les streameurs ETS2/ATS : activez l'intégration depuis l'assistant de configuration ou les Paramètres, en renseignant votre ID utilisateur TruckyApp (visible dans l'URL de votre profil sur truckyapp.com : truckyapp.com/user/VOTRE_ID). L'app récupère alors automatiquement votre dernier trajet et vos statistiques de compagnie. Nécessite Google Chrome ou Microsoft Edge installés sur la machine.

🎛️ Plugin Stream Deck

Un plugin Stream Deck dédié (« ElectrumOverlay Deck ») permet de piloter l'app directement depuis vos touches :

  • Alerte de test — dĂ©clenche un follow/sub/raid/bits... de test, comme la page /tests
  • Activer un profil — bascule sur un profil, avec une icĂ´ne qui reflète en direct s'il est dĂ©jĂ  actif
  • Afficher un panneau — affiche le panneau gauche ou le bandeau bas immĂ©diatement (mĂŞme dĂ©sactivĂ© dans les rĂ©glages)
  • Statistiques en direct — affiche viewers, follows, abonnĂ©s ou messages de chat sur une touche, mis Ă  jour automatiquement

Installation

  1. Téléchargez com.electrumvtc.overlay.streamdeck.streamDeckPlugin depuis la page Releases (même page que l'installeur de l'app).
  2. Double-cliquez dessus : l'app Stream Deck l'installe automatiquement.
  3. Glissez les actions « ElectrumOverlay Deck » sur vos touches. Le serveur ElectrumOverlay doit être démarré pour qu'elles fonctionnent (il tourne par défaut sur localhost:8080, réglable par touche si besoin).

Pour développer ou modifier le plugin, voir streamdeck-plugin/README.md.

🛠️ Développement (depuis les sources)

Structure du projet

Ma version/
├── electron/               # Process principal Electron (fenêtre, tray, IPC, auto-updater)
│   ├── main.js
│   └── preload.js
├── src/
│   ├── config/
│   │   ├── defaults.json   # Config par défaut
│   │   └── store.js        # Singleton de config (lecture/écriture live)
│   ├── routes/              # Routes Express (API + pages admin)
│   │   ├── api.js
│   │   ├── setup.js
│   │   ├── settings.js
│   │   ├── logs.js
│   │   └── testtools.js
│   └── services/
│       ├── EventSubManager.js
│       ├── TwitchAuth.js
│       ├── WebhookHandler.js
│       ├── NgrokManager.js
│       ├── StreamStatsManager.js
│       ├── TruckyApi.js
│       └── LogBuffer.js
├── public/                  # Overlays + pages admin (HTML/CSS/JS statiques)
├── streamdeck-plugin/       # Plugin Stream Deck (sous-projet séparé, voir son propre README)
├── server.js                 # Classe TwitchOverlayServer (start/stop, routes, WebSocket)
├── ConfigOBS.json
└── package.json

Lancer en mode développement

git clone https://github.com/Arkyan/ElectrumOverlay.git
cd "Ma version"
npm install
npm run electron     # app Electron complète
# ou
npm start             # serveur seul (sans fenĂŞtre Electron), pour tester overlays/API
npm run dev           # serveur seul avec rechargement automatique (nodemon)

En développement, la configuration est stockée dans config/overlay-config.json à la racine du projet (ignoré par git). Une fois installée, l'app la stocke dans %APPDATA%\ElectrumOverlay\config\.

Construire l'installeur

npm run package:win        # build local, dist/ElectrumOverlay Setup x.x.x.exe
npm run package:streamdeck # build local du plugin, dist/com.electrumvtc.overlay.streamdeck.streamDeckPlugin
npm run publish:win        # build + publication de l'app ET du plugin Stream Deck sur GitHub Releases
                            # (nécessite GH_TOKEN pour electron-builder, et le CLI "gh" authentifié pour l'upload du plugin)

Autres commandes

npm run clean     # supprime tous les abonnements EventSub actifs

❗ Dépannage

Le port 8080 est déjà utilisé

Une autre instance de l'app tourne probablement déjà (regardez la zone de notification). Fermez-la avant d'en relancer une.

Les webhooks/alertes ne fonctionnent pas

  1. Vérifiez sur la page d'accueil de l'app que le bandeau "ngrok non connecté" n'est pas affiché.
  2. Vérifiez dans Logs (/logs) l'absence d'erreur au démarrage.
  3. Si vous utilisez votre propre authtoken ngrok, vérifiez qu'il est bien renseigné dans l'assistant (pas la valeur d'exemple $YOUR_AUTHTOKEN).

"Token expired" / 401 Unauthorized

Retournez dans l'assistant de configuration (/setup) et cliquez sur "Autoriser à nouveau" pour régénérer l'autorisation.

Repartir de zéro sur les abonnements EventSub

npm run clean

ou, app lancée, ouvrez http://localhost:8080/clear-subscriptions dans votre navigateur.


đź“„ Licence

MIT License — voir le fichier LICENSE.

🤝 Contribution

Les contributions sont les bienvenues ! Voir CONTRIBUTING.md pour le détail. En résumé : forkez, créez une branche, commitez, ouvrez une Pull Request.


🎮 Bon streaming ! 🚀

About

🎮 Système d'overlay Twitch moderne avec EventSub, animations temps réel et WebSocket. Interface élégante avec alertes (follows, subs, raids, bits), Intégration Trucky, statistiques live, pages démarrage/pause/fin animées. Configuration facile, responsive design, intégration complète API Twitch.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages