JavaScript Video Tutorial: Controlling OBS in JavaScript
In this tutorial I suggest you discover how to control OBS Studio from a page using JavaScript and WebSockets
The basic principle
To begin with, we will install OBS WebSocket which allows you to automatically launch a WebSocket server when the software is launched. It will then be possible to connect to this server in order to be informed of events that take place on the software or to send messages to perform certain actions.
An example: scene selector
To simplify the communication with the WebSocket server we are going to use the OBS WebSocket JS library which offers an API which greatly simplifies the communication.
To start, we connect to the WebSocket server.
const obs = new OBSWebsocket ();
await obs.connect ({address: "192.168.0.35:4444", password: "obscontrol"});
Once connected, you can send a message to the server to request the list of scenes. The server will then respond with a message that contains the list of our scenes and the associated sources. The bookstore takes care of this round trip via a promise.
const data = await obs.send ("GetSceneList");
You can then loop through all the scenes to generate one button per scene. A message will then be sent to request a change of scene when clicking on this button.
for (const scene of data.scenes) {
const button = document.createElement ("button");
button.innerText = scene.name;
button.addEventListener ("click", () => {
obs.send ("SetCurrentScene", {"scene-name": scene});
});
document.body.appendChild (button);
}
And There you go ! You can now switch scenes remotely.
For further
The example given here is rather simple but it is possible to do much more complex things.