diff --git a/docs/generated/protocol.json b/docs/generated/protocol.json index b2ffb6e4..bf7dd71d 100644 --- a/docs/generated/protocol.json +++ b/docs/generated/protocol.json @@ -2329,7 +2329,7 @@ "responseFields": [] }, { - "description": "Gets the audio monitor type of an input.\n\nThe available audio monitor types are:\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`", + "description": "Gets the audio monitor type of an input.\n\nThe available audio monitor types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`", "requestType": "GetInputAudioMonitorType", "complexity": 2, "rpcVersion": "1", @@ -2499,7 +2499,7 @@ "responseFields": [] }, { - "description": "Gets the status of a media input.\n\nMedia States:\n- `OBS_MEDIA_STATE_NONE`\n- `OBS_MEDIA_STATE_PLAYING`\n- `OBS_MEDIA_STATE_OPENING`\n- `OBS_MEDIA_STATE_BUFFERING`\n- `OBS_MEDIA_STATE_PAUSED`\n- `OBS_MEDIA_STATE_STOPPED`\n- `OBS_MEDIA_STATE_ENDED`\n- `OBS_MEDIA_STATE_ERROR`", + "description": "Gets the status of a media input.\n\nMedia States:\n\n- `OBS_MEDIA_STATE_NONE`\n- `OBS_MEDIA_STATE_PLAYING`\n- `OBS_MEDIA_STATE_OPENING`\n- `OBS_MEDIA_STATE_BUFFERING`\n- `OBS_MEDIA_STATE_PAUSED`\n- `OBS_MEDIA_STATE_STOPPED`\n- `OBS_MEDIA_STATE_ENDED`\n- `OBS_MEDIA_STATE_ERROR`", "requestType": "GetMediaInputStatus", "complexity": 2, "rpcVersion": "1", @@ -4746,7 +4746,7 @@ ] }, { - "description": "The monitor type of an input has changed.\n\nAvailable types are:\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`", + "description": "The monitor type of an input has changed.\n\nAvailable types are:\n\n- `OBS_MONITORING_TYPE_NONE`\n- `OBS_MONITORING_TYPE_MONITOR_ONLY`\n- `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT`", "eventType": "InputAudioMonitorTypeChanged", "eventSubscription": "Inputs", "complexity": 2, diff --git a/docs/generated/protocol.md b/docs/generated/protocol.md index 4e84ca0f..f6088964 100644 --- a/docs/generated/protocol.md +++ b/docs/generated/protocol.md @@ -1,30 +1,33 @@ - -# Main Table of Contents -- [obs-websocket 5.0.0 Protocol](#obs-websocket-500-protocol) - - [Connecting to obs-websocket](#connecting-to-obs-websocket) - - [Connection steps](#connection-steps) - - [Creating an authentication string](#creating-an-authentication-string) - - [Base message types](#message-types) - - [OpCode 0 Hello](#hello-opcode-0) - - [OpCode 1 Identify](#identify-opcode-1) - - [OpCode 2 Identified](#identified-opcode-2) - - [OpCode 3 Reidentify](#reidentify-opcode-3) - - [OpCode 5 Event](#event-opcode-5) - - [OpCode 6 Request](#request-opcode-6) - - [OpCode 7 RequestResponse](#requestresponse-opcode-7) - - [OpCode 8 RequestBatch](#requestbatch-opcode-8) - - [OpCode 9 RequestBatchResponse](#requestbatchresponse-opcode-9) -- [Enums](#enums) -- [Events](#events) -- [Requests](#requests) + # obs-websocket 5.0.0 Protocol +## Main Table of Contents + +- [General Intro](#general-intro) + - [Design Goals](#design-goals) +- [Connecting to obs-websocket](#connecting-to-obs-websocket) + - [Connection steps](#connection-steps) + - [Connection Notes](#connection-notes) + - [Creating an authentication string](#creating-an-authentication-string) +- [Message Types (OpCodes)](#message-types-opcodes) + - [Hello (OpCode 0)](#hello-opcode-0) + - [Identify (OpCode 1)](#identify-opcode-1) + - [Identified (OpCode 2)](#identified-opcode-2) + - [Reidentify (OpCode 3)](#reidentify-opcode-3) + - [Event (OpCode 5)](#event-opcode-5) + - [Request (OpCode 6)](#request-opcode-6) + - [RequestResponse (OpCode 7)](#requestresponse-opcode-7) + - [RequestBatch (OpCode 8)](#requestbatch-opcode-8) + - [RequestBatchResponse (OpCode 9)](#requestbatchresponse-opcode-9) + ## General Intro + obs-websocket provides a feature-rich RPC communication protocol, giving access to much of OBS's feature set. This document contains everything you should know in order to make a connection and use obs-websocket's functionality to the fullest. ### Design Goals + - Abstraction of identification, events, requests, and batch requests into dedicated message types - Conformity of request naming using similar terms like `Get`, `Set`, `Get[x]List`, `Start[x]`, `Toggle[x]` - Conformity of OBS data field names like `sourceName`, `sourceKind`, `sourceType`, `sceneName`, `sceneItemName` @@ -33,13 +36,14 @@ obs-websocket provides a feature-rich RPC communication protocol, giving access - PubSub system - Allow clients to specify which events they do or don't want to receive from OBS - RPC versioning - Client and server negotiate the latest version of the obs-websocket protocol to communicate with. - ## Connecting to obs-websocket + Here's info on how to connect to obs-websocket --- ### Connection steps + These steps should be followed precisely. Failure to connect to the server as instructed will likely result in your client being treated in an undefined way. - Initial HTTP request made to the obs-websocket server. @@ -66,6 +70,7 @@ These steps should be followed precisely. Failure to connect to the server as in - At any time after a client has been identified, it may send an [OpCode 3 `Reidentify`](#reidentify-opcode-3) message to update certain allowed session parameters. The server will respond in the same way it does during initial identification. #### Connection Notes + - If a binary frame is received when using the `obswebsocket.json` (default) subprotocol, or a text frame is received while using the `obswebsocket.msgpack` subprotocol, the connection is closed with `WebSocketCloseCode::MessageDecodeError`. - The obs-websocket server listens for any messages containing a `request-type` field in the first level JSON from unidentified clients. If a message matches, the connection is closed with `WebSocketCloseCode::UnsupportedRpcVersion` and a warning is logged. - If a message with a `messageType` is not recognized to the obs-websocket server, the connection is closed with `WebSocketCloseCode::UnknownOpCode`. @@ -74,11 +79,13 @@ These steps should be followed precisely. Failure to connect to the server as in --- ### Creating an authentication string + obs-websocket uses SHA256 to transmit authentication credentials. The server starts by sending an object in the `authentication` field of its `Hello` message data. The client processes the authentication challenge and responds via the `authentication` string in the `Identify` message data. For this guide, we'll be using `supersecretpassword` as the password. The `authentication` object in `Hello` looks like this (example): + ```json { "challenge": "+IxH4CnCiqpX1rM9scsNynZzbOe4KhDeYcTNS3PDaeY=", @@ -87,6 +94,7 @@ The `authentication` object in `Hello` looks like this (example): ``` To generate the authentication string, follow these steps: + - Concatenate the websocket password with the `salt` provided by the server (`password + salt`) - Generate an SHA256 binary hash of the result and base64 encode it, known as a base64 secret. - Concatenate the base64 secret with the `challenge` sent by the server (`base64_secret + challenge`) @@ -94,39 +102,45 @@ To generate the authentication string, follow these steps: For real-world examples of the `authentication` string creation, refer to the obs-websocket client libraries listed on the [README](README.md). - ## Message Types (OpCodes) -The following message types are the low-level message types which may be sent to and from obs-websocket. + +The following message types are the low-level message types which may be sent to and from obs-websocket. Messages sent from the obs-websocket server or client may contain these first-level fields, known as the base object: -``` + +```txt { "op": number, "d": object } ``` + - `op` is a `WebSocketOpCode` OpCode. - `d` is an object of the data fields associated with the operation. --- ### Hello (OpCode 0) + - Sent from: obs-websocket - Sent to: Freshly connected websocket client - Description: First message sent from the server immediately on client connection. Contains authentication information if auth is required. Also contains RPC version for version negotiation. **Data Keys:** -``` + +```txt { "obsWebSocketVersion": string, "rpcVersion": number, "authentication": object(optional) } ``` + - `rpcVersion` is a version number which gets incremented on each **breaking change** to the obs-websocket protocol. Its usage in this context is to provide the current rpc version that the server would like to use. **Example Messages:** Authentication is required + ```json { "op": 0, @@ -142,6 +156,7 @@ Authentication is required ``` Authentication is not required + ```json { "op": 0, @@ -155,22 +170,26 @@ Authentication is not required --- ### Identify (OpCode 1) + - Sent from: Freshly connected websocket client - Sent to: obs-websocket - Description: Response to `Hello` message, should contain authentication string if authentication is required, along with PubSub subscriptions and other session parameters. **Data Keys:** -``` + +```txt { "rpcVersion": number, "authentication": string(optional), "eventSubscriptions": number(optional) = (EventSubscription::All) } ``` + - `rpcVersion` is the version number that the client would like the obs-websocket server to use. - `eventSubscriptions` is a bitmask of `EventSubscriptions` items to subscribe to events and event categories at will. By default, all event categories are subscribed, except for events marked as high volume. High volume events must be explicitly subscribed to. **Example Message:** + ```json { "op": 1, @@ -185,19 +204,23 @@ Authentication is not required --- ### Identified (OpCode 2) + - Sent from: obs-websocket - Sent to: Freshly identified client - Description: The identify request was received and validated, and the connection is now ready for normal operation. **Data Keys:** -``` + +```txt { "negotiatedRpcVersion": number } ``` + - If rpc version negotiation succeeds, the server determines the RPC version to be used and gives it to the client as `negotiatedRpcVersion` **Example Message:** + ```json { "op": 2, @@ -210,36 +233,43 @@ Authentication is not required --- ### Reidentify (OpCode 3) + - Sent from: Identified client - Sent to: obs-websocket - Description: Sent at any time after initial identification to update the provided session parameters. **Data Keys:** -``` + +```txt { "eventSubscriptions": number(optional) = (EventSubscription::All) } ``` + - Only the listed parameters may be changed after initial identification. To change a parameter not listed, you must reconnect to the obs-websocket server. --- ### Event (OpCode 5) + - Sent from: obs-websocket - Sent to: All subscribed and identified clients - Description: An event coming from OBS has occured. Eg scene switched, source muted. **Data Keys:** -``` + +```txt { "eventType": string, "eventIntent": number, "eventData": object(optional) } ``` + - `eventIntent` is the original intent required to be subscribed to in order to receive the event. **Example Message:** + ```json { "op": 5, @@ -256,21 +286,24 @@ Authentication is not required --- ### Request (OpCode 6) + - Sent from: Identified client - Sent to: obs-websocket - Description: Client is making a request to obs-websocket. Eg get current scene, create source. **Data Keys:** -``` + +```txt { "requestType": string, "requestId": string, "requestData": object(optional), - + } ``` **Example Message:** + ```json { "op": 6, @@ -287,12 +320,14 @@ Authentication is not required --- ### RequestResponse (OpCode 7) + - Sent from: obs-websocket - Sent to: Identified client which made the request - Description: obs-websocket is responding to a request coming from a client. **Data Keys:** -``` + +```txt { "requestType": string, "requestId": string, @@ -300,22 +335,26 @@ Authentication is not required "responseData": object(optional) } ``` + - The `requestType` and `requestId` are simply mirrors of what was sent by the client. `requestStatus` object: -``` + +```txt { "result": bool, "code": number, "comment": string(optional) } ``` + - `result` is `true` if the request resulted in `RequestStatus::Success`. False if otherwise. - `code` is a `RequestStatus` code. - `comment` may be provided by the server on errors to offer further details on why a request failed. **Example Messages:** Successful Response + ```json { "op": 7, @@ -331,6 +370,7 @@ Successful Response ``` Failure Response + ```json { "op": 7, @@ -349,12 +389,14 @@ Failure Response --- ### RequestBatch (OpCode 8) + - Sent from: Identified client - Sent to: obs-websocket - Description: Client is making a batch of requests for obs-websocket. Requests are processed serially (in order) by the server. **Data Keys:** -``` + +```txt { "requestId": string, "haltOnFailure": bool(optional) = false, @@ -362,29 +404,33 @@ Failure Response "requests": array } ``` + - When `haltOnFailure` is `true`, the processing of requests will be halted on first failure. Returns only the processed requests in [`RequestBatchResponse`](#requestbatchresponse-opcode-9). - Requests in the `requests` array follow the same structure as the `Request` payload data format, however `requestId` is an optional field. --- ### RequestBatchResponse (OpCode 9) + - Sent from: obs-websocket - Sent to: Identified client which made the request - Description: obs-websocket is responding to a request batch coming from the client. **Data Keys:** -``` + +```txt { "requestId": string, "results": array } ``` - # Enums + These are enumeration declarations, which are referenced throughout obs-websocket's protocol. -### Enumerations Table of Contents +## Enumerations Table of Contents + - [WebSocketOpCode](#websocketopcode) - [WebSocketOpCode::Hello](#websocketopcodehello) - [WebSocketOpCode::Identify](#websocketopcodeidentify) @@ -467,7 +513,6 @@ These are enumeration declarations, which are referenced throughout obs-websocke - [EventSubscription::InputShowStateChanged](#eventsubscriptioninputshowstatechanged) - [EventSubscription::SceneItemTransformChanged](#eventsubscriptionsceneitemtransformchanged) - ## WebSocketOpCode ### WebSocketOpCode::Hello @@ -557,6 +602,7 @@ The message sent by obs-websocket in response to a particular batch of requests - Identifier Value: `9` - Latest Supported RPC Version: `1` - Added in v5.0.0 + ## WebSocketCloseCode ### WebSocketCloseCode::DontClose @@ -690,6 +736,7 @@ A requested feature is not supported due to hardware/software limitations. - Identifier Value: `4012` - Latest Supported RPC Version: `1` - Added in v5.0.0 + ## RequestBatchExecutionType ### RequestBatchExecutionType::None @@ -736,6 +783,7 @@ active processing, like `GetSourceScreenshot`. - Identifier Value: `2` - Latest Supported RPC Version: `1` - Added in v5.0.0 + ## RequestStatus ### RequestStatus::Unknown @@ -1075,6 +1123,7 @@ The combination of request fields cannot be used to perform an action. - Identifier Value: `703` - Latest Supported RPC Version: `1` - Added in v5.0.0 + ## EventSubscription ### EventSubscription::None @@ -1245,28 +1294,28 @@ Subscription value to receive the `SceneItemTransformChanged` high-volume event. - Latest Supported RPC Version: `1` - Added in v5.0.0 - # Events -### Events Table of Contents -- [General](#general) +## Events Table of Contents + +- [General Events](#general-events) - [ExitStarted](#exitstarted) - [VendorEvent](#vendorevent) -- [Config](#config) +- [Config Events](#config-events) - [CurrentSceneCollectionChanging](#currentscenecollectionchanging) - [CurrentSceneCollectionChanged](#currentscenecollectionchanged) - [SceneCollectionListChanged](#scenecollectionlistchanged) - [CurrentProfileChanging](#currentprofilechanging) - [CurrentProfileChanged](#currentprofilechanged) - [ProfileListChanged](#profilelistchanged) -- [Scenes](#scenes) +- [Scenes Events](#scenes-events) - [SceneCreated](#scenecreated) - [SceneRemoved](#sceneremoved) - [SceneNameChanged](#scenenamechanged) - [CurrentProgramSceneChanged](#currentprogramscenechanged) - [CurrentPreviewSceneChanged](#currentpreviewscenechanged) - [SceneListChanged](#scenelistchanged) -- [Inputs](#inputs) +- [Inputs Events](#inputs-events) - [InputCreated](#inputcreated) - [InputRemoved](#inputremoved) - [InputNameChanged](#inputnamechanged) @@ -1279,19 +1328,19 @@ Subscription value to receive the `SceneItemTransformChanged` high-volume event. - [InputAudioTracksChanged](#inputaudiotrackschanged) - [InputAudioMonitorTypeChanged](#inputaudiomonitortypechanged) - [InputVolumeMeters](#inputvolumemeters) -- [Transitions](#transitions) +- [Transitions Events](#transitions-events) - [CurrentSceneTransitionChanged](#currentscenetransitionchanged) - [CurrentSceneTransitionDurationChanged](#currentscenetransitiondurationchanged) - [SceneTransitionStarted](#scenetransitionstarted) - [SceneTransitionEnded](#scenetransitionended) - [SceneTransitionVideoEnded](#scenetransitionvideoended) -- [Filters](#filters) +- [Filters Events](#filters-events) - [SourceFilterListReindexed](#sourcefilterlistreindexed) - [SourceFilterCreated](#sourcefiltercreated) - [SourceFilterRemoved](#sourcefilterremoved) - [SourceFilterNameChanged](#sourcefilternamechanged) - [SourceFilterEnableStateChanged](#sourcefilterenablestatechanged) -- [Scene Items](#scene-items) +- [Scene Items Events](#scene-items-events) - [SceneItemCreated](#sceneitemcreated) - [SceneItemRemoved](#sceneitemremoved) - [SceneItemListReindexed](#sceneitemlistreindexed) @@ -1299,21 +1348,20 @@ Subscription value to receive the `SceneItemTransformChanged` high-volume event. - [SceneItemLockStateChanged](#sceneitemlockstatechanged) - [SceneItemSelected](#sceneitemselected) - [SceneItemTransformChanged](#sceneitemtransformchanged) -- [Outputs](#outputs) +- [Outputs Events](#outputs-events) - [StreamStateChanged](#streamstatechanged) - [RecordStateChanged](#recordstatechanged) - [ReplayBufferStateChanged](#replaybufferstatechanged) - [VirtualcamStateChanged](#virtualcamstatechanged) - [ReplayBufferSaved](#replaybuffersaved) -- [Media Inputs](#media-inputs) +- [Media Inputs Events](#media-inputs-events) - [MediaInputPlaybackStarted](#mediainputplaybackstarted) - [MediaInputPlaybackEnded](#mediainputplaybackended) - [MediaInputActionTriggered](#mediainputactiontriggered) -- [Ui](#ui) +- [Ui Events](#ui-events) - [StudioModeStateChanged](#studiomodestatechanged) - -## General +## General Events ### ExitStarted @@ -1336,7 +1384,6 @@ If a plugin or script implements vendor requests or events, documentation is exp - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1344,7 +1391,8 @@ If a plugin or script implements vendor requests or events, documentation is exp | vendorName | String | Name of the vendor emitting the event | | eventType | String | Vendor-provided event typedef | | eventData | Object | Vendor-provided event data. {} if event does not provide any data | -## Config + +## Config Events ### CurrentSceneCollectionChanging @@ -1357,7 +1405,6 @@ scene collection change is considered undefined behavior and can cause crashes! - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1376,7 +1423,6 @@ Note: If polling has been paused during `CurrentSceneCollectionChanging`, this i - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1393,7 +1439,6 @@ The scene collection list has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1410,7 +1455,6 @@ The current profile has begun changing. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1427,7 +1471,6 @@ The current profile has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1444,13 +1487,13 @@ The profile list has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | profiles | Array<String> | Updated list of profiles | -## Scenes + +## Scenes Events ### SceneCreated @@ -1460,7 +1503,6 @@ A new scene has been created. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1478,7 +1520,6 @@ A scene has been removed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1496,7 +1537,6 @@ The name of a scene has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1514,7 +1554,6 @@ The current program scene has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1531,7 +1570,6 @@ The current preview scene has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1550,13 +1588,13 @@ TODO: Make OBS fire this event when scenes are reordered. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | scenes | Array<Object> | Updated array of scenes | -## Inputs + +## Inputs Events ### InputCreated @@ -1566,7 +1604,6 @@ An input has been created. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1587,7 +1624,6 @@ An input has been removed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1604,7 +1640,6 @@ The name of an input has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1624,7 +1659,6 @@ When an input is active, it means it's being shown by the program feed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1644,7 +1678,6 @@ When an input is showing, it means it's being shown by the preview or a dialog. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1662,7 +1695,6 @@ An input's mute state has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1680,7 +1712,6 @@ An input's volume level has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1699,7 +1730,6 @@ The audio balance value of an input has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1717,7 +1747,6 @@ The sync offset of an input has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1735,7 +1764,6 @@ The audio tracks of an input have changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1750,6 +1778,7 @@ The audio tracks of an input have changed. The monitor type of an input has changed. Available types are: + - `OBS_MONITORING_TYPE_NONE` - `OBS_MONITORING_TYPE_MONITOR_ONLY` - `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT` @@ -1758,7 +1787,6 @@ Available types are: - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1776,13 +1804,13 @@ A high-volume event providing volume levels of all active inputs every 50 millis - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | inputs | Array<Object> | Array of active inputs with their associated volume levels | -## Transitions + +## Transitions Events ### CurrentSceneTransitionChanged @@ -1792,7 +1820,6 @@ The current scene transition has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1809,7 +1836,6 @@ The current scene transition duration has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1826,7 +1852,6 @@ A scene transition has started. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1845,7 +1870,6 @@ Note: Does not appear to trigger when the transition is interrupted by the user. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1867,13 +1891,13 @@ Note: Appears to be called by every transition, regardless of relevance. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | transitionName | String | Scene transition name | -## Filters + +## Filters Events ### SourceFilterListReindexed @@ -1883,7 +1907,6 @@ A source's filter list has been reindexed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1901,7 +1924,6 @@ A filter has been added to a source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1923,7 +1945,6 @@ A filter has been removed from a source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1941,7 +1962,6 @@ The name of a source filter has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1960,7 +1980,6 @@ A source filter's enable state has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -1968,7 +1987,8 @@ A source filter's enable state has changed. | sourceName | String | Name of the source the filter is on | | filterName | String | Name of the filter | | filterEnabled | Boolean | Whether the filter is enabled | -## Scene Items + +## Scene Items Events ### SceneItemCreated @@ -1978,7 +1998,6 @@ A scene item has been created. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2000,7 +2019,6 @@ This event is not emitted when the scene the item is in is removed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2019,7 +2037,6 @@ A scene's item list has been reindexed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2037,7 +2054,6 @@ A scene item's enable state has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2056,7 +2072,6 @@ A scene item's lock state has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2075,7 +2090,6 @@ A scene item has been selected in the Ui. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2093,7 +2107,6 @@ The transform/crop of a scene item has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2101,7 +2114,8 @@ The transform/crop of a scene item has changed. | sceneName | String | The name of the scene the item is in | | sceneItemId | Number | Numeric ID of the scene item | | sceneItemTransform | Object | New transform/crop info of the scene item | -## Outputs + +## Outputs Events ### StreamStateChanged @@ -2111,7 +2125,6 @@ The state of the stream output has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2129,7 +2142,6 @@ The state of the record output has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2147,7 +2159,6 @@ The state of the replay buffer output has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2165,7 +2176,6 @@ The state of the virtualcam output has changed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2183,13 +2193,13 @@ The replay buffer has been saved. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | savedReplayPath | String | Path of the saved replay file | -## Media Inputs + +## Media Inputs Events ### MediaInputPlaybackStarted @@ -2199,7 +2209,6 @@ A media input has started playing. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2216,7 +2225,6 @@ A media input has finished playing. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | @@ -2233,14 +2241,14 @@ An action has been performed on an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | inputName | String | Name of the input | | mediaAction | String | Action performed on the input. See `ObsMediaInputAction` enum | -## Ui + +## Ui Events ### StudioModeStateChanged @@ -2250,18 +2258,17 @@ Studio mode has been enabled or disabled. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Data Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | studioModeEnabled | Boolean | True == Enabled, False == Disabled | - # Requests -### Requests Table of Contents -- [General](#general-1) +## Requests Table of Contents + +- [General Requests](#general-1-requests) - [GetVersion](#getversion) - [GetStats](#getstats) - [BroadcastCustomEvent](#broadcastcustomevent) @@ -2270,7 +2277,7 @@ Studio mode has been enabled or disabled. - [TriggerHotkeyByName](#triggerhotkeybyname) - [TriggerHotkeyByKeySequence](#triggerhotkeybykeysequence) - [Sleep](#sleep) -- [Config](#config-1) +- [Config Requests](#config-1-requests) - [GetPersistentData](#getpersistentdata) - [SetPersistentData](#setpersistentdata) - [GetSceneCollectionList](#getscenecollectionlist) @@ -2286,11 +2293,11 @@ Studio mode has been enabled or disabled. - [SetVideoSettings](#setvideosettings) - [GetStreamServiceSettings](#getstreamservicesettings) - [SetStreamServiceSettings](#setstreamservicesettings) -- [Sources](#sources) +- [Sources Requests](#sources-requests) - [GetSourceActive](#getsourceactive) - [GetSourceScreenshot](#getsourcescreenshot) - [SaveSourceScreenshot](#savesourcescreenshot) -- [Scenes](#scenes-1) +- [Scenes Requests](#scenes-1-requests) - [GetSceneList](#getscenelist) - [GetGroupList](#getgrouplist) - [GetCurrentProgramScene](#getcurrentprogramscene) @@ -2302,7 +2309,7 @@ Studio mode has been enabled or disabled. - [SetSceneName](#setscenename) - [GetSceneSceneTransitionOverride](#getscenescenetransitionoverride) - [SetSceneSceneTransitionOverride](#setscenescenetransitionoverride) -- [Inputs](#inputs-1) +- [Inputs Requests](#inputs-1-requests) - [GetInputList](#getinputlist) - [GetInputKindList](#getinputkindlist) - [GetSpecialInputs](#getspecialinputs) @@ -2327,7 +2334,7 @@ Studio mode has been enabled or disabled. - [SetInputAudioTracks](#setinputaudiotracks) - [GetInputPropertiesListPropertyItems](#getinputpropertieslistpropertyitems) - [PressInputPropertiesButton](#pressinputpropertiesbutton) -- [Transitions](#transitions-1) +- [Transitions Requests](#transitions-1-requests) - [GetTransitionKindList](#gettransitionkindlist) - [GetSceneTransitionList](#getscenetransitionlist) - [GetCurrentSceneTransition](#getcurrentscenetransition) @@ -2337,7 +2344,7 @@ Studio mode has been enabled or disabled. - [GetCurrentSceneTransitionCursor](#getcurrentscenetransitioncursor) - [TriggerStudioModeTransition](#triggerstudiomodetransition) - [SetTBarPosition](#settbarposition) -- [Filters](#filters-1) +- [Filters Requests](#filters-1-requests) - [GetSourceFilterList](#getsourcefilterlist) - [GetSourceFilterDefaultSettings](#getsourcefilterdefaultsettings) - [CreateSourceFilter](#createsourcefilter) @@ -2347,7 +2354,7 @@ Studio mode has been enabled or disabled. - [SetSourceFilterIndex](#setsourcefilterindex) - [SetSourceFilterSettings](#setsourcefiltersettings) - [SetSourceFilterEnabled](#setsourcefilterenabled) -- [Scene Items](#scene-items-1) +- [Scene Items Requests](#scene-items-1-requests) - [GetSceneItemList](#getsceneitemlist) - [GetGroupItemList](#getgroupitemlist) - [GetSceneItemId](#getsceneitemid) @@ -2364,7 +2371,7 @@ Studio mode has been enabled or disabled. - [SetSceneItemIndex](#setsceneitemindex) - [GetSceneItemBlendMode](#getsceneitemblendmode) - [SetSceneItemBlendMode](#setsceneitemblendmode) -- [Outputs](#outputs-1) +- [Outputs Requests](#outputs-1-requests) - [GetVirtualCamStatus](#getvirtualcamstatus) - [ToggleVirtualCam](#togglevirtualcam) - [StartVirtualCam](#startvirtualcam) @@ -2375,13 +2382,13 @@ Studio mode has been enabled or disabled. - [StopReplayBuffer](#stopreplaybuffer) - [SaveReplayBuffer](#savereplaybuffer) - [GetLastReplayBufferReplay](#getlastreplaybufferreplay) -- [Stream](#stream) +- [Stream Requests](#stream-requests) - [GetStreamStatus](#getstreamstatus) - [ToggleStream](#togglestream) - [StartStream](#startstream) - [StopStream](#stopstream) - [SendStreamCaption](#sendstreamcaption) -- [Record](#record) +- [Record Requests](#record-requests) - [GetRecordStatus](#getrecordstatus) - [ToggleRecord](#togglerecord) - [StartRecord](#startrecord) @@ -2389,12 +2396,12 @@ Studio mode has been enabled or disabled. - [ToggleRecordPause](#togglerecordpause) - [PauseRecord](#pauserecord) - [ResumeRecord](#resumerecord) -- [Media Inputs](#media-inputs-1) +- [Media Inputs Requests](#media-inputs-1-requests) - [GetMediaInputStatus](#getmediainputstatus) - [SetMediaInputCursor](#setmediainputcursor) - [OffsetMediaInputCursor](#offsetmediainputcursor) - [TriggerMediaInputAction](#triggermediainputaction) -- [Ui](#ui-1) +- [Ui Requests](#ui-1-requests) - [GetStudioModeEnabled](#getstudiomodeenabled) - [SetStudioModeEnabled](#setstudiomodeenabled) - [OpenInputPropertiesDialog](#openinputpropertiesdialog) @@ -2402,10 +2409,7 @@ Studio mode has been enabled or disabled. - [OpenInputInteractDialog](#openinputinteractdialog) - [GetMonitorList](#getmonitorlist) - - - -## General +## General Requests ### GetVersion @@ -2415,7 +2419,6 @@ Gets data about the current plugin and RPC version. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2438,7 +2441,6 @@ Gets statistics about OBS, obs-websocket, and the current session. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2465,7 +2467,6 @@ Broadcasts a `CustomEvent` to all WebSocket clients. Receivers are clients which - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2485,7 +2486,6 @@ If a plugin or script implements vendor requests or events, documentation is exp - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2494,7 +2494,6 @@ If a plugin or script implements vendor requests or events, documentation is exp | requestType | String | The request type to call | None | N/A | | ?requestData | Object | Object containing appropriate request data | None | {} | - **Response Fields:** | Name | Type | Description | @@ -2511,7 +2510,6 @@ Gets an array of all hotkey names in OBS - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2528,7 +2526,6 @@ Triggers a hotkey using its name. See `GetHotkeyList` - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2545,7 +2542,6 @@ Triggers a hotkey using a sequence of keys. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2567,7 +2563,6 @@ Sleeps for a time duration or number of frames. Only available in request batche - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2575,8 +2570,7 @@ Sleeps for a time duration or number of frames. Only available in request batche | sleepMillis | Number | Number of milliseconds to sleep for (if `SERIAL_REALTIME` mode) | >= 0, <= 50000 | N/A | | sleepFrames | Number | Number of frames to sleep for (if `SERIAL_FRAME` mode) | >= 0, <= 10000 | N/A | - -## Config +## Config Requests ### GetPersistentData @@ -2586,7 +2580,6 @@ Gets the value of a "slot" from the selected persistent data realm. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2594,7 +2587,6 @@ Gets the value of a "slot" from the selected persistent data realm. | realm | String | The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE` | None | N/A | | slotName | String | The name of the slot to retrieve data from | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -2611,7 +2603,6 @@ Sets the value of a "slot" from the selected persistent data realm. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2630,7 +2621,6 @@ Gets an array of all scene collections - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2650,7 +2640,6 @@ Note: This will block until the collection has finished changing. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2669,7 +2658,6 @@ Note: This will block until the collection has finished changing. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2686,7 +2674,6 @@ Gets an array of all profiles - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2704,7 +2691,6 @@ Switches to a profile. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2721,7 +2707,6 @@ Creates a new profile, switching to it in the process - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2738,7 +2723,6 @@ Removes a profile. If the current profile is chosen, it will change to a differe - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2755,7 +2739,6 @@ Gets a parameter from the current profile's configuration. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2763,7 +2746,6 @@ Gets a parameter from the current profile's configuration. | parameterCategory | String | Category of the parameter to get | None | N/A | | parameterName | String | Name of the parameter to get | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -2781,7 +2763,6 @@ Sets the value of a parameter in the current profile's configuration. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2802,7 +2783,6 @@ Note: To get the true FPS value, divide the FPS numerator by the FPS denominator - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2826,7 +2806,6 @@ Note: Fields must be specified in pairs. For example, you cannot set only `baseW - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2848,7 +2827,6 @@ Gets the current stream service settings (stream destination). - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -2868,7 +2846,6 @@ Note: Simple RTMP settings can be set with type `rtmp_custom` and the settings f - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2876,8 +2853,7 @@ Note: Simple RTMP settings can be set with type `rtmp_custom` and the settings f | streamServiceType | String | Type of stream service to apply. Example: `rtmp_common` or `rtmp_custom` | None | N/A | | streamServiceSettings | Object | Settings to apply to the service | None | N/A | - -## Sources +## Sources Requests ### GetSourceActive @@ -2889,14 +2865,12 @@ Gets the active and show state of a source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | sourceName | String | Name of the source to get the active state of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -2919,7 +2893,6 @@ If `imageWidth` and `imageHeight` are not specified, the compressed image will u - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2930,7 +2903,6 @@ If `imageWidth` and `imageHeight` are not specified, the compressed image will u | ?imageHeight | Number | Height to scale the screenshot to | >= 8, <= 4096 | Source value is used | | ?imageCompressionQuality | Number | Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use "default" (whatever that means, idk) | >= -1, <= 100 | -1 | - **Response Fields:** | Name | Type | Description | @@ -2952,7 +2924,6 @@ If `imageWidth` and `imageHeight` are not specified, the compressed image will u - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -2964,15 +2935,13 @@ If `imageWidth` and `imageHeight` are not specified, the compressed image will u | ?imageHeight | Number | Height to scale the screenshot to | >= 8, <= 4096 | Source value is used | | ?imageCompressionQuality | Number | Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use "default" (whatever that means, idk) | >= -1, <= 100 | -1 | - **Response Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | imageData | String | Base64-encoded screenshot | - -## Scenes +## Scenes Requests ### GetSceneList @@ -2982,7 +2951,6 @@ Gets an array of all scenes in OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3003,7 +2971,6 @@ Groups in OBS are actually scenes, but renamed and modified. In obs-websocket, w - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3020,7 +2987,6 @@ Gets the current program scene. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3037,7 +3003,6 @@ Sets the current program scene. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3056,7 +3021,6 @@ Only available when studio mode is enabled. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3075,7 +3039,6 @@ Only available when studio mode is enabled. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3092,7 +3055,6 @@ Creates a new scene in OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3109,7 +3071,6 @@ Removes a scene from OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3126,7 +3087,6 @@ Sets the name of a scene (rename). - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3144,14 +3104,12 @@ Gets the scene transition overridden for a scene. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | sceneName | String | Name of the scene | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3169,7 +3127,6 @@ Gets the scene transition overridden for a scene. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3178,8 +3135,7 @@ Gets the scene transition overridden for a scene. | ?transitionName | String | Name of the scene transition to use as override. Specify `null` to remove | None | Unchanged | | ?transitionDuration | Number | Duration to use for any overridden transition. Specify `null` to remove | >= 50, <= 20000 | Unchanged | - -## Inputs +## Inputs Requests ### GetInputList @@ -3189,14 +3145,12 @@ Gets an array of all inputs in OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | ?inputKind | String | Restrict the array to only inputs of the specified kind | None | All kinds included | - **Response Fields:** | Name | Type | Description | @@ -3213,14 +3167,12 @@ Gets an array of all available input kinds in OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | ?unversioned | Boolean | True == Return all kinds as unversioned, False == Return with version suffixes (if available) | None | false | - **Response Fields:** | Name | Type | Description | @@ -3237,7 +3189,6 @@ Gets the names of all special inputs. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3259,7 +3210,6 @@ Creates a new input, adding it as a scene item to the specified scene. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3270,7 +3220,6 @@ Creates a new input, adding it as a scene item to the specified scene. | ?inputSettings | Object | Settings object to initialize the input with | None | Default settings used | | ?sceneItemEnabled | Boolean | Whether to set the created scene item to enabled or disabled | None | True | - **Response Fields:** | Name | Type | Description | @@ -3289,7 +3238,6 @@ Note: Will immediately remove all associated scene items. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3306,7 +3254,6 @@ Sets the name of an input (rename). - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3324,14 +3271,12 @@ Gets the default settings for an input kind. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputKind | String | Input kind to get the default settings for | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3350,14 +3295,12 @@ Note: Does not include defaults. To create the entire settings object, overlay ` - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to get the settings of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3375,7 +3318,6 @@ Sets the settings of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3394,14 +3336,12 @@ Gets the audio mute state of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of input to get the mute state of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3418,7 +3358,6 @@ Sets the audio mute state of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3436,14 +3375,12 @@ Toggles the audio mute state of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to toggle the mute state of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3460,14 +3397,12 @@ Gets the current volume setting of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to get the volume of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3485,7 +3420,6 @@ Sets the volume setting of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3504,14 +3438,12 @@ Gets the audio balance of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to get the audio balance of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3528,7 +3460,6 @@ Sets the audio balance of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3548,14 +3479,12 @@ Note: The audio sync offset can be negative too! - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to get the audio sync offset of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3572,7 +3501,6 @@ Sets the audio sync offset of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3587,6 +3515,7 @@ Sets the audio sync offset of an input. Gets the audio monitor type of an input. The available audio monitor types are: + - `OBS_MONITORING_TYPE_NONE` - `OBS_MONITORING_TYPE_MONITOR_ONLY` - `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT` @@ -3595,14 +3524,12 @@ The available audio monitor types are: - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input to get the audio monitor type of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3619,7 +3546,6 @@ Sets the audio monitor type of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3637,14 +3563,12 @@ Gets the enable state of all audio tracks of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the input | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3661,7 +3585,6 @@ Sets the enable state of audio tracks of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3681,7 +3604,6 @@ Note: Use this in cases where an input provides a dynamic, selectable list of it - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3689,7 +3611,6 @@ Note: Use this in cases where an input provides a dynamic, selectable list of it | inputName | String | Name of the input | None | N/A | | propertyName | String | Name of the list property to get the items of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3708,7 +3629,6 @@ Note: Use this in cases where there is a button in the properties of an input th - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3716,8 +3636,7 @@ Note: Use this in cases where there is a button in the properties of an input th | inputName | String | Name of the input | None | N/A | | propertyName | String | Name of the button property to press | None | N/A | - -## Transitions +## Transitions Requests ### GetTransitionKindList @@ -3729,7 +3648,6 @@ Similar to `GetInputKindList` - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3746,7 +3664,6 @@ Gets an array of all scene transitions in OBS. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3765,7 +3682,6 @@ Gets information about the current scene transition. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3789,7 +3705,6 @@ Small note: While the namespace of scene transitions is generally unique, that u - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3806,7 +3721,6 @@ Sets the duration of the current scene transition, if it is not fixed. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3823,7 +3737,6 @@ Sets the settings of the current scene transition. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3843,7 +3756,6 @@ Note: `transitionCursor` will return 1.0 when the transition is inactive. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -3872,7 +3784,6 @@ Sets the position of the TBar. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3880,8 +3791,7 @@ Sets the position of the TBar. | position | Number | New position | >= 0.0, <= 1.0 | N/A | | ?release | Boolean | Whether to release the TBar. Only set `false` if you know that you will be sending another position update | None | `true` | - -## Filters +## Filters Requests ### GetSourceFilterList @@ -3891,14 +3801,12 @@ Gets an array of all of a source's filters. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | sourceName | String | Name of the source | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3915,14 +3823,12 @@ Gets the default settings for a filter kind. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | filterKind | String | Filter kind to get the default settings for | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -3939,7 +3845,6 @@ Creates a new filter, adding it to the specified source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3959,7 +3864,6 @@ Removes a filter from a source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3977,7 +3881,6 @@ Sets the name of a source filter (rename). - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -3996,7 +3899,6 @@ Gets the info for a specific source filter. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4004,7 +3906,6 @@ Gets the info for a specific source filter. | sourceName | String | Name of the source | None | N/A | | filterName | String | Name of the filter | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -4024,7 +3925,6 @@ Sets the index position of a filter on a source. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4043,7 +3943,6 @@ Sets the settings of a source filter. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4063,7 +3962,6 @@ Sets the enable state of a source filter. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4072,8 +3970,7 @@ Sets the enable state of a source filter. | filterName | String | Name of the filter | None | N/A | | filterEnabled | Boolean | New enable state of the filter | None | N/A | - -## Scene Items +## Scene Items Requests ### GetSceneItemList @@ -4085,14 +3982,12 @@ Scenes only - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | sceneName | String | Name of the scene to get the items of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -4113,14 +4008,12 @@ Groups only - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | sceneName | String | Name of the group to get the items of | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -4139,7 +4032,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4148,7 +4040,6 @@ Scenes and Groups | sourceName | String | Name of the source to find | None | N/A | | ?searchOffset | Number | Number of matches to skip during search. >= 0 means first forward. -1 means last (top) item | >= -1 | 0 | - **Response Fields:** | Name | Type | Description | @@ -4167,7 +4058,6 @@ Scenes only - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4176,7 +4066,6 @@ Scenes only | sourceName | String | Name of the source to add to the scene | None | N/A | | ?sceneItemEnabled | Boolean | Enable state to apply to the scene item on creation | None | True | - **Response Fields:** | Name | Type | Description | @@ -4195,7 +4084,6 @@ Scenes only - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4215,7 +4103,6 @@ Scenes only - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4224,7 +4111,6 @@ Scenes only | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | | ?destinationSceneName | String | Name of the scene to create the duplicated item in | None | `sceneName` is assumed | - **Response Fields:** | Name | Type | Description | @@ -4243,7 +4129,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4251,7 +4136,6 @@ Scenes and Groups | sceneName | String | Name of the scene the item is in | None | N/A | | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | - **Response Fields:** | Name | Type | Description | @@ -4268,7 +4152,6 @@ Sets the transform and crop info of a scene item. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4289,7 +4172,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4297,7 +4179,6 @@ Scenes and Groups | sceneName | String | Name of the scene the item is in | None | N/A | | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | - **Response Fields:** | Name | Type | Description | @@ -4316,7 +4197,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4337,7 +4217,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4345,7 +4224,6 @@ Scenes and Groups | sceneName | String | Name of the scene the item is in | None | N/A | | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | - **Response Fields:** | Name | Type | Description | @@ -4364,7 +4242,6 @@ Scenes and Group - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4387,7 +4264,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4395,7 +4271,6 @@ Scenes and Groups | sceneName | String | Name of the scene the item is in | None | N/A | | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | - **Response Fields:** | Name | Type | Description | @@ -4414,7 +4289,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4445,7 +4319,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4453,7 +4326,6 @@ Scenes and Groups | sceneName | String | Name of the scene the item is in | None | N/A | | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | - **Response Fields:** | Name | Type | Description | @@ -4472,7 +4344,6 @@ Scenes and Groups - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4481,8 +4352,7 @@ Scenes and Groups | sceneItemId | Number | Numeric ID of the scene item | >= 0 | N/A | | sceneItemBlendMode | String | New blend mode | None | N/A | - -## Outputs +## Outputs Requests ### GetVirtualCamStatus @@ -4492,7 +4362,6 @@ Gets the status of the virtualcam output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4509,7 +4378,6 @@ Toggles the state of the virtualcam output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4546,7 +4414,6 @@ Gets the status of the replay buffer output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4563,7 +4430,6 @@ Toggles the state of the replay buffer output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4610,15 +4476,13 @@ Gets the filename of the last replay buffer save file. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | savedReplayPath | String | File path | - -## Stream +## Stream Requests ### GetStreamStatus @@ -4628,7 +4492,6 @@ Gets the status of the stream output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4651,7 +4514,6 @@ Toggles the status of the stream output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4688,15 +4550,13 @@ Sends CEA-608 caption text over the stream output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | captionText | String | Caption text | None | N/A | - -## Record +## Record Requests ### GetRecordStatus @@ -4706,7 +4566,6 @@ Gets the status of the record output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4777,14 +4636,14 @@ Resumes the record output. - Latest Supported RPC Version: `1` - Added in v5.0.0 - -## Media Inputs +## Media Inputs Requests ### GetMediaInputStatus Gets the status of a media input. Media States: + - `OBS_MEDIA_STATE_NONE` - `OBS_MEDIA_STATE_PLAYING` - `OBS_MEDIA_STATE_OPENING` @@ -4798,14 +4657,12 @@ Media States: - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | | ---- | :---: | ----------- | :----------------: | ----------------- | | inputName | String | Name of the media input | None | N/A | - **Response Fields:** | Name | Type | Description | @@ -4826,7 +4683,6 @@ This request does not perform bounds checking of the cursor position. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4846,7 +4702,6 @@ This request does not perform bounds checking of the cursor position. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4864,7 +4719,6 @@ Triggers an action on a media input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4872,8 +4726,7 @@ Triggers an action on a media input. | inputName | String | Name of the media input | None | N/A | | mediaAction | String | Identifier of the `ObsMediaInputAction` enum | None | N/A | - -## Ui +## Ui Requests ### GetStudioModeEnabled @@ -4883,7 +4736,6 @@ Gets whether studio is enabled. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | @@ -4900,7 +4752,6 @@ Enables or disables studio mode - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4917,7 +4768,6 @@ Opens the properties dialog of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4934,7 +4784,6 @@ Opens the filters dialog of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4951,7 +4800,6 @@ Opens the interact dialog of an input. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Request Fields:** | Name | Type | Description | Value Restrictions | ?Default Behavior | @@ -4968,11 +4816,8 @@ Gets a list of connected monitors and information about them. - Latest Supported RPC Version: `1` - Added in v5.0.0 - **Response Fields:** | Name | Type | Description | | ---- | :---: | ----------- | | monitors | Array<Object> | a list of detected monitors with some information | - -