Après quelques années de tests et d’expérimentations sur OBS, je me suis rapidement heurté à certaines limites : je voulais plus de dynamisme, plus d’automatisation, plus de contrôle sur mes productions.

C’est à ce moment que je me suis penché sur NodeCG, un outil que j’avais depuis un moment dans mes favoris et que j’observais avec prudence.

NodeCG, c’est quoi au juste ?

NodeCG est un framework open-source conçu pour créer et gérer des éléments visuels pour vos streams :

La scène d'attente de stream du festival PodCastres où l'on peut voir un jeu de motus joué en temps réel par le chat Twitch et un programme de la journée
NodeCG me permet de gérer et centraliser la gestion d'un jeu de motus jouable par la chatroom et l'affichage en temps réel du programme de la journée !

Le sujet qui fâche : les compétences requises

NodeCG n’est pas un logiciel “clé en main” avec des templates préconçus, ni un simple plugin à installer dans OBS : c’est un bac à sable où chaque élément doit être crée de zéro.

Pour comprendre et utiliser NodeCG, il vous faudra quelques connaissances de base en développement web : HTML, CSS, JavaScript, ainsi qu’une familiarité avec Node.js et l’architecture client-serveur d’un projet web, la gestion des paquets via npm et les lignes de commande.

Par exemple, si vous voulez créer un scoreboard, vous devrez coder non seulement l’élément visuel qui sera affiché dans OBS, mais aussi le tableau de bord qui permettra de le contrôler en direct.

Au début c’était la galère, d’autant plus que j’avais très peu de connaissances en développement web mais je n’ai jamais autant appris sur l’architecture Node, les websockets, et la communication client-serveur qu’avec NodeCG.

Comment fonctionne NodeCG ?

Pour utiliser NodeCG, il faut d’abord installer Node.js (version 22 ou moins obligatoire !) sur votre machine, puis l’installer dans un dossier dédié via npm (le gestionnaire de paquets de Node.js), ce qui vous permettra de lancer le serveur NodeCG localement et de gérer un “bundle”.

Le projet est globalement structuré autour de trois composants principaux qui communiquent entre eux : les graphics, les dashboards et l’extension.

  1. Les “Graphics”

Les graphics sont les éléments graphiques dans votre stream: un scoreboard, un bandeau, un timer… Ils sont codés en HTML, CSS et JavaScript et intégrés dans OBS via des sources “Navigateur”.

Chaque “graphic” peut être mis à jour en temps réel depuis le dashboard avec NodeCG qui gère tout en arrière-plan.

  1. Les “Dashboards”

Le dashboard est l’interface d’administration accessible depuis votre navigateur et où l’on peut créer des panneaux de contrôle.

C’est ici que l’on va coder une petite interface pour changer les scores d’un scoreboard, lancer un timer, ou modifier le texte d’un bandeau… Le dashboard communique avec les graphics via NodeCG, qui synchronise les données en temps réel.

  1. L’Extension (le côté serveur)

L’extension est souvent la partie la moins facile à comprendre et exploiter au début, mais aussi la plus riche et la plus puissante, car c’est ici que tout le “travail de fond” s’effectue :

Personnellement, j’ai mis un certain temps avant de vraiment explorer cette partie, mais c’est là que NodeCG révèle tout son potentiel : c’est elle qui permet de créer des overlays dynamiques, automatisés et connectés à d’autres services.

Comment j’utilise NodeCG

J’utilise NodeCG de deux manières principales :

En local, chez moi : il tourne en fond pendant mes lives (quand j’en fais), et je garde toujours un œil sur le dashboard pour ajuster les éléments en direct.

En version portable, sur une clé USB : je peux lancer NodeCG sur n’importe quel PC, pratique pour gérer des événements en live.

Quelques cas d’usage

🎲 Actual Play de jeu de rôle à distance

Je gère un overlay pour mes parties de jeu de rôle en ligne avec NodeCG, ce qui me permet d’avoir un affichage plus dynamique et immersif

Une scène de live de jdr dans une ambiance de pièce de théatre. On voit les personnages en situation de combat, le résultat des jets de dés apparait sous la forme d'une pancarte qui descend du plafond, les ennemis ont une barre de vie dynamique
Intégrer NodeCG dans la production me permet d'aller beaucoup plus loin dans la mise en scène du stream de jeu de rôle

Tout d’abord,

Côté serveur :

Côté overlay :

Côté dashboard :

Un exemple de ce que permet NodeCG pour gérer mon overlay de JDR

🎤 Gestion du stream pour un festival de podcast

Chaque année, je coordonne l’aspect technique d’un festival de podcasts retransmis en direct sur Twitch. NodeCG nous facilite grandement la tâche :

Côté serveur :

Côté overlay :

Côté dashboard :

Une scène de live du festival PodCastres, la bandeau affiche les informations de l'émission en cours et à venir, gérées via le panneau d'administration de NodeCG
Un simple menu déroulant permet de changer les informations affichées sur le bandeau, ca évite de toucher à OBS