Commandes et API

Contrôlez Social Stream Ninja avec les commandes intégrées, l’automatisation et l’intégration API

Commandes de bot

Commandes intégrées du bot

Social Stream Ninja inclut plusieurs commandes que le public peut utiliser dans le chat ou que vous pouvez déclencher par API.

Commande Description Comment activer
!joke Répond par une blague de papa geek choisie au hasard Activer avec l’interrupteur du menu de l’extension
hi Accueille automatiquement toute personne disant « hi » dans le chat Activer avec l’interrupteur du menu de l’extension
!cycle Lorsque cette option est activée, permet aux spectateurs de changer les scènes OBS Activer avec l’interrupteur du menu de l’extension

Remarque : Les commandes du bot ne fonctionnent que si les réponses automatiques sont correctement configurées et si vous avez le droit de publier sur les plateformes concernées.

Configuration des réponses automatiques

Pour que les réponses automatiques fonctionnent :

  1. Vérifier que vous êtes connecté à la plateforme (YouTube, Twitch, etc.)
  2. Vérifier que la fenêtre de chat est visible et non réduite
  3. Essayer d’abord d’envoyer manuellement un message de test pour vérifier les permissions
  4. Activer les interrupteurs des commandes concernées dans le menu de l’extension

Si une barre bleue de débogage apparaît lors des réponses automatiques, vous pouvez la masquer en lançant Chrome avec l’option --silent-debugger-extension-api .

API serveur

Vue d’ensemble

Social Stream Ninja fournit une API permettant de contrôler votre configuration de diffusion par programmation. Le serveur API peut envoyer des commandes à votre installation et écouter les messages entrants des chats regroupés.

Gestion des incrustations

Contrôlez les messages en vedette, effacez les incrustations et modifiez l’apparence du contenu dans votre direct.

Intégration des webhooks

Recevez des événements de services tiers comme Stripe, Ko-Fi et Buy Me A Coffee.

Exportation des messages

Exportez les messages du chat dans un fichier ou transmettez-les par webhook (POST) pour vos intégrations.

Paramètres requis (Paramètres globaux → Mécanique) :

  • 🎮 Contrôle distant (StreamDeck/Bitfocus) : Activer « Activer le contrôle distant de l’extension par API » (Interrupteur 1) — Se connecter à canal 1
  • 📡 Récepteur de chat (applications Python/Node) : Activer l’interrupteur 1 + « Envoyer les messages du chat au serveur API » (Interrupteur 3) — Se connecter à canal 4

Consultez : documentation complète de l’API pour des guides détaillés et des exemples de code.

Points d’accès API et méthodes de connexion

HTTP GET/POST

https://io.socialstream.ninja/{sessionID}/{action}/{target}/{value}

Idéal pour des commandes simples depuis Stream Deck ou des scripts personnalisés.

WebSocket

wss://io.socialstream.ninja:443

Pour une communication bidirectionnelle en temps réel avec reconnexion automatique.

Si vous préférez les connexions entre pairs sans activer le mode WebSocket, utilisez le SDK WebRTC de Social Stream Ninja. Il inclut des exemples Node et navigateur, comme le récepteur Social Stream Ninja.

Événements envoyés par le serveur

https://io.socialstream.ninja/sse/{sessionID}

Pour des mises à jour unidirectionnelles en temps réel depuis le serveur.

Système de canaux

L’API utilise un système de canaux pour acheminer les messages :

	- Channel 1: Remote control commands (default for StreamDeck/Bitfocus)
	- Channel 2: Dock page output
	- Channel 3: Extension receives commands from Dock
	- Channel 4: Chat messages from Extension (use this to receive Twitch/YouTube chat!)
	- Channel 5: Waitlist/giveaway communication
	- Channels 6-9: Reserved for future use

Connectez-vous au canal souhaité :

// To receive chat messages (listen on channel 4):
wss://io.socialstream.ninja/join/SESSION_ID/4

// To send commands (channel 1 default):
wss://io.socialstream.ninja/join/SESSION_ID

Commandes API courantes

