Everything You Need to Know About OBS WebSocket JS

If you’re a live streamer, you’re probably familiar with OBS (Open Broadcaster Software). It’s a free and open source software for video recording and live streaming. OBS is popular among content creators because of its flexibility and ease of use. However, you can take your live streaming experience to the next level by using OBS WebSocket JS.

What Is OBS WebSocket JS?

OBS WebSocket JS is a plugin for Open Broadcaster Software. It allows you to control OBS from external applications and scripts using a WebSocket API. With OBS WebSocket JS, you can automate your live streaming workflow and integrate OBS into your own applications.

How Does OBS WebSocket JS Work?

OBS WebSocket JS works by exposing an API over a WebSocket connection. You can send commands to OBS using this API, and OBS will execute them. For example, you can use the API to start and stop recording, switch between scenes, or change the properties of sources in real time. The WebSocket connection is bidirectional, which means OBS can also send messages back to your application.

Why Should You Use OBS WebSocket JS?

There are several reasons why you should consider using OBS WebSocket JS:

  1. Automation: With OBS WebSocket JS, you can automate repetitive tasks and simplify your live streaming workflow. For example, you can create a script that automatically starts and stops recording at specific times.
  2. Integration: If you’re building your own live streaming application, OBS WebSocket JS allows you to integrate OBS seamlessly. You can control OBS from your own application and display the output in your own UI.
  3. Real-time control: OBS WebSocket JS allows you to change the properties of sources in real time. This means you can create dynamic effects, such as changing the color of a source based on real-time data.

How to Install OBS WebSocket JS

Installing OBS WebSocket JS is simple. Here’s how:

  1. Download the latest release of the plugin from the OBS WebSocket JS GitHub repository.
  2. Extract the contents of the ZIP file to your OBS plugins directory. The default location is C:\Program Files\obs-studio\obs-plugins\64bit on Windows and /usr/share/obs/obs-plugins on Linux.
  3. Launch OBS and go to the “Tools” menu. You should see “WebSocket Server Settings” listed there.
  4. Click on “WebSocket Server Settings” and configure the settings to your liking. You can change the port number, set a password, and enable SSL encryption if you want.
  5. Restart OBS for the changes to take effect.

How to Use OBS WebSocket JS

To use OBS WebSocket JS, you’ll need to write some code. Here’s a basic example:

const OBSWebSocket = require('obs-websocket-js');

const obs = new OBSWebSocket();

obs.connect({ address: 'localhost:4444', password: 'secret' }).then(() => {console.log('Connected to OBS');return obs.send('GetCurrentScene');}).then(data => {console.log(`Current scene is ${data.name}`);}).catch(err => {console.error(err);});

This code connects to OBS using the default settings (localhost:4444 with no password), gets the current scene, and logs its name to the console. You can use the OBS WebSocket JS API to send any command supported by OBS. The full API reference is available on the OBS WebSocket JS GitHub page.

Best Practices for Using OBS WebSocket JS

Here are some best practices to keep in mind when using OBS WebSocket JS:

  • Security: Always set a password for the WebSocket server to prevent unauthorized access. If you’re using OBS WebSocket JS over the internet, consider enabling SSL encryption.
  • Error handling: Always handle errors and exceptions properly in your code. OBS WebSocket JS will throw an error if it can’t connect to OBS or if a command fails.
  • Performance: Be mindful of performance when sending commands to OBS. Sending too many commands too quickly can cause OBS to become unresponsive or crash. Use throttling or debouncing to limit the rate of commands.


What is OBS?

OBS (Open Broadcaster Software) is a free and open source software for video recording and live streaming.

What is a WebSocket?

A WebSocket is a protocol for bidirectional communication between a client and a server over a single TCP connection. It allows real-time data exchange between the client and server.

What programming languages are supported by OBS WebSocket JS?

OBS WebSocket JS is written in JavaScript and supports Node.js and browsers.

Can I use OBS WebSocket JS with other live streaming software?

No, OBS WebSocket JS is specifically designed for use with OBS.

Is OBS WebSocket JS free?

Yes, OBS WebSocket JS is free and open source software under the MIT license.

Can I contribute to OBS WebSocket JS?

Yes, contributions are welcome! You can contribute to OBS WebSocket JS by submitting bug reports, feature requests, or code changes on the GitHub repository.