
Contexte
Streamant régulièrement sur Twitch et passioné de Pokémon et de chasse aux Shinys, je me suis mis à partager mes chasses en direct.
Durant ces chasses, le nombre de rencontres est affiché aux spectateurs. Cette information est stockée dans un fichier texte qui est ensuite affiché sur le stream.
Intialement, ce fichier texte était systématiquement modifié à la main… Énorme perte de temps donc !
Animer un tchat, réaliser la chasse, faire face aux aléas du stream, penser à incrémenter le compteur… tant de choses à penser et à faire que cela en devient difficile et les streams ne sont plus aussi agréables qu’ils devraient l’être.
Ce qui m’a amené à vouloir épurer la liste de choses à gérer du compteur.
Ainsi, j’ai donc réfléchis à une solution de compteur permettant de soulager au maximum la situation initiale
Compteur semi-automatique
J’avais déjà connaissance de solutions permettant via des macros (ou raccourcis claviers) d’incrémenter directement un fichier texte.
De rapides recherches en ligne amènent à des résultats très satisfaisants
Ces solutions fonctionnent globalement sur le principe suivant:
- Installation du logiciel/script
- Liason de la solution à un fichier texte
- Définition des raccourcis
- Utilisation de la solution
- Quand on le souhaite faire +/- sur le compteur avec les raccourcis claviers
- Affichage sur le stream mis à jour automatiquement à la modification du fichier par le logiciel de streaming
Cela permet déjà d’économiser les actions manuelles de modification puis d’enregistrement de fichier. Un simple raccourci clavier permet d’incrémenter le compteur de la valeur souhaitée. Cependant, des erreurs telles qu’un oubli peuvent subvenir et cette solution n’est donc pas optimale.
Je ne détaillerais pas d’avantage cette solution car beaucoup d’articles/vidéo/tutoriels le font déjà très bien. Elle ne correspond pas suffisament à mon besoin.
Avantages | Inconvénients |
---|---|
Soulage lègèrement | Erreur possible: oubli d’action manuelle |
Automatise une partie du processus | Demande toujours une action manuelle systématiquement |
Si en stream: aide du tchat en cas d’oubli | Impossible de se faire aider si usage hors stream |
Plusieurs compteurs à la fois possible (pour la plupart des logiciels/scripts) | Installation de logiciel obligatoire (Python, logiciel executable..) |
Compteur via Streamlabs Desktop Chatbot
Une solution serait de s’appuyer sur les modérateurs présents lors des streams.
Le Desktop Chatbot de StreamLabs permet via des commandes dans le tchat de directement agir sur un fichier texte. Le streameur peut toutefois incrémenter le compteur avec des raccourcis clavier églament.
L’installation de StreamLabs Chatbot est laborieuse car requiert la connexion aux différents services avec les tokens de sécurité: Twitch, Streamlabs (optionnel) et prend donc du temps. Il semblerait églament qu’il faille appuyer sur le bouton connexion pour le bot utilisé et la chaine sur laquelle parler à chaque lancement du logiciel. Une installation côté serveur semble plus judicieuse.
Je ne sais pas si le fichier est sauvegardé en ligne. Il serait bon de savoir si le compteur est dans le cloud, permettant ainsi de changer de poste / les réinstaller sans se soucier de sauvegarder la configuration et la valeur du compteur.
Le bot est très complet et permet pas mal de choses que je ne détaillerais pas ici, voyez par vous même:

Ne vous étonnez pas de voir des « Deaths » à plusieurs reprises. Les éditeurs ont du le prévoir pour une utilisation « compteurs de morts ».
La configuration du compteur est très simple:

Catégorie Counter:
- Command: préfixe de la commande à utiliser dans le tchat
- Message Template: Résultat de la commande pour afficher le compteur (ici !death)
# correspond à la valeur.
Je recommande de le laisser seul, nous verrons pourquoi par la suite - Start Amount: Valeur par laquelle le compteur démarre (reste d’une session à l’autre)
N’oublions pas de dès à présent appuyer sur Start pour lancer le compteur. Les changements effecutés après seront bien pris en compte.

Paramètrage des raccourcis claviers:
- Settings (roue crantée)
- Hotkeys
- Counter
- Cliquer sur le champ en en dessous de Increase/Decrease
Increase = Incrémenter
Decrease = Décrémenter - Appuyer sur la touche/l’ensemble de touche à associer

