Skip to content

obs-websocket 5.0.0-alpha3

Pre-release
Pre-release
Compare
Choose a tag to compare
@tt2468 tt2468 released this 29 Dec 10:47
· 366 commits to master since this release

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 event
  • InputVolumeMeters - Receive volume level updates of all active inputs every 50ms
  • CurrentSceneChanged -> 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 or SceneListReindexed.
    • This also returns the correct order to the scenes array.
  • 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 (was SceneItemReindexed)
  • Fixed the AuthRequired profile parameter name. (Was AuthRequred)
  • 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 in SetPersistentData

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.