Module OBS
Contrôle complet d’OBS Studio — scènes, sources, audio, diffusion, enregistrement et plus encore.
Le module OBS connecte OBS Studio à Rawtoh via le protocole OBS WebSocket. Il vous donne un contrôle complet sur vos scènes, vos sources, l’audio, la diffusion et l’enregistrement — le tout depuis vos automatisations.
Premiers pas
OBS tourne sur votre machine, hors de portée d’un service hébergé. Le module fonctionne donc en deux parties : un backend hébergé qui maintient la connexion à Rawtoh, et un onglet de navigateur sur le PC de streaming qui communique avec OBS sur localhost et relaie les appels et les événements. Gardez cet onglet ouvert pendant vos streams — tant qu’il est fermé, les appels échouent avec une erreur explicite.
- Dans OBS, activez le serveur WebSocket (Outils → Paramètres du serveur WebSocket) et notez le port et le mot de passe
- Ouvrez le site du module OBS, connectez-vous avec votre compte Rawtoh et choisissez votre organisation
- Ajoutez un compte OBS avec cet hôte, ce port et ce mot de passe — les identifiants restent sur le serveur, jamais dans le stockage du navigateur
- Cliquez sur Installer avec Rawtoh. Le module crée l’instance dans votre organisation, enrôle sa paire de clés et se connecte. Aucun jeton à copier ; vous devez avoir le rôle propriétaire
- Laissez l’onglet ouvert sur le PC de streaming. Un compte par installation d’OBS — ajoutez-en d’autres pour une deuxième machine
Événements
Le module OBS émet des événements pour tout ce qui se passe dans OBS Studio. Utilisez-les comme déclencheurs pour réagir automatiquement.
Scènes
| Événement | Description |
|---|---|
scene.current_changed | Changement de la scène active |
scene.preview_changed | Changement de la scène d’aperçu (mode studio) |
scene.created | Nouvelle scène créée |
scene.removed | Scène supprimée |
scene.name_changed | Scène renommée |
scene.list_changed | Liste des scènes modifiée |
studio_mode.state_changed | Mode studio activé / désactivé |
Diffusion et enregistrement
| Événement | Description |
|---|---|
stream.state_changed | Diffusion démarrée / arrêtée |
record.state_changed | Enregistrement démarré / arrêté |
replay_buffer.state_changed | Tampon de relecture démarré / arrêté |
virtual_cam.state_changed | Caméra virtuelle activée / désactivée |
exit.started | OBS est en train de se fermer |
Sources, entrées et transitions
| Événement | Description |
|---|---|
input.mute_state_changed | Entrée coupée / réactivée |
input.volume_changed | Volume d’une entrée modifié |
input.created / input.removed / input.name_changed | Entrée ajoutée, supprimée ou renommée |
scene_item.enable_state_changed | Visibilité d’une source modifiée |
filter.enable_state_changed | Filtre activé / désactivé |
transition.started / transition.ended | Transition de scène démarrée / terminée |
transition.current_changed | Changement de la transition active |
Les payloads des événements sont transmis tels quels depuis obs-websocket : les noms de champs sont donc en camelCase — par exemple event.payload.sceneName.
Ce que vous pouvez faire
Appelez ces méthodes depuis vos actions pour contrôler OBS. Les paramètres reprennent les noms d’obs-websocket, en camelCase — par exemple module("obs").request("scene.set_current", { sceneName: "BRB" }) :
Scènes et mode studio
scene.set_current/scene.get_current— basculer vers une scène / lire la scène activescene.list— récupérer toutes les scènesscene.create/scene.removescene.set_preview/scene.get_preview— scène d’aperçu (mode studio)studio.set_mode/studio.get_mode— activer ou désactiver le mode studio
Sources et entrées
scene_item.set_enabled/scene_item.get_enabled— afficher ou masquer une sourcescene_item.list— lister les sources d’une scèneinput.set_mute/input.toggle_mute/input.get_mute— couper / réactiver le soninput.set_volume/input.get_volume— modifier le volumeinput.list— lister les entréesmedia.play/media.pause/media.stop/media.restart/media.next/media.previous/media.set_time/media.get_status— contrôler les entrées multimédias
Diffusion et enregistrement
stream.start/stream.stop/stream.toggle/stream.get_statusstream.send_caption— envoyer un sous-titre sur le streamrecord.start/record.stop/record.toggle/record.pause/record.resume/record.toggle_pause/record.get_statusreplay_buffer.save/replay_buffer.start/replay_buffer.stop/replay_buffer.toggle/replay_buffer.get_status
Filtres et transitions
filter.set_enabled— activer / désactiver un filtrefilter.list— lister les filtres d’une sourcetransition.set_current/transition.get_current/transition.list— changer ou lire la transition activetransition.set_duration— modifier la durée de la transitiontransition.trigger— lancer une transition manuellement (mode studio)
Autres
general.trigger_hotkey— déclencher n’importe quel raccourci OBS par son nomgeneral.get_version/general.get_statsscreenshot.get— capturer une source (renvoie les données de l’image en base64)virtual_cam.start/virtual_cam.stop/virtual_cam.toggle/virtual_cam.get_statusobs.call— passe-plat générique :{ requestType, requestData? }pour toute requête obs-websocket absente de la liste ci-dessus (par exempleSetInputSettings,SetSceneItemTransform)
Exemples d’automatisations
- Raid sur Twitch → basculer vers la scène d’accueil, afficher une source d’alerte de raid
- Le stream démarre → publier une annonce de live sur Discord, lancer l’enregistrement
- Clic sur un bouton du Tableau → basculer vers la scène BRB, couper le micro
- Changement de morceau sur Spotify → mettre à jour une source texte avec le titre en cours
- Commande dans le chat → activer ou désactiver un filtre sur la webcam, déclencher un raccourci