Resource icon

obs-websocket - Remote control of OBS Studio made easy 4.7.0

Only use this release with OBS 23 or above!

Changed since 4.6.1
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Likes: 11rogelio57
Only use this release with OBS 23 or above!

4.6.1 Hotfix changes
  • Bugfix: TransitionBegin event not triggering at all
4.6.0 changes
  • Revamped WebSockets server: the WebSockets server backend was completely rewritten. Instead of Qt's WebSockets library, starting with 4.6 obs-websocket now uses websocketpp by zaphoyd. Other benefits include:
    • Requests are received and processed in a separate dedicated threads. The old server processed everything in the UI/main window thread.
    • Everything (main plugin + server dependencies) is now in a single binary file.
  • Server settings are now per-profile settings instead of global settings: the server is automatically started, stopped or restarted when switching profiles. New profiles inherit settings from the previously selected profile.
  • New request types:
    • TakeSourceScreenshot: take an image snapshot of a source (either an input or a scene) and save it straight to a file and/or receive it in the response as base64-encoded Data URI
    • SendCaptions (Windows/macOS only): send closed captions text to the streaming output. For instance, Twitch's player supports closed captions sent through SendCaptions
    • GetStats: provides most of the metrics found in OBS' Stats window.
    • GetVideoInfo: Fetch information about OBS' video output settings: base/canvas size and output size, pixel format, YUV settings, ...
  • New event types:
  • Feature: StreamStatus and Heartbeat events now include data from OBS' stats and a replay-buffer-active property (for StreamStatus)
  • Feature: GetSceneItemProperties and SetSceneItemProperties now have support for a locked property that allows users to lock or unlock a scene item and get its current lock state
  • Feature: the response from GetSceneItemProperties now includes width and height values computed from the item's base dimensions and current scaling settings.
  • Source and Scene Item events enhancements:
    • Source and Scene Item events will also be triggered for the current preview scene (in Studio Mode) and scenes not currently visible on program or preview
    • All scene item events now include an item-id property
    • SourceOrderChanged now includes a list of the reordered scene items
  • Fixed incompatibilites with Groups:
    • Scene Item requests can now target items nested in groups
    • Scene item data now includes two new properties:
      • parentGroupName on scene items that belong to a group
      • children on groups
  • Bugfix: crash on startup when the "port already in use" message shows up
  • Bugfix: error with SetSceneItemProperties when trying to set the bounds type of a scene item
  • Bugfix: plugin not loading on Ubuntu when installing through the .deb file (wrong plugin path)
  • Bugfix (docs): GetSourcesTypesList is supposed to be GetSourceTypesList
  • Docs: the Protocol Specification now includes type definitions that can be shared among several request types. These encourage reusing existing response formats, and allows obs-websocket-js to provide type definitions in their TypeScript bindings.
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Only use this release with OBS 23 or above!

4.6.0 release
  • Revamped WebSockets server: the WebSockets server backend was completely rewritten. Instead of Qt's WebSockets library, starting with 4.6 obs-websocket now uses websocketpp by zaphoyd. Other benefits include:
    • Requests are received and processed in a separate dedicated threads. The old server processed everything in the UI/main window thread.
    • Everything (main plugin + server dependencies) is now in a single binary file.
  • Server settings are now per-profile settings instead of global settings: the server is automatically started, stopped or restarted when switching profiles. New profiles inherit settings from the previously selected profile.
  • New request types:
    • TakeSourceScreenshot: take an image snapshot of a source (either an input or a scene) and save it straight to a file and/or receive it in the response as base64-encoded Data URI
    • SendCaptions (Windows/macOS only): send closed captions text to the streaming output. For instance, Twitch's player supports closed captions sent through SendCaptions
    • GetStats: provides most of the metrics found in OBS' Stats window.
    • GetVideoInfo: Fetch information about OBS' video output settings: base/canvas size and output size, pixel format, YUV settings, ...
  • New event types:
  • Feature: StreamStatus and Heartbeat events now include data from OBS' stats and a replay-buffer-active property (for StreamStatus)
  • Feature: GetSceneItemProperties and SetSceneItemProperties now have support for a locked property that allows users to lock or unlock a scene item and get its current lock state
  • Feature: the response from GetSceneItemProperties now includes width and height values computed from the item's base dimensions and current scaling settings.
  • Source and Scene Item events enhancements:
    • Source and Scene Item events will also be triggered for the current preview scene (in Studio Mode) and scenes not currently visible on program or preview
    • All scene item events now include an item-id property
    • SourceOrderChanged now includes a list of the reordered scene items
  • Fixed incompatibilites with Groups:
    • Scene Item requests can now target items nested in groups
    • Scene item data now includes two new properties:
      • parentGroupName on scene items that belong to a group
      • children on groups
  • Bugfix: crash on startup when the "port already in use" message shows up
  • Bugfix: error with SetSceneItemProperties when trying to set the bounds type of a scene item
  • Bugfix: plugin not loading on Ubuntu when installing through the .deb file (wrong plugin path)
  • Bugfix (docs): GetSourcesTypesList is supposed to be GetSourceTypesList
  • Docs: the Protocol Specification now includes type definitions that can be shared among several request types. These encourage reusing existing response formats, and allows obs-websocket-js to provide type definitions in their TypeScript bindings.
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Only use this release with OBS 22 or above!