Action Description Exemple
sendChat Envoie un message à toutes les plateformes de chat connectées https://io.socialstream.ninja/SESSIONID/sendChat/null/Hello everyone!
sendEncodedChat Envoie un message encodé pour URL à toutes les plateformes https://io.socialstream.ninja/SESSIONID/sendEncodedChat/null/Hello%20everyone%21
clearOverlay Efface le message en vedette de l’incrustation https://io.socialstream.ninja/SESSIONID/clearOverlay
nextInQueue Affiche le message suivant de la file https://io.socialstream.ninja/SESSIONID/nextInQueue
autoShow Active ou désactive la mise en avant automatique https://io.socialstream.ninja/SESSIONID/autoShow/toggle
blockUser Bloque un utilisateur sur une plateforme précise https://io.socialstream.ninja/SESSIONID/blockUser/null/{"chatname":"username","type":"twitch"}
extContent Envoie du contenu externe comme message de chat https://io.socialstream.ninja/SESSIONID/extContent/null/{"chatname":"User","chatmessage":"Hello"}
pin Épingle un message existant du Dock par son ID, ou un objet message complet. Nécessite dock.html ouvert sur la même session. https://io.socialstream.ninja/SESSIONID/pin/null/MESSAGE_MID
unpin Désépingle un message existant du Dock par son ID. Utilisez le champ ou segment de chemin target pour un Dock étiqueté. https://io.socialstream.ninja/SESSIONID/unpin/null/MESSAGE_MID
nextPinned Met en avant le premier message épinglé du Dock. https://io.socialstream.ninja/SESSIONID/nextPinned
removefromwaitlist Retire la première entrée active de la liste d’attente, ou l’entrée active numérotée dans value https://io.socialstream.ninja/SESSIONID/removefromwaitlist/null/1
highlightwaitlist Met en avant la première entrée active de la liste d’attente, ou l’entrée active numérotée dans value https://io.socialstream.ninja/SESSIONID/highlightwaitlist/null/1
stopentries / startentries Arrête ou reprend les nouvelles inscriptions sans vider la liste existante. openentries et resumeentries sont des alias de startentries. https://io.socialstream.ninja/SESSIONID/stopentries
selectwinner Sélectionne un ou plusieurs gagnants aléatoires dans la liste d’attente/le tirage https://io.socialstream.ninja/SESSIONID/selectwinner/null/1
downloadwaitlist Télécharge la liste d’attente actuelle en TSV depuis la page/application Social Stream active https://io.socialstream.ninja/SESSIONID/downloadwaitlist
drawmode Active/désactive le mode tirage, ou le bascule lorsque value est égal à toggle https://io.socialstream.ninja/SESSIONID/drawmode/null/toggle
waitlistmessage Définit le titre de la liste d’attente ou du tirage affiché sur sa page https://io.socialstream.ninja/SESSIONID/waitlistmessage/null/Type%20!join%20to%20enter
resetwaitlist Vide la liste d’attente et rouvre les inscriptions https://io.socialstream.ninja/SESSIONID/resetwaitlist

Bac à sable API interactif

Essayez l’API avec notre bac à sable interactif donnant accès à toutes les commandes et fonctions :

Pour un petit ensemble de boutons de contrôle du direct dans OBS, utilisez le Dock de contrôle Social Stream et suivez le guide de configuration OBS.

Tester les commandes

Essayer toutes les commandes API dans un environnement sûr

Générer du code

Obtenir des exemples de code HTTP, WebSocket et SSE

Voir les résultats

Voir les réponses à vos commandes en temps réel

Créer des tests

Générer des messages de test au contenu aléatoire

Remarque : Pensez à remplacer SESSIONID par votre véritable ID de session Social Stream Ninja !

StreamDeck et Companion

Intégration StreamDeck

Social Stream Ninja s’intègre à StreamDeck de plusieurs façons : actions HTTP natives et intégration Bitfocus Companion.

Méthode HTTP/API

Utilisez l’action « Website » de StreamDeck avec « GET request in background » activé pour envoyer directement des commandes à l’API.

Bitfocus Companion

Intégration native avec actions prêtes à l’emploi, retours en temps réel et variables de contenu dynamique.

Intégration Companion

Bitfocus Companion permet de contrôler Social Stream Ninja avec les API WebSocket ou HTTP.

Action Description Méthode API
Effacer le message en vedette Retire de l’incrustation le message actuellement mis en avant WebSocket/HTTP
Suivant dans la file Affiche le prochain message en attente WebSocket/HTTP
Basculer l’affichage automatique Active/désactive la mise en avant automatique des messages WebSocket/HTTP
Envoyer un message de chat Envoie un message à toutes les plateformes connectées WebSocket/HTTP

Variables dynamiques

  • featured_message - Texte du message actuellement mis en avant
  • featured_username - Nom de l’utilisateur actuellement mis en avant
  • queue_size - Nombre de messages dans la file

