diff --git a/docs/generated/protocol.json b/docs/generated/protocol.json index a1d1bc1c..f2fdb0b8 100644 --- a/docs/generated/protocol.json +++ b/docs/generated/protocol.json @@ -431,6 +431,67 @@ } ] }, + { + "enumType": "ObsMediaInputAction", + "enumIdentifiers": [ + { + "description": "No action.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NONE", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NONE" + }, + { + "description": "Play the media input.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PLAY", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PLAY" + }, + { + "description": "Pause the media input.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PAUSE", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PAUSE" + }, + { + "description": "Stop the media input.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_STOP", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_STOP" + }, + { + "description": "Restart the media input.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_RESTART", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_RESTART" + }, + { + "description": "Go to the next playlist item.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NEXT", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NEXT" + }, + { + "description": "Go to the previous playlist item.", + "enumIdentifier": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PREVIOUS", + "rpcVersion": 1, + "deprecated": true, + "initialVersion": "5.0.0", + "enumValue": "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PREVIOUS" + } + ] + }, { "enumType": "WebSocketCloseCode", "enumIdentifiers": [ @@ -1919,6 +1980,246 @@ ], "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`", + "requestType": "GetMediaInputStatus", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "media inputs", + "requestFields": [ + { + "valueName": "inputName", + "valueType": "String", + "valueDescription": "Name of the media input", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [ + { + "valueName": "mediaState", + "valueType": "String", + "valueDescription": "State of the media input" + }, + { + "valueName": "mediaDuration", + "valueType": "Number", + "valueDescription": "Total duration of the playing media in milliseconds. `null` if not playing" + }, + { + "valueName": "mediaCursor", + "valueType": "Number", + "valueDescription": "Position of the cursor in milliseconds. `null` if not playing" + } + ] + }, + { + "description": "Sets the cursor position of a media input.\n\nThis request does not perform bounds checking of the cursor position.", + "requestType": "SetMediaInputCursor", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "media inputs", + "requestFields": [ + { + "valueName": "inputName", + "valueType": "String", + "valueDescription": "Name of the media input", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + }, + { + "valueName": "mediaCursor", + "valueType": "Number", + "valueDescription": "New cursor position to set", + "valueRestrictions": ">= 0", + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [] + }, + { + "description": "Offsets the current cursor position of a media input by the specified value.\n\nThis request does not perform bounds checking of the cursor position.", + "requestType": "OffsetMediaInputCursor", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "media inputs", + "requestFields": [ + { + "valueName": "inputName", + "valueType": "String", + "valueDescription": "Name of the media input", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + }, + { + "valueName": "mediaCursorOffset", + "valueType": "Number", + "valueDescription": "Value to offset the current cursor position by", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [] + }, + { + "description": "Triggers an action on a media input.", + "requestType": "TriggerMediaInputAction", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "media inputs", + "requestFields": [ + { + "valueName": "inputName", + "valueType": "String", + "valueDescription": "Name of the media input", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + }, + { + "valueName": "mediaAction", + "valueType": "String", + "valueDescription": "Identifier of the `ObsMediaInputAction` enum", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [] + }, + { + "description": "Gets the status of the record output.", + "requestType": "GetRecordStatus", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [ + { + "valueName": "outputActive", + "valueType": "Boolean", + "valueDescription": "Whether the output is active" + }, + { + "valueName": "ouputPaused", + "valueType": "Boolean", + "valueDescription": "Whether the output is paused" + }, + { + "valueName": "outputTimecode", + "valueType": "String", + "valueDescription": "Current formatted timecode string for the output" + }, + { + "valueName": "outputDuration", + "valueType": "Number", + "valueDescription": "Current duration in milliseconds for the output" + }, + { + "valueName": "outputBytes", + "valueType": "Number", + "valueDescription": "Number of bytes sent by the output" + } + ] + }, + { + "description": "Toggles the status of the record output.", + "requestType": "ToggleRecord", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Starts the record output.", + "requestType": "StartRecord", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Stops the record output.", + "requestType": "StopRecord", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Toggles pause on the record output.", + "requestType": "ToggleRecordPause", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Pauses the record output.", + "requestType": "PauseRecord", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Resumes the record output.", + "requestType": "ResumeRecord", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [] + }, + { + "description": "Gets the current directory that the record output is set to.", + "requestType": "GetRecordDirectory", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "record", + "requestFields": [], + "responseFields": [ + { + "valueName": "recordDirectory", + "valueType": "String", + "valueDescription": "Output directory" + } + ] + }, { "description": "Gets a list of all scene items in a scene.\n\nScenes only", "requestType": "GetSceneItemList", @@ -2807,6 +3108,171 @@ "requestFields": [], "responseFields": [] }, + { + "description": "Gets an array of all available transition kinds.\n\nSimilar to `GetInputKindList`", + "requestType": "GetTransitionKindList", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [], + "responseFields": [ + { + "valueName": "transitionKinds", + "valueType": "Vector", + "valueDescription": "Array of transition kinds" + } + ] + }, + { + "description": "Gets an array of all scene transitions in OBS.", + "requestType": "GetSceneTransitionList", + "complexity": 3, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [], + "responseFields": [ + { + "valueName": "currentSceneTransitionName", + "valueType": "String", + "valueDescription": "Name of the current scene transition. Can be null" + }, + { + "valueName": "currentSceneTransitionKind", + "valueType": "String", + "valueDescription": "Kind of the current scene transition. Can be null" + }, + { + "valueName": "transitions", + "valueType": "Vector", + "valueDescription": "Array of transitions" + } + ] + }, + { + "description": "Gets information about the current scene transition.", + "requestType": "GetCurrentSceneTransition", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [], + "responseFields": [ + { + "valueName": "transitionName", + "valueType": "String", + "valueDescription": "Name of the transition" + }, + { + "valueName": "transitionKind", + "valueType": "String", + "valueDescription": "Kind of the transition" + }, + { + "valueName": "transitionFixed", + "valueType": "Boolean", + "valueDescription": "Whether the transition uses a fixed (unconfigurable) duration" + }, + { + "valueName": "transitionDuration", + "valueType": "Number", + "valueDescription": "Configured transition duration in milliseconds. `null` if transition is fixed" + }, + { + "valueName": "transitionConfigurable", + "valueType": "Boolean", + "valueDescription": "Whether the transition supports being configured" + }, + { + "valueName": "transitionSettings", + "valueType": "Object", + "valueDescription": "Object of settings for the transition. `null` if transition is not configurable" + } + ] + }, + { + "description": "Sets the current scene transition.\n\nSmall note: While the namespace of scene transitions is generally unique, that uniqueness is not a guarantee as it is with other resources like inputs.", + "requestType": "SetCurrentSceneTransition", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [ + { + "valueName": "transitionName", + "valueType": "String", + "valueDescription": "Name of the transition to make active", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [] + }, + { + "description": "Sets the duration of the current scene transition, if it is not fixed.", + "requestType": "SetCurrentSceneTransitionDuration", + "complexity": 2, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [ + { + "valueName": "transitionDuration", + "valueType": "Number", + "valueDescription": "Duration in milliseconds", + "valueRestrictions": ">= 50, <= 20000", + "valueOptional": false, + "valueOptionalBehavior": null + } + ], + "responseFields": [] + }, + { + "description": "Sets the settings of the current scene transition.", + "requestType": "SetCurrentSceneTransitionSettings", + "complexity": 3, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [ + { + "valueName": "transitionSettings", + "valueType": "Object", + "valueDescription": "Settings object to apply to the transition. Can be `{}`", + "valueRestrictions": null, + "valueOptional": false, + "valueOptionalBehavior": null + }, + { + "valueName": "overlay", + "valueType": "Boolean", + "valueDescription": "Whether to overlay over the current settings or replace them", + "valueRestrictions": null, + "valueOptional": true, + "valueOptionalBehavior": "true" + } + ], + "responseFields": [] + }, + { + "description": "Triggers the current scene transition. Same functionality as the `Transition` button in studio mode.", + "requestType": "TriggerStudioModeTransition", + "complexity": 1, + "rpcVersion": "1", + "deprecated": false, + "initialVersion": "5.0.0", + "category": "transitions", + "requestFields": [], + "responseFields": [] + }, { "description": "Gets whether studio is enabled.", "requestType": "GetStudioModeEnabled", diff --git a/docs/generated/protocol.md b/docs/generated/protocol.md index 84f52c2f..5a38cf50 100644 --- a/docs/generated/protocol.md +++ b/docs/generated/protocol.md @@ -1457,6 +1457,14 @@ The profile list has changed. - [SetInputAudioMonitorType](#setinputaudiomonitortype) - [GetInputPropertiesListPropertyItems](#getinputpropertieslistpropertyitems) - [PressInputPropertiesButton](#pressinputpropertiesbutton) +- [Transitions](#transitions) + - [GetTransitionKindList](#gettransitionkindlist) + - [GetSceneTransitionList](#getscenetransitionlist) + - [GetCurrentSceneTransition](#getcurrentscenetransition) + - [SetCurrentSceneTransition](#setcurrentscenetransition) + - [SetCurrentSceneTransitionDuration](#setcurrentscenetransitionduration) + - [SetCurrentSceneTransitionSettings](#setcurrentscenetransitionsettings) + - [TriggerStudioModeTransition](#triggerstudiomodetransition) - [Scene Items](#scene-items) - [GetSceneItemList](#getsceneitemlist) - [GetGroupItemList](#getgroupitemlist) @@ -1477,6 +1485,20 @@ The profile list has changed. - [ToggleStream](#togglestream) - [StartStream](#startstream) - [StopStream](#stopstream) +- [Record](#record) + - [GetRecordStatus](#getrecordstatus) + - [ToggleRecord](#togglerecord) + - [StartRecord](#startrecord) + - [StopRecord](#stoprecord) + - [ToggleRecordPause](#togglerecordpause) + - [PauseRecord](#pauserecord) + - [ResumeRecord](#resumerecord) + - [GetRecordDirectory](#getrecorddirectory) +- [Media Inputs](#media-inputs) + - [GetMediaInputStatus](#getmediainputstatus) + - [SetMediaInputCursor](#setmediainputcursor) + - [OffsetMediaInputCursor](#offsetmediainputcursor) + - [TriggerMediaInputAction](#triggermediainputaction) - [Ui](#ui) - [GetStudioModeEnabled](#getstudiomodeenabled) - [SetStudioModeEnabled](#setstudiomodeenabled) @@ -2625,6 +2647,131 @@ Note: Use this in cases where there is a button in the properties of an input th | propertyName | String | Name of the button property to press | None | N/A | +## Transitions + +### GetTransitionKindList + +Gets an array of all available transition kinds. + +Similar to `GetInputKindList` + +- Complexity Rating: `2/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Response Fields:** + +| Name | Type | Description | +| ---- | :---: | ----------- | +| transitionKinds | Vector<String> | Array of transition kinds | + +--- + +### GetSceneTransitionList + +Gets an array of all scene transitions in OBS. + +- Complexity Rating: `3/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Response Fields:** + +| Name | Type | Description | +| ---- | :---: | ----------- | +| currentSceneTransitionName | String | Name of the current scene transition. Can be null | +| currentSceneTransitionKind | String | Kind of the current scene transition. Can be null | +| transitions | Vector<Object> | Array of transitions | + +--- + +### GetCurrentSceneTransition + +Gets information about the current scene transition. + +- Complexity Rating: `2/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Response Fields:** + +| Name | Type | Description | +| ---- | :---: | ----------- | +| transitionName | String | Name of the transition | +| transitionKind | String | Kind of the transition | +| transitionFixed | Boolean | Whether the transition uses a fixed (unconfigurable) duration | +| transitionDuration | Number | Configured transition duration in milliseconds. `null` if transition is fixed | +| transitionConfigurable | Boolean | Whether the transition supports being configured | +| transitionSettings | Object | Object of settings for the transition. `null` if transition is not configurable | + +--- + +### SetCurrentSceneTransition + +Sets the current scene transition. + +Small note: While the namespace of scene transitions is generally unique, that uniqueness is not a guarantee as it is with other resources like inputs. + +- Complexity Rating: `2/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Request Fields:** + +| Name | Type | Description | Value Restrictions | ?Default Behavior | +| ---- | :---: | ----------- | :----------------: | ----------------- | +| transitionName | String | Name of the transition to make active | None | N/A | + +--- + +### SetCurrentSceneTransitionDuration + +Sets the duration of the current scene transition, if it is not fixed. + +- Complexity Rating: `2/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Request Fields:** + +| Name | Type | Description | Value Restrictions | ?Default Behavior | +| ---- | :---: | ----------- | :----------------: | ----------------- | +| transitionDuration | Number | Duration in milliseconds | >= 50, <= 20000 | N/A | + +--- + +### SetCurrentSceneTransitionSettings + +Sets the settings of the current scene transition. + +- Complexity Rating: `3/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Request Fields:** + +| Name | Type | Description | Value Restrictions | ?Default Behavior | +| ---- | :---: | ----------- | :----------------: | ----------------- | +| transitionSettings | Object | Settings object to apply to the transition. Can be `{}` | None | N/A | +| ?overlay | Boolean | Whether to overlay over the current settings or replace them | None | true | + +--- + +### TriggerStudioModeTransition + +Triggers the current scene transition. Same functionality as the `Transition` button in studio mode. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + ## Scene Items ### GetSceneItemList @@ -3036,6 +3183,200 @@ Stops the stream output. - Added in v5.0.0 +## Record + +### GetRecordStatus + +Gets the status of the record output. + +- Complexity Rating: `2/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Response Fields:** + +| Name | Type | Description | +| ---- | :---: | ----------- | +| outputActive | Boolean | Whether the output is active | +| ouputPaused | Boolean | Whether the output is paused | +| outputTimecode | String | Current formatted timecode string for the output | +| outputDuration | Number | Current duration in milliseconds for the output | +| outputBytes | Number | Number of bytes sent by the output | + +--- + +### ToggleRecord + +Toggles the status of the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### StartRecord + +Starts the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### StopRecord + +Stops the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### ToggleRecordPause + +Toggles pause on the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### PauseRecord + +Pauses the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### ResumeRecord + +Resumes the record output. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + +--- + +### GetRecordDirectory + +Gets the current directory that the record output is set to. + +- Complexity Rating: `1/5` +- Latest Supported RPC Version: `1` +- Added in v5.0.0 + + +**Response Fields:** + +| Name | Type | Description | +| ---- | :---: | ----------- | +| recordDirectory | String | Output directory | + + +## Media Inputs + +### GetMediaInputStatus + +Gets the status of a media input. + +Media States: +- `OBS_MEDIA_STATE_NONE` +- `OBS_MEDIA_STATE_PLAYING` +- `OBS_MEDIA_STATE_OPENING` +- `OBS_MEDIA_STATE_BUFFERING` +- `OBS_MEDIA_STATE_PAUSED` +- `OBS_MEDIA_STATE_STOPPED` +- `OBS_MEDIA_STATE_ENDED` +- `OBS_MEDIA_STATE_ERROR` + +- Complexity Rating: `2/5` +- 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 | +| ---- | :---: | ----------- | +| mediaState | String | State of the media input | +| mediaDuration | Number | Total duration of the playing media in milliseconds. `null` if not playing | +| mediaCursor | Number | Position of the cursor in milliseconds. `null` if not playing | + +--- + +### SetMediaInputCursor + +Sets the cursor position of a media input. + +This request does not perform bounds checking of the cursor position. + +- Complexity Rating: `2/5` +- 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 | +| mediaCursor | Number | New cursor position to set | >= 0 | N/A | + +--- + +### OffsetMediaInputCursor + +Offsets the current cursor position of a media input by the specified value. + +This request does not perform bounds checking of the cursor position. + +- Complexity Rating: `2/5` +- 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 | +| mediaCursorOffset | Number | Value to offset the current cursor position by | None | N/A | + +--- + +### TriggerMediaInputAction + +Triggers an action on a media input. + +- Complexity Rating: `2/5` +- 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 | +| mediaAction | String | Identifier of the `ObsMediaInputAction` enum | None | N/A | + + ## Ui ### GetStudioModeEnabled