4.5.1 bugfix release
  • Bugfix: plugin not loading on Ubuntu (misplaced binary)
  • Bugfix: improper control flow in filter management requests (missing return statements)
4.5.0 changes
  • New request types:
    • Filter management:
      • GetSourceFilters
      • AddFilterToSource
      • RemoveFilterFromSource
      • ReorderSourceFilter
      • MoveSourceFilter
      • SetSourceFilterSettings
    • Scene Items:
      • DeleteSceneItem
      • DuplicateSceneItem
      • ReorderSceneItems
    • Source settings:
      • GetTextFreetype2Properties
      • SetTextFreetype2Properties
  • Updated request types:
    • Breaking changes in GetTextGDIPlusProperties, SetTextGDIPlusProperties, GetBrowserSourceProperties and SetBrowserSourceProperties:
      • Removed the scene-name parameter: deemed useless on sources, which are independent from scenes
      • Removed the render request parameter and response property
    • GetVolume: fix typo in protocol specification (❎ mute ; ✔️ muted)
  • Refactored authentication code:
    • If you have authentication enabled and your current password doesn't work anymore, try setting it again.
  • macOS Bugfix: Qt version mismatch
  • Fixed various typos in the protocol specification
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Only use this release with OBS 22 or above!

Changes since 4.4.0
  • New request types:
    • Filter management:
      • GetSourceFilters
      • AddFilterToSource
      • RemoveFilterFromSource
      • ReorderSourceFilter
      • MoveSourceFilter
      • SetSourceFilterSettings
    • Scene Items:
      • DeleteSceneItem
      • DuplicateSceneItem
      • ReorderSceneItems
    • Source settings:
      • GetTextFreetype2Properties
      • SetTextFreetype2Properties
  • Updated request types:
    • Breaking changes in GetTextGDIPlusProperties, SetTextGDIPlusProperties, GetBrowserSourceProperties and SetBrowserSourceProperties:
      • Removed the scene-name parameter: deemed useless on sources, which are independent from scenes
      • Removed the render request parameter and response property
    • GetVolume: fix typo in protocol specification (❎ mute ; ✔️ muted)
  • Refactored authentication code:
    • If you have authentication enabled and your current password doesn't work anymore, try setting it again.
  • macOS Bugfix: Qt version mismatch
  • Fixed various typos in the protocol specification
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Only use this release with OBS 22 or above!

Changes since 4.3.3
  • TransitionBegin event: new from-scene and to-scene fields to provide source and destination scene names for the currently running transition
  • Bugfix: TransitionBegin event not triggering when using Transition Overrides
  • Improvement: better handling of "preview scene changed" events provided by libobs
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Changes since 4.3.2
  • [Windows only] Compatibility fixes for OBS Studio 21.1:
    • Compiler upgraded to Visual Studio 2015
    • Qt upgraded to 5.10.1
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Changes since 4.3.1
  • Crash on systray notifications when no systray is available (is the case on some minimal Linux desktops)
  • Passwords not saved properly (caused by bad string handling)
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Changes since 4.3
  • Bugfix: crash when switching between scene collections
Windows, Linux and macOS Install instructions: see the release page on GitHub.
Top