Intégration IA

Mode bot de chat IA

Social Stream Ninja propose une intégration IA pour les réponses au chat, la modération et plus encore. Choisissez des fournisseurs locaux ou cloud selon vos besoins.

Réponses automatiques au chat

Laissez l’IA échanger automatiquement avec vos spectateurs, répondre aux questions et animer la conversation pendant que vous vous concentrez sur votre contenu.

Modération du contenu

Utilisez l’IA pour repérer les messages potentiellement nuisibles et les traiter automatiquement selon vos préférences. Choisissez un mode non bloquant ou un blocage strict.

Recherche RAG

La génération augmentée par recherche permet à l’IA de consulter votre base documentaire personnalisée pour donner des réponses précises adaptées à votre contenu.

Plusieurs instances de bots

Utilisez différentes instances selon les besoins : bot public, bot individuel privé, bot de censure et même coprésentateur IA multimodal capable de voir et d’entendre.

Fournisseurs IA pris en charge

Social Stream Ninja prend en charge plusieurs fournisseurs IA, des modèles entièrement locaux dans le navigateur ou l’environnement d’exécution aux API hébergées :

Ollama (API locale native)

Modèles IA gratuits et auto-hébergés sur votre ordinateur via l’API native d’Ollama, conçus pour préserver la confidentialité.

Local Gemma 4

Exécutez Gemma 4 dans le navigateur après avoir copié les fichiers du modèle sur votre propre hébergement ; l’hébergement largefiles de SSN ne contient actuellement pas les fichiers Gemma.

Local Qwen 3.5

Exécutez Qwen 3.5 dans le navigateur à partir de vos propres fichiers hébergés pour des réponses locales et privées.

ChatGPT / OpenAI

API OpenAI, dont les modèles récents de chat et de voix en temps réel.

Google Gemini

Modèles Google Gemini, dont les options Gemini 2.5 actuelles pour le texte et le multimodal en direct.

DeepSeek

Modèles IA efficaces et économiques, optimisés pour la conversation.

xAI (Grok)

API xAI Grok, dont les sessions vocales en temps réel avec des secrets clients temporaires.

AWS Bedrock

Modèles IA professionnels de divers fournisseurs, dont Claude et Llama.

OpenRouter

Accès à plusieurs modèles IA via une interface API unifiée.

Groq

Inférence de chat compatible OpenAI à faible latence pour des réponses rapides.

API personnalisée (compatible OpenAI)

Connectez llama.cpp, LM Studio, vLLM ou tout autre point d’accès compatible OpenAI.

Remarque : Ollama utilise sa propre API native. Pour llama.cpp, LM Studio, vLLM ou d’autres serveurs compatibles OpenAI, choisissez API personnalisée.

Intégration de la synthèse vocale

Social Stream Ninja propose une prise en charge complète de la synthèse vocale pour les messages du bot et le chat en vedette :

Synthèse vocale système

Synthèse vocale gratuite intégrée utilisant les voix de votre système d’exploitation.

Kokoro

Synthèse vocale gratuite en local via WebGPU/CPU pour préserver la confidentialité.

Kitten TTS

Synthèse vocale légère dans le navigateur, téléchargeant un petit modèle pour générer la voix en local.

ElevenLabs

Synthèse vocale premium avec des voix naturelles et personnalisables.

Google Cloud TTS

Voix de haute qualité avec de nombreuses langues et options de personnalisation.

Gemini (synthèse vocale en aperçu)

Modèles neuronaux de voix de Google en aperçu, avec choix de voix et de langue.

Speechify

Synthèse vocale par IA avec conversion vocale naturelle.

OpenAI TTS

Synthèse vocale OpenAI avec choix de voix, de modèles et, facultativement, de points d’accès compatibles.

Remarque : La synthèse vocale nécessite d’ouvrir la page d’incrustation appropriée dans OBS. Chaque fournisseur propose des voix, délais, tarifs ou exigences matérielles différents.

Instances de bots et incrustations

Social Stream Ninja propose plusieurs instances de bots pour différents usages :

Type de bot URL Description
Bot principal de chat /bot.html Incrustation du bot principal avec synthèse vocale facultative et réponses au chat public
Interface de chat privé /chatbot.html Page de bot individuel dédiée, qui ne partage ni les données RAG ni l’historique du bot principal
Bot de censure (s’exécute en arrière-plan) Filtre, nettoie ou bloque automatiquement les messages entrants
Coprésentateur IA /cohost.html IA multimodale qui peut voir votre écran, entendre l’audio et interagir

