obs-websocket 5.0.0
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
- The 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 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 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
- A sample plugin c file with this feature can be found here
- 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
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
. - 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 have gotten a bit of an overhaul.
- We've added a new RequestBatchExecutionType, allowing you to do things like execute requests in batches in-sync with video composition for things like animations.
- Here 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. - 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.