Paramètrage des messages dans le tchat:
- Settings (roue crantée)
- Localization
- Death Counter
- Modifier comme souhaité les champs.
$value lie la valeur du fichier (équivalent à # précédement)
Donc si le fichier contient « Compteur: X », tout le texte sera affiché.
Mais en cas de !compteur seul, sans texte dans le compteur en plus de la valeur, seul le nombre sera affiché.

Le fichier texte associé est situé dans le répetoire d’installation du bot: .\Services\Twitch\Files\Deaths.txt
Soit pour une installation classique:
C:\Users\VotreUser\AppData\Roaming\Streamlabs\Streamlabs Chatbot\Services\Twitch\Files\Deaths.txt
Ne reste plus qu’à le lier pour l’affichage sur le logiciel de streaming !
Avantages | Inconvénients |
---|---|
Soulage complètement le streameur | Déporte la charge aux modérateurs |
Automatise une partie du processus | Demande toujours une action manuelle systématiquement |
Solution hybride: permet incrémentation via le tchat ou via raccourci clavier | Un seul compteur à la fois |
Installation de logiciel obligatoire et pénible (plusieurs connexions, authorisation des plateformes twitch et streamlabs) | |
Logiciel très complet en plus du compteur | Logiciel plus lourd que d’autres en raisons de sa plétore de fonctionnalités obligatoires |
Script de comparaison image / écran
Origine
En réfléchisant au possibilité, j’ai cru me souvenir d’un live de Laink sur Twitch qui réfléchissait à la réalisation d’un script qui comparait l’écran à une capture d’écran.
J’ai ensuite réalisés plusieurs recherches avant de m’intéresser à d’autres sujets.
J’ai un jour installé AutoHotKey, logiciel de scripting sous Windows, pour la réalisation de macros et divers projets informatiques.
En épluchant sa documentation je suis tombé sur la fonction « ImageSearch » et me suis souvenu de mon projet de compteur automatique. La fonction répond parfaitement à mon besoin: Comparer l’écran de l’ordinateur à une image. Un penchant existe sous Python mais ne prend pas pleinement en charge le multi-écrans ou bien avec déboire, je n’avais donc pas poursuivi dans cette direction.


Dès le début du projet, j’ai décidé d’utiliser GitHub afin de versionner le code, profiter de l’hébergement en ligne gratuit et faciliter le développement sur différents appareils.
J’ai eu pour vocation dès mes débuts en informatique de contribuer au monde du libre et de partager mes différents projets. J’ai donc rendu le code accessible à tous et sans rémunération.

Dès le début du projet, j’ai décidé d’utiliser GitHub afin de versionner le code, profiter de l’hébergement en ligne gratuit et faciliter le développement sur différents appareils.
J’ai eu pour vocation dès mes débuts en informatique de contribuer au monde du libre et de partager mes différents projets. J’ai donc rendu le code accessible à tous et sans rémunération.
J’ai essayé de documenter du mieux possible le projet, notamment via le README rédigé en Markdown.
Version 1.0
Lien vers la version 1.0 ici
Algorithme
Avec des mots
- On paramètre d’abord les limites de l’écran puis l’on compare une image avec l’écran défini.
- Si rien n’est trouvé on recommence aussitôt (boucle infinie) sinon on essaye de récupérer la variable dans le fichier counter.txt
- Si elle n’est pas un nombre, alors on retest aussitôt. Permettant ainsi de réparer le fichier counter.txt sans avoir à relancer le script.
- Ensuite, si c’est un nombre, on définit la nouvelle valeur du compteur en faisant +1 à l’ancienne puis l’ont écrit +1 dans +1.txt. Ce fichier permet l’affichage d’un +1 à l’écran pour dynamiser le compteur.
- Enfin, l’on supprime les 2 fichiers puis l’on crée le nouveau fichier counter.txt avec la bonne valeur. La fonction permettant d’écrire dans les fichier ne peut pas remplacer du contenu. Il faut donc supprimer le fichier puis le recréer avec la bonne valeur.
Problèmes remarqués avec cette version
- Ne prend pas bien en compte tous les scénarios de disposition d’écran / résolutions sous Windows
- Lourd traitement car boucle infini sans délai
- Compliqué à prendre en main pour des novices
Version 2.0
Lien vers la version 2.0 ici
Détail à venir …
Avantages | Inconvénients |
---|---|
Soulage complètement le streameur | |
Automatise complètement le processus | Demande un peu de configuration préalable à adapter pour chaque nouveau scénario |
Autant de compteurs à la fois que souhaités | Uniquement via raccourci clavier / compteur automatique, pas possibilité via le tchat |
Logiciel de scripting utilisé pour d’autres usages, pas d’installation supplémentaires | |
Solution » Maison « : Ajout de fonctionnalités illimité dans la limite du réalisable | Demande de la maintenance (MàJ AutoHotKey…) |
Evolutivité
Désormais, notre script nous permet de comptabiliser automatiquement et ceux sans intervention durant la chasse, simplement du paramétrage préalable.
Mais que pouvons nous imaginer pour aller plus loins?
- Sauvegarde en ligne
- Récupérer le fichier en ligne automatiquement au lancement du script
- Sauvegarder le fichier en ligne automatiquement à la fin du script
- Le lier au bot twitch multifonction en NodeJS
- Permettre de modifier et consulter la valeur via le tchat
- Incrémenter / décrementer de 1 par défaut
- Incrémenter / décrémenter de X !compteur +X
- Consulter la valeur qui est stockée sur le cloud ou en local? à voir le plus adéquat car requête sur PC à chaque commande
- Gérer le script via des commandes du tchat: activer / désactiver
- Ecrire la donnée dans la BDD du bot ? trop de traffic réseau ? comment gérer les conflits (màj trop rapide en local, etc) ?
- Permettre de modifier et consulter la valeur via le tchat