
L'histoire en 30 secondes
Tu streames. Un viewer crie dans le chat "joue le thème d'Ixion s'il te plaît !". Tu réponds que tu cherches, mais en pleine partie tu peux pas vraiment fouiller un dossier. Le viewer abandonne, l'instant est passé.
Cinq minutes plus tard, le même viewer aurait pu taper !ns ixion dans le chat. Le bot Nodyx aurait ajouté le morceau à une queue. Le son aurait démarré tout seul à la fin du précédent. Toi t'aurais juste joué.
C'est ça la v2.7.0 de Nodyx : un Soundboard intégré, une queue alimentée par tes viewers, un overlay OBS qui fait sortir le son, et une commande chat qui rend la participation hyper simple.
Ce qui change pour toi le streamer
Tu uploades tes sons une fois pour toutes via le panel admin Nodyx (drag and drop, jusqu'à 50 Mo par fichier, mp3, ogg, wav, flac). Le système lit automatiquement les tags ID3 : titre, artiste, durée, et même la pochette d'album si elle est dans le fichier.
Ensuite tu colles une URL dans OBS comme browser source (c'est l'overlay Soundboard, transparent, prêt à jouer du son), et tu rattaches tes sons à des boutons de ton Stream Deck mobile en un clic.
Pendant le live, tu déclenches les sons depuis ton téléphone, et la queue des viewers se vide toute seule entre tes ambiances.
Ce qui change pour tes viewers
Ils peuvent participer activement, pas juste regarder. Deux façons de demander un son :
1. La page publique : ils vont sur ton-instance/soundboard, voient ce qui joue en live, parcourent ta bibliothèque, et cliquent sur le bouton + Queue à côté du son qu'ils veulent. Toast de confirmation, et leur demande apparaît dans la section "À suivre".
2. La commande chat : ils tapent une commande dans le chat Twitch et le bot Nodyx s'occupe du reste.
Le tuto commande chat (lis bien c'est important)
Voilà comment ça marche, avec des exemples concrets. Si tu lis ça en tant que viewer, c'est ton mode d'emploi. Si tu lis ça en tant que streamer, fais passer à ta commu.
La commande de base
Dans le chat Twitch, tu tapes :
!nextsound <nom du son>Ou la version courte qui fait la même chose et qui est plus rapide à taper :
!ns <nom du son>Exemple :
!ns ixionLe bot répond : @TonPseudo "IXION Original Soundtrack..." ajouté à la queue ✓
Et le son démarrera dès que le morceau en cours sera fini. Magique.
Pas besoin de taper le titre exact
C'est ça la vraie astuce. Le bot est tolérant. Tu peux taper :
!ns ixionalors que le titre complet c'est "IXION Original Soundtrack 01 Vanirs Legacy" → ça matche!ns vanir→ ça matche aussi (un autre mot du titre)!ns IXIONavec des majuscules ou pas, peu importe!ns ixienavec une faute de frappe → ça matche encore (tolère 2 lettres de différence)
Le but c'est que tu galères pas. Tu te souviens vaguement d'un mot du titre, ça suffit.
Si le bot trouve plusieurs sons qui correspondent
Imaginons que le streamer ait deux sons qui s'appellent "Boss Theme 1" et "Boss Theme 2". Tu tapes !ns boss. Le bot va pas deviner au hasard. Il va te répondre :
@TonPseudo précise — candidats : "Boss Theme 1", "Boss Theme 2"
Là tu peux retaper avec un mot plus précis : !ns boss 2 ou !ns theme 2. C'est cool parce que ça évite de jouer le mauvais morceau pendant une scène tendue.
Si le son n'existe pas
Le bot te dit honnêtement qu'il a rien trouvé et te file le lien vers la liste complète :
@TonPseudo aucun son ne correspond à "blip". Liste : ton-instance/soundboard
Tu vas sur la page, tu regardes ce qui existe, et tu retentes.
Les règles anti-spam (que tu vas pas voir mais qui existent)
30 secondes entre chaque demande par viewer. Le bot te le dira si tu vas trop vite
Maximum 3 sons en attente par viewer en même temps. Quand l'un d'eux passe, tu peux en redemander un
Pas deux fois le même son en queue. Si quelqu'un a déjà demandé "ixion", ton ajout est silencieusement ignoré
Ces règles existent pour pas que la queue se transforme en spam et que le live reste agréable pour tout le monde.
Pour le streamer : le contrôle reste de ton côté
Tout ce qu'on vient de décrire peut être coupé d'un clic depuis ton panel admin. Si un troll insiste ou si tu veux faire une pause musicale calme, tu désactives les ajouts viewers. Le toggle est dans le tab Soundboard de l'admin, ON par défaut.
Et la queue elle-même est visible en temps réel dans ton admin : tu peux retirer un son précis (Skip) ou tout vider d'un coup (Tout vider) si besoin.
Stream Deck : maintenant en pages
Petite révolution côté deck mobile aussi. Avant : une seule grille de boutons par deck. Maintenant : jusqu'à huit pages par deck, avec un dock de pastilles en bas de l'écran pour switcher en un tap.
Concrètement tu peux faire : une page pour tes commandes chat (!discord, !schedule), une page pour tes sons (chacun avec sa pochette d'album en miniature), une page pour les outils de modération. T'organises comme tu veux.
Quatre nouvelles actions dispos sur les boutons :
Jouer un son (avec sélection visuelle dans ta bibliothèque)
Couper le son en cours
Mettre en pause
Aller à une autre page (utile pour faire un "menu de sons" sur le deck)
Et si tu as déjà un deck créé avant cette mise à jour, il continue de marcher sans rien casser. On a fait gaffe.
La techno derrière (pour les curieux)
Si t'es développeur ou admin technique d'une instance, voilà ce qui s'est passé sous le capot :
Player audio overlay en Web Audio API avec fades, cross-fades et OSD configurable
Queue Redis FIFO avec rate-limit, cap par viewer, déduplication, auto-consume sur event
audio:endedFuzzy matcher avec normalisation Unicode (casse + accents) et scoring en cascade : exact > substring début > substring milieu > tokens + Levenshtein sur premier mot
2 nouvelles migrations Postgres (
streamer_audio_libraryet bump du cap de taille des assets de 12 à 50 Mo)Extraction des tags ID3 via
music-metadata, cover art APIC sauvée dansuploads/audio_thumbs/Le tout en TypeScript strict côté backend, Svelte 5 côté frontend
Notes de version complètes sur GitHub, code source AGPL-3.0 comme toujours.
Ce qui n'est pas encore là (l'honnêteté c'est important)
Pas de drag and drop pour réorganiser la queue (FIFO strict). Si tu veux plus de souplesse côté streamer, dis-le et on l'ajoute en v2.7.x
Pas de système de priorité pour les abonnés ou modérateurs. Tout viewer est égal dans la queue
Pas de visualizer audio (peak meter, waveform) dans l'overlay. C'est juste informatif en V1
Pas d'éditeur UI pour la config de l'overlay (position OSD, master volume) : les defaults sont OK pour 95% des cas, mais une session de polish viendra
Si OBS crash en plein son, l'auto-chaîne s'arrête. Pas de fallback timer côté serveur, c'est manuel pour relancer
Tout ça est identifié. Si une fonction te manque vraiment, ouvre un thread ou réponds ici, on note.
Mettre à jour ton instance
Si tu as déjà une instance Nodyx :
cd /var/www/nodyx-core && git pull && npm run build && pm2 restart nodyx-core
cd /var/www/nodyx-frontend && npm run build && pm2 restart nodyx-frontendLes migrations s'appliquent automatiquement au démarrage du backend.
Si tu pars de zéro, l'installeur officiel chope automatiquement la v2.7.0 :
curl -fsSL https://raw.githubusercontent.com/Pokled/nodyx/main/install.sh | sudo bashPour finir
L'idée centrale n'a pas changé depuis le début : le streamer doit posséder sa communauté. Pas Discord, pas Streamlabs, pas une pile de SaaS qui se partagent ses données et son audience.
Le Soundboard est une brique de plus dans cette direction. Ta bibliothèque est sur ton disque, ta queue est dans ton Redis, tes viewers participent depuis ta propre URL.
Une instance, une communauté, ton propre toit. Toujours.