Configurer l’intégration IA

Suivez ces étapes pour configurer l’intégration IA avec le menu actuel :

1

Choisir et connecter votre fournisseur LLM

Sélectionnez votre fournisseur dans Configurer le fournisseur LLM et renseignez les champs correspondants :

  • Ollama : Installer en local et définir le point d’accès si nécessaire
  • Local Gemma / Local Qwen : Utiliser des fichiers de modèle hébergés pour le navigateur et, facultativement, un dossier de modèle personnalisé ; Qwen peut utiliser SSN largefiles, tandis que Gemma nécessite votre propre dossier miroir
  • ChatGPT, Gemini, DeepSeek, xAI, Groq, OpenRouter, Bedrock : Ajouter votre clé API et le modèle souhaité
  • API personnalisée : Entrer un point d’accès compatible OpenAI, un ID de modèle et une clé API facultative
2

Tester le bot de chat sélectionné

Utilisez le bouton intégré Tester le bot de chat sélectionné pour vérifier votre fournisseur, le modèle et les identifiants avant le direct.

3

Configurer le comportement du bot

Personnalisez le comportement du bot dans le chat :

  • Activer le bot de chat IA LLM
  • Définir le nom du bot, les mots déclencheurs et la limite de fréquence des réponses
  • Choisir si les réponses retournent dans le chat ou seulement sur la page d’incrustation du bot
  • Ajouter des instructions sur le ton, le rôle et les règles de modération
4

Activer les options supplémentaires

Activez les fonctions souhaitées autour du bot :

  • Activer la synthèse vocale des réponses du bot et choisir un fournisseur
  • Choisir le masquage automatique à durée fixe, selon la longueur ou après synthèse vocale pour /bot.html; utilisez clearBotOverlay pour l’effacement manuel
  • Activer le RAG et importer des documents pour des réponses documentées
  • Activer le bot de censure pour la modération ou le blocage strict
  • Ouvrir /bot.html, /chatbot.html, ou /cohost.html dans OBS ou un navigateur selon les besoins

Contrôle MIDI et raccourcis clavier

Intégration MIDI

Contrôlez Social Stream Ninja avec des contrôleurs MIDI, des raccourcis clavier ou StreamDeck avec des plugins MIDI.

Conditions de configuration

  1. Activer la prise en charge MIDI dans les paramètres de l’extension
  2. Installer un périphérique MIDI virtuel de bouclage (par exemple loopMIDI)
  3. Configurer votre contrôleur MIDI ou le plugin MIDI de StreamDeck
Numéro CC Valeur Action Remarques
102 1 Envoyer « 1 » dans le chat Réaction rapide
102 2 Envoyer « LUL » dans le chat Réaction par emote
102 3 Raconter une blague Déclenche une réponse du bot
102 4 Effacer l’incrustation Retire le message en vedette

Conseil : Le contrôle MIDI fonctionne mieux avec des contrôleurs physiques, mais peut aussi être déclenché par des périphériques virtuels.

Prise en charge des raccourcis clavier

Utilisez les raccourcis clavier pour accéder rapidement aux fonctions courantes.

Les raccourcis se configurent dans les paramètres du menu et fonctionnent à l’échelle du système lorsque le navigateur a le focus ou que l’application est utilisée.

Intégration des webhooks

Services de dons

Social Stream Ninja peut recevoir des dons et événements de services tiers par webhooks ; voici quelques services populaires :

Stripe

Stripe

Recevez des dons par carte bancaire directement sur votre compte Stripe.

  • Créez un lien de paiement sur stripe.com
  • Dans le tableau de bord Stripe, ouvrez Développeurs → Webhooks
  • Ajouter le point d’accès : https://io.socialstream.ninja/SESSIONID/stripe
  • Sélectionner l’événement checkout.session.completed
  • Ajouter &server à l’URL de votre Dock
Ko-Fi

Ko-Fi

Recevez des cafés de vos soutiens.

  • Se connecter à votre compte Ko-Fi
  • Accédez à Paramètres de webhook
  • Ajouter https://io.socialstream.ninja/SESSIONID/kofi comme URL du webhook
  • Ajouter &server à l’URL de votre Dock
  • Tester avec le bouton « Send Single Donation Test »
Buy Me A Coffee

Buy Me A Coffee

