THIS VERSION (5.0.0) DOES NOT USE THE SAME PROTOCOL AS PREVIOUS 4.X VERSIONS LIKE 4.9.1. ADDITIONALLY INSTALL `4.9.1-compat` (AVAILABLE BELOW) TO MAINTAIN 4.X PROTOCOL SUPPORT
Important Notes
- **Only use this release with OBS Studio 27.2.0 or above!**
Resources
- The protocol specification is available [here](https://github.com/Palakis/obs-websocket/blob/master/docs/generated/protocol.md)
- The [README](https://github.com/obsproject/obs-websocket#readme) has some software and libraries that support 5.0.0.
Changes since 4.x
There are way too many changes to list here, so I'll just summarize some of the highlights
UI
- The UI has gotten a full revamp.
- New "Session Table" which displays the remote address of all currently connected WebSocket clients.
- New "Connect Info" dialog, featuring the ability to copy the IP and password of the server, and also a QR code generator which can be scanned to connect to obs-websocket locally.
- Password authentication is enabled by default, and generates a secure password for you that you can copy. **We recommend always keeping authentication enabled, with a password generated by obs-websocket.**
Protocol
- **The default port for obs-websocket 5.x is now `4455`.
- The protocol has gotten a revamp, with many QOL improvements over the 4.x protocol. This is effectively a new protocol, so **applications designed to work only with 4.x versions will not work with 5.x versions.**
- See [here](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#design-goals) for the design goals regarding the 5.x protocol.
Requests
- Virtually anything possible in 4.x is possible in 5.x. If you are having trouble migrating your code to 5.x, you are invited to join the [Discord](https://discord.gg/WBaSQ3A) server and ask for guidance. We are also working on a migration guide which will be releasing soon.
- We added a new "vendor" API to obs-websocket, which allows third-party plugins to extend their plugin's functionality through obs-websocket requests and events. If you are an OBS plugin author, we invite you to explore this system as a means of adding further features to your plugins.
- We've already added this functionality to [obs-browser](https://github.com/obsproject/obs-browser/pull/340)
- A sample plugin c file with this feature can be found [here](https://github.com/obsproject/obs-websocket/blob/master/lib/example/simplest-plugin.c)
- Some new requests have been added for opening UI dialogs. This should have great adoption for people building macros.
- `OpenInputPropertiesDialog`
- `OpenInputFiltersDialog`
- `OpenInputInteractDialog`
- We've added [`Get/SetPersistentData`](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#getpersistentdata) to allow you to store custom JSON data on the machine where obs-websocket is running.
- You can now set OBS' video settings via [`Get/SetVideoSettings`.](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#getvideosettings)
- The ability to remove inputs (previously called sources) has finally been added.
- Limited support for groups has been added, but we recommend using nested scenes over groups when possible.
- You can now change the blend mode of scene items.
Request Batches
- [Request batches](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requestbatch-opcode-8) have gotten a bit of an overhaul.
- We've added a new [RequestBatchExecutionType](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requestbatchexecutiontype), allowing you to do things like execute requests in batches in-sync with video composition for things like animations.
- [Here](https://github.com/IRLToolkit/simpleobsws/blob/master/samples/sample_dvd_logo.py) is a Python sample from simpleobsws where the classic DVD bounce animation is recreated using SerialFrame request batches.
Events
- It's now possible to receive a stream of audio level updates by subscribing to the [`InputVolumeMeters` event.](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#inputvolumemeters)
- We've added the `CurrentSceneCollectionChanging` event which should be used as a signal to pause any outgoing requests to obs-websocket. Performing requests during a scene collection change is considered undefined behavior.
- More audio-related input events like `InputAudioBalanceChanged`.
Install instructions
Windows
- **Using the installer (recommended)** : download it, launch it and follow the instructions.
- Using the `obs-websocket-5.0.0-Windows.zip` archive : copy the contents of the archive to the root of your OBS Studio installation folder (`C:\Program Files\obs-studio`).
Debian / Ubuntu (64-bit)
Download `obs-websocket-5.0.0-Ubuntu64.deb` (provided below) and install it on your system.
macOS
Download `obs-websocket-5.0.0-macOS.pkg` and run it, following the instructions.
4.x compatability
We have also included binaries for a version of obs-websocket, `4.9.1-compat`. This can be run alongside 5.0.0 in OBS and can provide legacy support for the 4.x protocol.