THIS IS A PRE-RELEASE. UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING, DOWNLOAD 4.9.1
Important Notes
- Only use this release with OBS Studio 27.1.3 or above.
- All plugin components have been finished, however there are some events and requests which have not yet been implemented. See the event and request sheets to find out what has been implemented.
Resources
- The protocol specification is available here
- The planned requests sheet is available here
- The planned events sheet is available here
- To aid developers, I've updated simpleobsws (a client library I maintain) for the latest 5.0.0 protocol spec. This should help with testing and as an implementation example. See the branch here
So what's going on?
As you may have noticed, we've moved to the OBS Project! The plan is to begin bundling obs-websocket with OBS Studio starting with version 28.0.0. Palakis and I have joined the OBS Project's core team as a result, which has significantly accelerated the development of new features for obs-websocket. Version 5.0.0 will still be released independently of OBS, but alongside version 27.2.
We expect to have at least 6 months between the official release of 5.0.0 and the bundling of obs-websocket into OBS, providing a fair amount of time to transition legacy 4.x applications to 5.x. Even after obs-websocket is bundled with OBS, it should still be possible to replace the obs-websocket binary file with a 4.x version to keep using 4.x.
Release plans:
The version being released today is probably roughly 90% feature-complete. As such, we expect the next pre-release version to be 5.0.0-beta1 (feature-complete release), after the OBS 27.2.0 beta is released. From there, it's just down to whatever bugs need fixing.
Changes since 5.0.0-alpha2
Warning: This may be incomplete
Implemented Requests:
GetSceneItemId
DuplicateSceneItem
GetSceneItemEnabled
SetSceneItemEnabled
GetSceneItemLocked
SetSceneItemLocked
GetSceneItemIndex
SetSceneItemIndex
GetSceneItemTransform
SetSceneItemTransform
GetRecordStatus
ToggleRecord
StartRecord
StopRecord
ToggleRecordPause
PauseRecord
ResumeRecord
GetMediaInputStatus
SetMediaInputCursor
OffsetMediaInputCursor
TriggerMediaInputAction
CallVendorRequest
- For calling a request registered by a vendor (plugin/script)GetTransitionKindList
GetSceneTransitionList
GetCurrentSceneTransition
SetCurrentSceneTransition
SetCurrentSceneTransitionDuration
SetCurrentSceneTransitionSettings
TriggerStudioModeTransition
Implemented Events:
SceneItemTransformChanged
VendorEvent
- A vendor emits a custom eventInputVolumeMeters
- Receive volume level updates of all active inputs every 50msCurrentSceneChanged
->CurrentProgramSceneChanged
Notable changes:
- This version actually has protocol docs now!
- Added request batch execution types. This opens a plethora of new ways to do cool things with OBS. See here for more details.
- Added "variables" support to request batches. This allows you to take a response field of one request and inject it as a request field into another request, all within the same batch.
- Added an external plugin/script API. This allows plugins/scripts to register requests/events with obs-websocket, to allow WebSocket clients to interact with them. See here
Additions/Enhancements:
- Removed groups from all scene list array returns. This must be updated on your end if you use
GetSceneList
orSceneListReindexed
.- This also returns the correct order to the
scenes
array.
- This also returns the correct order to the
- Removed the
ignoreNonFatalRequestChecks
session parameter. It was not effectively implemented and got in the way. May be re-added in the future. - Removed the
ignoreInvalidMessages
session parameter. There is not a foreseeable case where making obs-websocket less strict in this regard would lead to good results. - The Windows installer now will fail if OBS is not already installed
- The WebSocket server only restarts when it actually needs to (versus before when changing almost any setting would trigger a restart)
- Improved the random number generator used to generate passwords and keys
- Added the
Ui
event subscription - Added
ResourceCreationFailed
request status identifier - Added
ResourceNotConfigurable
request status identifier - Connect Info now updates the information on settings apply instead of closing the dialog
- Updated the Issue and PR templates to newer standards
- Added a 6 character minimum WebSoceket password length
- Implemented
haltOnFailure
for serial batch requests
Fixes:
- Fixed the name of
SceneItemListReindexed
(wasSceneItemReindexed
) - Fixed the
AuthRequired
profile parameter name. (WasAuthRequred
) - Fixed an issue where the server password would not generate automatically on first load
- Config changes
- Fixed WebSocket password is not generated if FirstLoad and overridden
- Save generated password immediately if FirstLoad
- Do not generate new password if FirstLoad and password already exists
- More logging
- Removed dependency on QtConcurrent. Thanks to micolous for the suggestion
- Fixed the validation of
slotValue
inSetPersistentData
Install instructions
Windows
- Using the installer (recommended, works only with combined 32/64-bit installations) : download it, launch it and follow the instructions.
- Using the
obs-websocket-5.0.0-alpha3-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-alpha3-Ubuntu64.deb
(provided below) and install it on your system.
macOS
MacOS binaries are not available as of the time of this release, but will likely be uploaded to this release at a later date. Please check back later.