Recevez des dons via la plateforme populaire Buy Me A Coffee.

  • Se connecter à votre compte Buy Me A Coffee
  • Ouvrir les paramètres de webhook
  • Ajouter https://io.socialstream.ninja/SESSIONID/bmac comme URL du webhook
  • Ajouter &server à l’URL de votre Dock pour recevoir les événements
  • Les dons et les événements d’adhésion sont pris en charge

Note de sécurité : Gardez votre ID de session privé : toute personne qui le connaît peut envoyer de faux dons à votre incrustation. L’URL du webhook doit être traitée comme une information sensible.

Intégration de services externes

Social Stream Ninja peut aussi envoyer des données à des services tiers :

Service Paramètre d’URL Description
Singular Live &singular=IDENTIFIER Envoie les messages sélectionnés à Singular Live pour les afficher en vedette
H2R &h2r=IDENTIFIER Envoie les messages sélectionnés à un serveur H2R local
POST générique &postserver=URL Envoie les messages sélectionnés à un point d’accès personnalisé par POST
PUT générique &putserver=URL Envoie les messages sélectionnés à un point d’accès personnalisé par PUT

Ces paramètres s’ajoutent à l’URL de la page du Dock.

Scripts personnalisés

JavaScript personnalisé

Vous pouvez créer vos propres commandes et fonctions en personnalisant le JavaScript :

Utiliser custom.js

  1. Renommer custom_sample.js avec le nom de fichier custom.js
  2. Modifier le fichier pour ajouter vos fonctions personnalisées
  3. Ouvrir le fichier dock.html en local pour charger custom.js

Cette méthode permet des personnalisations et déclencheurs complexes.

Incrustations personnalisées

Créer des incrustations personnalisées

Vous pouvez créer des incrustations de chat entièrement personnalisées selon le style et les fonctions de votre direct. Social Stream Ninja fournit une base souple pour les construire.

Commencer avec un modèle

Commencez avec notre modèle d’incrustation pour comprendre les bases :

// View the sample overlay
https://socialstream.ninja/sampleoverlay?session=SESSIONID

Ce modèle minimal contient seulement le code nécessaire à une incrustation fonctionnelle.

Voir l’incrustation d’exemple

Principaux éléments à personnaliser

  • Basculer entre les messages en vedette et tous les messages
  • Personnaliser l’apparence avec CSS
  • Ajouter des animations personnalisées aux nouveaux messages
  • Implémenter votre propre filtrage de messages
  • Ajouter des éléments interactifs avec JavaScript

Étapes de mise en œuvre

  1. Télécharger le fichier HTML d’incrustation d’exemple
  2. Modifier le HTML pour votre disposition personnalisée
  3. Personnaliser le CSS selon l’apparence souhaitée
  4. Modifier le JavaScript selon le comportement souhaité
  5. Enregistrer le fichier en local pour l’utiliser comme source navigateur OBS

API du minuteur

Contrôle à distance de timer.html

La page de minuterie est volontairement limitée : un minuteur, des commandes facultatives pour l’opérateur, des avertissements, le dépassement de temps et quelques styles visuels.

Les actions utiles comprennent starttimer, pausetimer, resettimer, timeradd, timersubtract, et settimer.

{
  "action": "settimer",
  "value": {
    "seconds": 300,
    "label": "Interview",
    "mode": "countdown",
    "style": "stage",
    "warnSeconds": 60,
    "dangerSeconds": 15
  }
}

Pour connaître l’état actuel du minuteur, utilisez gettimerstate avec un token de rappel.

{ "action": "gettimerstate", "get": "timer-state-1" }

Utilisez la page avec timer.html?session=YOUR_SESSION&server si vous voulez le contrôler directement via le serveur API.

Commandes de tirages au sort gérés

startgiveaway, closegiveaway, drawgiveaway, resetgiveaway, et getgiveawaystate gèrent le groupe de participants dédié avec les mêmes commandes API/Stream Deck. Le tirage ferme automatiquement les inscriptions. Nouvelle manche conserve l’historique des gagnants et rejette les réservations impayées. Annuler et rembourser restitue les paiements de billets en attente. Les billets payants, Number Hunt, Coin Flip Pot et Event Flow utilisent le même service hôte. Configuration, présentations, valeurs de commandes et récupération.

Prêt à faire évoluer votre direct ?

Avec ces commandes et options API, vous pouvez créer une expérience de diffusion interactive adaptée à vos besoins.