diff --git a/obs-websocket-dotnet/obs-websocket-dotnet.csproj b/obs-websocket-dotnet/obs-websocket-dotnet.csproj index b6fd8cc..160c6a9 100644 --- a/obs-websocket-dotnet/obs-websocket-dotnet.csproj +++ b/obs-websocket-dotnet/obs-websocket-dotnet.csproj @@ -28,7 +28,7 @@ What's new in v5.0.0.3 - E:\Projects\GitHub\obs-websocket-dotnet-standard\obs-websocket-dotnet\obs-websocket-dotnet.xml + obs-websocket-dotnet.xml diff --git a/obs-websocket-dotnet/obs-websocket-dotnet.xml b/obs-websocket-dotnet/obs-websocket-dotnet.xml index eaac38c..c9cc59d 100644 --- a/obs-websocket-dotnet/obs-websocket-dotnet.xml +++ b/obs-websocket-dotnet/obs-websocket-dotnet.xml @@ -4,357 +4,143 @@ obs-websocket-dotnet - + - Called by - - instance - Name of the new current scene - - - - Called by - - instance - Name of the scene where items where reordered - - - - Called by - or - - instance - Name of the scene where the item is - Name of the concerned item - - - - Called by - - instance - Name of the scene where the item is - Name of the concerned item - Visibility of the item - - - - Called by - - instance - Name of the scene where the item is - Name of the concerned item - Id of the concerned item - Lock status of the item - - - - Called by - - instance - Name of the new selected transition - - - - Called by - - instance - Name of the new transition duration (in milliseconds) - - - - Called by - - instance - Transition name - Transition type - Transition duration (in milliseconds). Will be -1 for any transition with a fixed duration, such as a Stinger, due to limitations of the OBS API - Source scene of the transition - Destination scene of the transition - - - - Called by - - instance - Transition name - Transition type - Transition duration (in milliseconds). - Destination scene of the transition - - - - Called by - - instance - Transition name - Transition type - Transition duration (in milliseconds). - Source scene of the transition - Destination scene of the transition - - - - Called by , - or - - instance - New output state - - - - Called by - - instance - Stream status data - - - - Called by - - instance - New Studio Mode status - - - - Called by - - instance - heartbeat data - - - - Callback by - - instance - Name of the scene item was in - Name of the item deselected - Id of the item deselected - - - - Callback by - - instance - Name of the scene item was in - Name of the item seletected - Id of the item selected - - - - Callback by - - instance - Transform data - - - - Callback by - - instance - Mixer information that was updated - - - - Callback by + Data required by authentication - instance - Name of the source for the offset change - Sync offset value - + - Callback by + Authentication challenge - instance - Newly created source settings - + - Callback by + Password salt - instance - Newly destroyed source information - Kind of source destroyed - Type of source destroyed - + - Callback by + Builds the object from JSON response body - instance - New name of source - Previous name of source + JSON response body as a - + - Callback by + Default Constructor for deserialization - instance - Name of source - Current mute state of source - + - Callback by + Close/Error codes sent by OBS Websocket when closing the connection - instance - Name of source - + - Callback by + For internal use only to tell the request handler not to perform any close action. - instance - Name of source - + - Callback by + Unknown reason, should never be used. - instance - Current volume levels of source - + - Callback by + The server was unable to decode the incoming websocket message. - instance - Name of source - Name of removed filter - + - Callback by + A data field is required but missing from the payload. - instance - Name of source - Name of filter - Type of filter - Settings for filter - + - Callback by + A data field's value type is invalid. - instance - Name of source - Current order of filters for source - + - Callback by + A data field's value is invalid. - instance - Name of source - Name of filter - New filter state - + - Callback by + The specified op was invalid or missing. - instance - Identifier provided by the sender - User-defined data - + - Callback by + The client sent a websocket message without first sending Identify message. - instance - Name of source - Kind of source - + - Callback by + The client sent an Identify message while already identified. - instance - Name of source - Kind of source - + - Callback by + The authentication attempt (via Identify) failed. - instance - Name of source - Kind of source - + - Callback by + The server detected the usage of an old version of the obs-websocket RPC protocol. - instance - Name of source - Kind of source - + - Callback by + The websocket session has been invalidated by the obs-websocket server. - instance - Name of source - Kind of source - + - Callback by + A requested feature is not supported due to hardware/software limitations. - instance - Name of source - Kind of source - + - Callback by + Disconnection information received from the OBS Websocket server - instance - Name of source - Kind of source - + - Callback by + Close/Error codes sent by OBS Websocket when closing the connection - instance - Name of source - Kind of source - + - Thrown if authentication fails + String reason of disconnect - + - Thrown when the server responds with an error + Websocket Client internal information - + Constructor - - - - - - + Close/Error codes sent by OBS Websocket when closing the connection + String reason of disconnect + Websocket Client internal information - + - Source Name + Message received from the server - + - Source Type + Server Message's operation code - + - Media settings + Server Data @@ -362,22 +148,23 @@ Instance of a connection with an obs-websocket server - + - Triggered when switching to another scene + The current program scene has changed. - Triggered when a scene is created, deleted or renamed + The list of scenes has changed. + TODO: Make OBS fire this event when scenes are reordered. - + Triggered when the scene item list of the specified scene is reordered - + Triggered when a new item is added to the item list of the specified scene @@ -387,17 +174,17 @@ Triggered when an item is removed from the item list of the specified scene - + Triggered when the visibility of a scene item changes - + Triggered when the lock status of a scene item changes - + Triggered when switching to another scene collection @@ -407,37 +194,32 @@ Triggered when a scene collection is created, deleted or renamed - + Triggered when switching to another transition - + Triggered when the current transition duration is changed - + - Triggered when a transition is created or removed + Triggered when a transition between two scenes starts. Followed by - - - Triggered when a transition between two scenes starts. Followed by - - - + Triggered when a transition (other than "cut") has ended. Please note that the from-scene field is not available in TransitionEnd - + Triggered when a stinger transition has finished playing its video - + Triggered when switching to another profile @@ -447,47 +229,32 @@ Triggered when a profile is created, imported, removed or renamed - + Triggered when the streaming output state changes - + Triggered when the recording output state changes - - - Triggered when the recording output is paused - - - - - Triggered when the recording output is resumed - - Triggered when state of the replay buffer changes - - - Triggered every 2 seconds while streaming is active - - - + Triggered when the preview scene selection changes (Studio Mode only) - + Triggered when Studio Mode is turned on or off - + Triggered when OBS exits @@ -502,145 +269,173 @@ Triggered when disconnected from an obs-websocket server - + - Emitted every 2 seconds after enabling it by calling SetHeartbeat + A scene item is selected in the UI - + - A scene item is deselected + A scene item transform has changed - + - A scene item is selected + The audio sync offset of an input has changed - + - A scene item transform has changed + A filter was added to a source - + - Audio mixer routing changed on a source + A filter was removed from a source - + - The audio sync offset of a source has changed + Filters in a source have been reordered - + - A source has been created. A source can be an input, a scene or a transition. + Triggered when the visibility of a filter has changed - + - A source has been destroyed/removed. A source can be an input, a scene or a transition. + A source has been muted or unmuted - + - A filter was added to a source + The volume of a source has changed - + - A filter was removed from a source + A custom broadcast message was received - + - Filters in a source have been reordered + These events are emitted by the OBS sources themselves. For example when the media file ends. The behavior depends on the type of media source being used. - + - Triggered when the visibility of a filter has changed + These events are emitted by the OBS sources themselves. For example when the media file starts playing. The behavior depends on the type of media source being used. - + - A source has been muted or unmuted + This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. - + - A source has been muted or unmuted + The virtual cam state has changed. - + - A source has been muted or unmuted + The current scene collection has begun changing. - + - A source has been renamed + The current profile has begun changing. - + - The volume of a source has changed + The name of a source filter has changed. - + - A custom broadcast message was received + An input has been created. - + - These events are emitted by the OBS sources themselves. For example when the media file ends. The behavior depends on the type of media source being used. + An input has been removed. - + - These events are emitted by the OBS sources themselves. For example when the media file starts playing. The behavior depends on the type of media source being used. + The name of an input has changed. - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + An input's active state has changed. + When an input is active, it means it's being shown by the program feed. - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + An input's show state has changed. + When an input is showing, it means it's being shown by the preview or a dialog. - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + The audio balance value of an input has changed. - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + The audio tracks of an input have changed. - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + 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` - + - This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. + A high-volume event providing volume levels of all active inputs every 50 milliseconds. + + + + + The replay buffer has been saved. + + + + + A new scene has been created. + + + + + A scene has been removed. - + - The virtual camera has been started. + The name of a scene has changed. - + + + An unsupported event has been received. + + + - The virtual camera has been stopped. + Update message handler + Value of "event-type" in the JSON body + full JSON message body @@ -652,11 +447,6 @@ Current connection state - - - Underlying WebSocket connection to an obs-websocket server. Value is null when disconnected. - - Constructor @@ -664,7 +454,16 @@ - Connect this instance to the specified URL, and authenticate (if needed) with the specified password + Connect this instance to the specified URL, and authenticate (if needed) with the specified password. + NOTE: Please subscribe to the Connected/Disconnected events (or atleast check the IsConnected property) to determine when the connection is actually fully established + + Server URL in standard URL format. + Server password + + + + Connect this instance to the specified URL, and authenticate (if needed) with the specified password. + NOTE: Please subscribe to the Connected/Disconnected events (or atleast check the IsConnected property) to determine when the connection is actually fully established Server URL in standard URL format. Server password @@ -682,33 +481,31 @@ additional JSON fields if required by the request type The server's JSON response as a JObject - + - Requests version info regarding obs-websocket, the API and OBS Studio + Internal version which allows to set the opcode + Sends a message to the websocket API with the specified request type and optional parameters - Version info in an object + Type/OpCode for this messaage + obs-websocket request type, must be one specified in the protocol specification + additional JSON fields if required by the request type + Should wait for reply vs "fire and forget" + The server's JSON response as a JObject Request authentication data. You don't have to call this manually. - Authentication data in an object + Authentication data in an object - + - Authenticates to the Websocket server using the challenge and salt given in the passed object + Authenticates to the Websocket server using the challenge and salt given in the passed object User password Authentication data true if authentication succeeds, false otherwise - - - Update message handler - - Value of "event-type" in the JSON body - full JSON message body - Encode a Base64-encoded SHA-256 hash @@ -723,30 +520,37 @@ (optional) message ID length A random string of alphanumerical characters - + Get basic OBS video information - + - At least embedPictureFormat or saveToFilePath must be specified. - Clients can specify width and height parameters to receive scaled pictures. Aspect ratio is preserved if only one of these two parameters is specified. + Saves a screenshot of a source to the filesystem. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** - - Format of the Data URI encoded picture. Can be "png", "jpg", "jpeg" or "bmp" (or any other value supported by Qt's Image module) - Full file path (file extension included) where the captured image is to be saved. Can be in a format different from pictureFormat. Can be a relative path. - Screenshot width. Defaults to the source's base width. - Screenshot height. Defaults to the source's base height. + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Path to save the screenshot file to. Eg. `C:\\Users\\user\\Desktop\\screenshot.png` + Width to scale the screenshot to + Height to scale the screenshot to + Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk) + Base64-encoded screenshot string - + - At least embedPictureFormat or saveToFilePath must be specified. - Clients can specify width and height parameters to receive scaled pictures. Aspect ratio is preserved if only one of these two parameters is specified. + Saves a screenshot of a source to the filesystem. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** - - Format of the Data URI encoded picture. Can be "png", "jpg", "jpeg" or "bmp" (or any other value supported by Qt's Image module) - Full file path (file extension included) where the captured image is to be saved. Can be in a format different from pictureFormat. Can be a relative path. + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Path to save the screenshot file to. Eg. `C:\\Users\\user\\Desktop\\screenshot.png` + Base64-encoded screenshot string @@ -754,31 +558,25 @@ Unique name of the hotkey, as defined when registering the hotkey (e.g. "ReplayBuffer.Save") - + - EExecutes hotkey routine, identified by bound combination of keys. A single key combination might trigger multiple hotkey routines depending on user settings + Triggers a hotkey using a sequence of keys. - Main key identifier (e.g. OBS_KEY_A for key "A"). Available identifiers are here: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h + Main key identifier (e.g. OBS_KEY_A for key "A"). Available identifiers are here: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h Optional key modifiers object. You can combine multiple key operators. e.g. KeyModifier.Shift | KeyModifier.Control - + - Get the current scene info along with its items + Get the name of the currently active scene. - An object describing the current scene + Name of the current scene - + Set the current scene to the specified one The desired scene name - - - Get the filename formatting string - - Current filename formatting string - Get OBS stats (almost the same info as provided in OBS' stats window) @@ -788,28 +586,21 @@ List every available scene - A of objects describing each scene + A of objects describing each scene Get a list of scenes in the currently active profile - - - Changes the order of scene items in the requested scene - - Name of the scene to reorder (defaults to current) - List of items to reorder, only ID or Name required - - + Get the specified scene's transition override info Name of the scene to return the override info TransitionOverrideInfo - + Set specific transition override for a scene @@ -817,56 +608,6 @@ Name of the transition to use Duration in milliseconds of the transition if transition is not fixed. Defaults to the current duration specified in the UI if there is no current override and this value is not given - - - Remove any transition override from a specific scene - - Name of the scene to remove the transition override - - - - Get a list of all inputs in the scene collection - - - - - List all sources available in the running OBS instance - - - - - List all sources available in the running OBS instance - - - - - Change the visibility of the specified scene item - - Scene item which visiblity will be changed - Desired visiblity - Scene name of the specified item - - - - Gets the scene specific properties of the specified source item. Coordinates are relative to the item's parent (the scene or group it belongs to). - - The name of the source - The name of the scene that the source item belongs to. Defaults to the current scene. - - - - Gets the scene specific properties of the specified source item. Coordinates are relative to the item's parent (the scene or group it belongs to). - Response is a JObject - - The name of the source - The name of the scene that the source item belongs to. Defaults to the current scene. - - - - Get the current properties of a Text GDI Plus source. - - The name of the source - If your code needs to perform multiple successive T-Bar moves (e.g. : in an animation, or in response to a user moving a T-Bar control in your User Interface), set release to false and call ReleaseTBar later once the animation/interaction is over. @@ -874,37 +615,25 @@ T-Bar position. This value must be between 0.0 and 1.0. Whether or not the T-Bar gets released automatically after setting its new position (like a user releasing their mouse button after moving the T-Bar). Call ReleaseTBar manually if you set release to false. Defaults to true. - - - Set the current properties of a Text GDI Plus source. - - properties for the source - - - - Move a filter in the chain (relative positioning) - - Scene Name - Filter Name - Direction to move - - + - Move a filter in the chain (absolute index positioning) + Apply settings to a source filter - Scene Name - Filter Name - Desired position of the filter in the chain + Source with filter + Filter name + JObject with filter settings + Apply over existing settings? - + Apply settings to a source filter Source with filter Filter name Filter settings + Apply over existing settings? - + Modify the Source Filter's visibility @@ -912,162 +641,144 @@ Source filter name New filter state - + Return a list of all filters on a source Source name - - - Returns a list of all filters assigned to a source (input, scene) - - Source name - - + - Return a list of all filters on a source + Return a list of settings for a specific filter Source name Filter name - - - Release the T-Bar (like a user releasing their mouse button after moving it). YOU MUST CALL THIS if you called SetTBarPosition with the release parameter set to false. - - - + Remove the filter from a source - - + Name of the source the filter is on + Name of the filter to remove - + Add a filter to a source Name of the source for the filter Name of the filter - Type of filter - Filter settings object + Type of filter + JObject holding filter settings object - + - Start/Stop the streaming output + Add a filter to a source + Name of the source for the filter + Name of the filter + Type of filter + Filter settings object - + - Start/Stop the recording output + Toggles the status of the stream output. + New state of the stream output - + - Get the current status of the streaming and recording outputs + Toggles the status of the record output. - An object describing the current outputs states - + - List all transitions + Gets the status of the stream output - A of all transition names + An object describing the current outputs states - + Get the current transition name and duration An object with the current transition name and duration - + Set the current transition to the specified one Desired transition name - + Change the transition's duration - Desired transition duration (in milliseconds) + Desired transition duration (in milliseconds) - + Change the current settings of a transition - Transition name Transition settings (they can be partial) + Whether to overlay over the current settins or replace them Updated transition settings - + Change the volume of the specified source - Name of the source which volume will be changed - Desired volume. Must be between `0.0` and `1.0` for amplitude/mul (useDecibel is false), and under 0.0 for dB (useDecibel is true). Note: OBS will interpret dB values under -100.0 as Inf. - Interperet `volume` data as decibels instead of amplitude/mul. + Name of the source which volume will be changed + Desired volume. Must be between `0.0` and `1.0` for amplitude/mul (useDecibel is false), and under 0.0 for dB (useDecibel is true). Note: OBS will interpret dB values under -100.0 as Inf. + Interperet `volume` data as decibels instead of amplitude/mul. - + Get the volume of the specified source Volume is between `0.0` and `1.0` if using amplitude/mul (useDecibel is false), under `0.0` if using dB (useDecibel is true). - Source name - Output volume in decibels of attenuation instead of amplitude/mul. + Source name An Object containing the volume and mute state of the specified source. - + - Set the mute state of the specified source - - Name of the source which mute state will be changed - Desired mute state - - - - Toggle the mute state of the specified source + Gets the audio mute state of an input. - Name of the source which mute state will be toggled + Name of input to get the mute state of + Whether the input is muted - + - Set the position of the specified scene item + Set the mute state of the specified source - Name of the scene item which position will be changed - X coordinate - Y coordinate - (optional) name of the scene the item belongs to + Name of the source which mute state will be changed + Desired mute state - + - Set the scale and rotation of the specified scene item + Toggle the mute state of the specified source - Name of the scene item which transform will be changed - Rotation in Degrees - Horizontal scale factor - Vertical scale factor - (optional) name of the scene the item belongs to + Name of the source which mute state will be toggled - + - Sets the scene specific properties of a source. Unspecified properties will remain unchanged. Coordinates are relative to the item's parent (the scene or group it belongs to). + Sets the transform and crop info of a scene item - Object containing changes - Option scene name + Name of the scene that has the SceneItem + Id of the Scene Item + JObject holding transform settings - + - + Sets the transform and crop info of a scene item - - + Name of the scene that has the SceneItem + Id of the Scene Item + Transform settings Set the current scene collection to the specified one - Desired scene collection name + Desired scene collection name @@ -1075,7 +786,7 @@ Name of the current scene collection - + List all scene collections @@ -1087,71 +798,50 @@ Name of the desired profile - - - Get the name of the current profile - - Name of the current profile - - + List all profiles A of the names of all profiles - + Start streaming. Will trigger an error if streaming is already active - + Stop streaming. Will trigger an error if streaming is not active. - - - Toggle Streaming - - - + Start recording. Will trigger an error if recording is already active. - + Stop recording. Will trigger an error if recording is not active. + File name for the saved recording - - - Toggle recording - - - + Pause the current recording. Returns an error if recording is not active or already paused. - + Resume/unpause the current recording (if paused). Returns an error if recording is not active or not paused. - - - Change the current recording folder - - Recording folder path - - + Get the path of the current recording folder Current recording folder path - + Get current recording status. @@ -1163,108 +853,53 @@ Current recording status. true when active - - - Get the current settings of a transition - - Transition name - Current transition settings - - - - Get duration of the currently selected transition (if supported) - - Current transition duration (in milliseconds) - - - - Gets an array of all available transition kinds.\n\nSimilar to `GetInputKindList - - Array of all available transition kinds. - - + Get duration of the currently selected transition (if supported) Current transition duration (in milliseconds) - - - Get the position of the current transition. Value will be between 0.0 and 1.0. - Note: Returns 1.0 when not active. - - - - + Get status of Studio Mode Studio Mode status (on/off) - - - Disable Studio Mode - - - - - Enable Studio Mode - - - - - Enable Studio Mode - - - - - Enable/disable Studio Mode - - Desired Studio Mode status - - + - Toggle Studio Mode status (on to off or off to on) + Enables or disables studio mode + - + - Get the currently selected preview scene. Triggers an error - if Studio Mode is disabled + Get the name of the currently selected preview scene. + Note: Triggers an error if Studio Mode is disabled - Preview scene object + Preview scene name - + - Change the currently active preview scene to the one specified. + Change the currently active preview/studio scene to the one specified. Triggers an error if Studio Mode is disabled - Preview scene name + Preview scene name - + - Change the currently active preview scene to the one specified. + Change the currently active preview/studio scene to the one specified. Triggers an error if Studio Mode is disabled. Preview scene object - + - Triggers a Studio Mode transition (preview scene to program) + Triggers the current scene transition. Same functionality as the `Transition` button in Studio Mode - (optional) Transition duration - (optional) Name of transition to use - - - - Get if the specified source is muted - - Source name - Source mute status (on/off) - Toggle the Replay Buffer on/off + Toggles the state of the replay buffer output. @@ -1280,11 +915,6 @@ Replay Buffer is not active. - - - Toggle replay buffer - - Save and flush the contents of the Replay Buffer to disk. Basically @@ -1292,2190 +922,4333 @@ Triggers an error if Replay Buffer is not active. - + Set the audio sync offset of the specified source - Source name - Audio offset (in nanoseconds) for the specified source + Source name + Audio offset (in nanoseconds) for the specified source - + Get the audio sync offset of the specified source - Source name + Source name Audio offset (in nanoseconds) of the specified source - + - Deletes a scene item + Removes a scene item from a scene. + Scenes only. - Scene item, requires name or id of item - /// Scene name to delete item from (optional) + Scene item id + Scene name from which to delete item - + - Deletes a scene item + Sends CEA-608 caption text over the stream output. As of OBS Studio 23.1, captions are not yet available on Linux. - Scene item id - /// Scene name to delete item from (optional) + Captions text - + - Set the relative crop coordinates of the specified source item + Duplicates a scene item - Name of the scene item - Crop coordinates - (optional) parent scene name of the specified source + Name of the scene that has the SceneItem + Id of the Scene Item + Name of scene to add the new duplicated Scene Item. If not specified will assume sceneName - + - Set the relative crop coordinates of the specified source item + Gets the names of all special inputs. - Scene item object - Crop coordinates - Parent scene of scene item + Dictionary of special inputs. - + - Reset a scene item + Sets the current stream service settings (stream destination). + Note: Simple RTMP settings can be set with type `rtmp_custom` and the settings fields `server` and `key`. - Name of the source item - Name of the scene the source belongs to. Defaults to the current scene. + Stream Service Type Name and Settings objects - + - Send the provided text as embedded CEA-608 caption data. As of OBS Studio 23.1, captions are not yet available on Linux. + Gets the current stream service settings (stream destination). - Captions text + Stream service type and settings objects - + - Set the filename formatting string + 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` - Filename formatting string to set + Source name + The monitor type in use - + - Set the relative crop coordinates of the specified source item + Sets the audio monitor type of an input. - Source of the scene item - Destination for the scene item - Scene item, requires name or id + Name of the input to set the audio monitor type of + Audio monitor type. See `GetInputAudioMonitorType for possible types. - + - Set the relative crop coordinates of the specified source item + Broadcasts a `CustomEvent` to all WebSocket clients. Receivers are clients which are identified and subscribed. - Source of the scene item - Destination for the scene item - Scene item id to duplicate + Data payload to emit to all receivers - + - Get names of configured special sources (like Desktop Audio - and Mic sources) + Sets the cursor position of a media input. + This request does not perform bounds checking of the cursor position. - + Name of the media input + New cursor position to set (milliseconds). - + - Set current streaming settings + Offsets the current cursor position of a media input by the specified value. + This request does not perform bounds checking of the cursor position. - Service settings - Save to disk + Name of the media input + Value to offset the current cursor position by (milliseconds +/-) - + - Get current streaming settings + Creates a new input, adding it as a scene item to the specified scene. - + Name of the scene to add the input to as a scene item + Name of the new input to created + The kind of input to be created + Jobject holding the settings object to initialize the input with + Whether to set the created scene item to enabled or disabled + ID of the SceneItem in the scene. - + - Set current streaming settings + Gets the default settings for an input kind. - Service settings - Save to disk + Input kind to get the default settings for + Object of default settings for the input kind - + - Save current Streaming settings to disk + Gets a list of all scene items in a scene. + Scenes only + Name of the scene to get the items of + Array of scene items in the scene - + - Get settings of the specified BrowserSource + Creates a new scene item using a source. + Scenes only - Source name - Optional name of a scene where the specified source can be found - BrowserSource properties + Name of the scene to create the new item in + Name of the source to add to the scene + Enable state to apply to the scene item on creation + Numeric ID of the scene item - + - Set settings of the specified BrowserSource + Creates a new scene in OBS. - Source name - BrowserSource properties - Optional name of a scene where the specified source can be found + Name for the new scene - + - Enable/disable the heartbeat event + Gets the enable state of all audio tracks of an input. - + Name of the input + Object of audio tracks and associated enable states - + - Get the settings from a source item + Sets the enable state of audio tracks of an input. - Source name - Type of the specified source. Useful for type-checking to avoid settings a set of settings incompatible with the actual source's type. - settings + Name of the input + JObject holding track settings to apply - + - Set settings of the specified source. + Sets the enable state of audio tracks of an input. - Source name - Settings for the source - Type of the specified source. Useful for type-checking to avoid settings a set of settings incompatible with the actual source's type. + Name of the input + Track settings to apply - + - Gets settings for a media source + Gets the active and show state of a source. + **Compatible with inputs and scenes.** - - + Name of the source to get the active state of + Whether the source is showing in Program - + - Sets settings of a media source + Gets the status of the virtualcam output. - + An object describing the current virtual camera state - + - Open a projector window or create a projector on a monitor. Requires OBS v24.0.4 or newer. + Starts the virtualcam output. - Type of projector: "Preview" (default), "Source", "Scene", "StudioProgram", or "Multiview" (case insensitive) - Monitor to open the projector on. If -1 or omitted, opens a window - Size and position of the projector window (only if monitor is -1). Encoded in Base64 using Qt's geometry encoding. Corresponds to OBS's saved projectors - Name of the source or scene to be displayed (ignored for other projector types) - + - Renames a source. - Note: If the new name already exists as a source, obs-websocket will return an error. + Stops the virtualcam output. - Current source name - New source name - + - List existing outputs + Toggles the state of the virtualcam output. - Array of OutputInfo + Whether the output is active - + - Get the audio's active status of a specified source. + Gets the value of a \"slot\" from the selected persistent data realm. - Source name. - Audio active status of the source. + The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE` + The name of the slot to retrieve data from + Value associated with the slot. `null` if not set - + - Get the audio monitoring type of the specified source. - Valid return values: none, monitorOnly, monitorAndOutput + Sets the value of a \"slot\" from the selected persistent data realm. - Source name - The monitor type in use + The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE` + The name of the slot to retrieve data from + The value to apply to the slot - + - Set the audio monitoring type of the specified source + Creates a new scene collection, switching to it in the process.\n\nNote: This will block until the collection has finished changing. - Source name - The monitor type to use. Options: none, monitorOnly, monitorAndOutput + Name for the new scene collection - + - Broadcast custom message to all connected WebSocket clients + Creates a new profile, switching to it in the process - Identifier to be choosen by the client - User-defined data + Name for the new profile - + - Refreshes the specified browser source. + Removes a profile. If the current profile is chosen, it will change to a different profile first. - Source name. + Name of the profile to remove - + - Pause or play a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) Note :Leaving out playPause toggles the current pause state + Gets a parameter from the current profile's configuration. - Source name - (optional) Whether to pause or play the source. false for play, true for pause. + Category of the parameter to get + Name of the parameter to get + - + - Restart a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) + Sets the value of a parameter in the current profile's configuration. - Source name. + Category of the parameter to set + Name of the parameter to set + Value of the parameter to set. Use `null` to delete - + - Stop a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) + Sets the current video settings. + Note: Fields must be specified in pairs. For example, you cannot set only `baseWidth` without needing to specify `baseHeight`. - Source name. + Object containing video settings - + - Skip to the next media item in the playlist. Supports only vlc media source (as of OBS v25.0.8) + Gets the default settings for a filter kind. - Source name. + Filter kind to get the default settings for + Object of default settings for the filter kind - + - Go to the previous media item in the playlist. Supports only vlc media source (as of OBS v25.0.8) + Sets the name of a source filter (rename). - Source name. + Name of the source the filter is on + Current name of the filter + New name for the filter - + - Get the length of media in milliseconds. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) Note: For some reason, for the first 5 or so seconds that the media is playing, the total duration can be off by upwards of 50ms. + Sets the index position of a filter on a source. - Source name. - The total length of media in milliseconds. + Name of the source the filter is on + Name of the filter + New index position of the filter - + - Get the current timestamp of media in milliseconds. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) + Gets data about the current plugin and RPC version. - Source name. - The time in milliseconds since the start of the media. + Version info in an object - + - Set the timestamp of a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) + Call a request registered to a vendor. + A vendor is a unique name registered by a third-party plugin or script, which allows for custom requests and events to be added to obs-websocket. + If a plugin or script implements vendor requests or events, documentation is expected to be provided with them. - Source name. - Milliseconds to set the timestamp to. + Name of the vendor to use + The request type to call + Object containing appropriate request data + Object containing appropriate response data. {} if request does not provide any response data - + - Scrub media using a supplied offset. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) Note: Due to processing/network delays, this request is not perfect. The processing rate of this request has also not been tested. + Gets an array of all hotkey names in OBS - Source name. - Millisecond offset (positive or negative) to offset the current media position. + Array of hotkey names - + - Get the current playing state of a media source. Supports ffmpeg and vlc media sources (as of OBS v25.0.8) + Sleeps for a time duration or number of frames. Only available in request batches with types `SERIAL_REALTIME` or `SERIAL_FRAME`. - Source name. - The media state of the provided source. + Number of milliseconds to sleep for (if `SERIAL_REALTIME` mode) + Number of frames to sleep for (if `SERIAL_FRAME` mode) - + - List the media state of all media sources (vlc and media source) + Gets an array of all inputs in OBS. - Array of sources + Restrict the array to only inputs of the specified kind + List of Inputs in OBS - + - Create a source and add it as a sceneitem to a scene. + Gets an array of all available input kinds in OBS. - Source name. - Source kind, Eg. vlc_source - Scene to add the new source to. - Source settings data. - Set the created SceneItem as visible or not. Defaults to true - ID of the SceneItem in the scene. + True == Return all kinds as unversioned, False == Return with version suffixes (if available) + Array of input kinds - + - Get the default settings for a given source type. + Removes an existing input. + Note: Will immediately remove all associated scene items. - Source kind. Also called "source id" in libobs terminology. - Settings object for source. + Name of the input to remove - + - Get a list of all scene items in a scene. + Sets the name of an input (rename). - Name of the scene to get the list of scene items from. Defaults to the current scene if not specified. + Current input name + New name for the input - + - Creates a scene item in a scene. In other words, this is how you add a source into a scene. + Gets the settings of an input. + Note: Does not include defaults. To create the entire settings object, overlay `inputSettings` over the `defaultInputSettings` provided by `GetInputDefaultSettings`. - Name of the scene to create the scene item in - Name of the source to be added - Whether to make the scene item visible on creation or not. Default true - Numerical ID of the created scene item + Name of the input to get the settings of + New populated InputSettings object - + - Create a new scene. + Sets the settings of an input. - Name of the scene to create. + Object of settings to apply + True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings. - + - Gets whether an audio track is active for a source. + Sets the settings of an input. - Source name - Indication for each track whther it's active or not + Name of the input to set the settings of + Object of settings to apply + True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings. - + - Sets whether an audio track is active for a source. + Gets the audio balance of an input. - Source Name - Audio tracks 1-6 - Whether audio track is active or not - + Name of the input to get the audio balance of + Audio balance value from 0.0-1.0 - + - Get the source's active status of a specified source (if it is showing in the final mix). + Sets the audio balance of an input. - Source Name - Active status of the source + Name of the input to set the audio balance of + New audio balance value - + - Get the current status of the virtual camera + Gets the items of a list property from an input's properties. + Note: Use this in cases where an input provides a dynamic, selectable list of items. + For example, display capture, where it provides a list of available displays. - An object describing the current virtual camera state + Name of the input + Name of the list property to get the items of + Array of items in the list property - + - Start virtual camera. Will trigger an error if virtual camera is already started. + Presses a button in the properties of an input. + Note: Use this in cases where there is a button in the properties of an input that cannot be accessed in any other way. + For example, browser sources, where there is a refresh button. + Name of the input + Name of the button property to press - + - Stop virtual camera. Will trigger an error if virtual camera is already stopped. + Gets the status of a media input.\n\nMedia 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` + Name of the media input + Object containing string mediaState, int mediaDuration, int mediaCursor properties - + - Toggle virtual camera on or off (depending on the current virtual camera state). + Triggers an action on a media input. + Name of the media input + Identifier of the `ObsMediaInputAction` enum - + - Status of streaming output and recording output + Gets the filename of the last replay buffer save file. + File path of last replay - + - True if streaming is started and running, false otherwise + Toggles pause on the record output. - + - True if recording is started and running, false otherwise + Currently BROKEN in obs-websocket/obs-studio + Basically GetSceneItemList, but for groups. + Using groups at all in OBS is discouraged, as they are very broken under the hood. + Groups only + Name of the group to get the items of + Array of scene items in the group - + - Builds the object from the JSON response body + Searches a scene for a source, and returns its id.\n\nScenes and Groups - JSON response body as a + Name of the scene or group to search in + Name of the source to find + Number of matches to skip during search. >= 0 means first forward. -1 means last (top) item + Numeric ID of the scene item - + - Default Constructor for deserialization + Gets the transform and crop info of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Object containing scene item transform info - + - Audio Mixer Channel information + Gets the JObject of transform settings for a scene item. Use this one you don't want it populated with default values. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Object containing scene item transform info - + - Is channel enabled + Gets the enable state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Whether the scene item is enabled. `true` for enabled, `false` for disabled - + - ID of the channel + Gets the enable state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + New enable state of the scene item - + - Response from audio mixer change event + Gets the lock state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Whether the scene item is locked. `true` for locked, `false` for unlocked - + - Mixer source name + Sets the lock state of a scene item. + Scenes and Group + Name of the scene the item is in + Numeric ID of the scene item + New lock state of the scene item - + - Routing status of the source for each audio mixer (array of 6 values) + Gets the index position of a scene item in a scene. + An index of 0 is at the bottom of the source list in the UI. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Index position of the scene item - + - Raw mixer flags (little-endian, one bit per mixer) as an hexadecimal value + Sets the index position of a scene item in a scene. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + New index position of the scene item - + - Create mixer response + Gets the blend mode of a scene item. + Blend modes: + - `OBS_BLEND_NORMAL` + - `OBS_BLEND_ADDITIVE` + - `OBS_BLEND_SUBTRACT` + - `OBS_BLEND_SCREEN` + - `OBS_BLEND_MULTIPLY` + - `OBS_BLEND_LIGHTEN` + - `OBS_BLEND_DARKEN` + Scenes and Groups - + Name of the scene the item is in + Numeric ID of the scene item + Current blend mode - + - Default Constructor for deserialization + Sets the blend mode of a scene item. + Scenes and Groups + + + - + - BrowserSource source properties + Gets an array of all groups in OBS. + Groups in OBS are actually scenes, but renamed and modified. In obs-websocket, we treat them as scenes where we can. + Array of group names - + - Source name for the browser properties + Removes a scene from OBS. + Name of the scene to remove - + - URL to load in the embedded browser + Sets the name of a scene (rename). + Name of the scene to be renamed + New name for the scene - + - true if the URL points to a local file, false otherwise. + Gets a Base64-encoded screenshot of a source. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Width to scale the screenshot to + Height to scale the screenshot to + Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk) + Base64-encoded screenshot - + - File to load in embedded browser + Gets an array of all available transition kinds. + Similar to `GetInputKindList` + Array of transition kinds - + - Additional CSS to apply to the page + Gets the cursor position of the current scene transition. + Note: `transitionCursor` will return 1.0 when the transition is inactive. + Cursor position, between 0.0 and 1.0 - + - Embedded browser render (viewport) width + Opens the properties dialog of an input. + Name of the input to open the dialog of - + - Embedded browser render (viewport) height + Opens the filters dialog of an input. + Name of the input to open the dialog of - + - Embedded browser render frames per second + Opens the interact dialog of an input. + Name of the input to open the dialog of - + - true if custom FPS is set + Gets a list of connected monitors and information about them. + a list of detected monitors with some information - + - true if source should be disabled (inactive) when not visible, false otherwise + Opens a projector for a source. + Note: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release. + Name of the source to open a projector for + Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with monitorIndex + Monitor index, use GetMonitorList to obtain index. -1 to open in windowed mode - + - true if source should restart the video when visible + Opens a projector for a specific output video mix. + Note: This request serves to provide feature parity with 4.x. It is very likely to be changed/deprecated in a future release. + Mix types: OBS_WEBSOCKET_VIDEO_MIX_TYPE_PREVIEW, OBS_WEBSOCKET_VIDEO_MIX_TYPE_PROGRAM, OBS_WEBSOCKET_VIDEO_MIX_TYPE_MULTIVIEW + Size/Position data for a windowed projector, in Qt Base64 encoded format. Mutually exclusive with monitorIndex + Monitor index, use GetMonitorList to obtain index. -1 to open in windowed mode - + - true if source should be visible, false otherwise + Thrown if authentication fails - + - Construct the object from JSON response data + Thrown when the server responds with an error - - + - Default Constructor for deserialization + Error Code of exception - + - Common RTMP settings (predefined streaming services list) + Constructor + Exception Message + /// Error Code - + - Streaming provider name + OBS Websocket Dotnet interface - + - Streaming server URL; + WebSocket request timeout, represented as a TimeSpan object - + - Stream key + Current connection state - + - Construct object from data provided by + Get basic OBS video information - - + - Default Constructor for deserialization + Saves a screenshot of a source to the filesystem. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Path to save the screenshot file to. Eg. `C:\\Users\\user\\Desktop\\screenshot.png` + Width to scale the screenshot to + Height to scale the screenshot to + Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk) + Base64-encoded screenshot string - + - Custom RTMP settings (fully customizable RTMP credentials) + Saves a screenshot of a source to the filesystem. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Path to save the screenshot file to. Eg. `C:\\Users\\user\\Desktop\\screenshot.png` + Base64-encoded screenshot string - + - RTMP server URL + Executes hotkey routine, identified by hotkey unique name + Unique name of the hotkey, as defined when registering the hotkey (e.g. "ReplayBuffer.Save") - + - RTMP stream key (URL suffix) + Triggers a hotkey using a sequence of keys. + Main key identifier (e.g. OBS_KEY_A for key "A"). Available identifiers are here: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h + Optional key modifiers object. You can combine multiple key operators. e.g. KeyModifier.Shift | KeyModifier.Control - + - Tell OBS' RTMP client to authenticate to the server + Get the name of the currently active scene. + Name of the current scene - + - Username used if authentication is enabled + Set the current scene to the specified one + The desired scene name - + - Password used if authentication is enabled + Get OBS stats (almost the same info as provided in OBS' stats window) - + - Construct object from data provided by + List every available scene - + A of objects describing each scene - + - Default Constructor for deserialization + Get a list of scenes in the currently active profile - + - Direction to move filters + Get the specified scene's transition override info + Name of the scene to return the override info + TransitionOverrideInfo - + - Up one + Set specific transition override for a scene + Name of the scene to set the transition override + Name of the transition to use + Duration in milliseconds of the transition if transition is not fixed. Defaults to the current duration specified in the UI if there is no current override and this value is not given - + - Down one + If your code needs to perform multiple successive T-Bar moves (e.g. : in an animation, or in response to a user moving a T-Bar control in your User Interface), set release to false and call ReleaseTBar later once the animation/interaction is over. + T-Bar position. This value must be between 0.0 and 1.0. + Whether or not the T-Bar gets released automatically after setting its new position (like a user releasing their mouse button after moving the T-Bar). Call ReleaseTBar manually if you set release to false. Defaults to true. - + - Top of the list + Apply settings to a source filter + Source with filter + Filter name + JObject with filter settings + Apply over existing settings? - + - Bottom of the list + Apply settings to a source filter + Source with filter + Filter name + Filter settings + Apply over existing settings? - + - Filter list item + Modify the Source Filter's visibility + Source name + Source filter name + New filter state - + - Name of filter + Return a list of all filters on a source + Source name - + - Type of filter + Return a list of settings for a specific filter + Source name + Filter name - + - Filter settings + Remove the filter from a source + Name of the source the filter is on + Name of the filter to remove - + - Name of the filter + Add a filter to a source + Name of the source for the filter + Name of the filter + Type of filter + JObject holding filter settings object - + - Type of the specified filter + Add a filter to a source + Name of the source for the filter + Name of the filter + Type of filter + Filter settings object - + - Status of the specified filter + Toggles the status of the stream output. + New state of the stream output - + - Settings for the filter + Toggles the status of the record output. - + - Get Scene Info response + Gets the status of the stream output + An object describing the current outputs states - + - Name of the currently active scene + Get the current transition name and duration + An object with the current transition name and duration - + - Ordered list of the current profile's scenes + Set the current transition to the specified one + Desired transition name - - - Response from - - - + - Response from + Change the transition's duration + Desired transition duration (in milliseconds) - + - Name of the currently active transition + Change the current settings of a transition + Transition settings (they can be partial) + Whether to overlay over the current settins or replace them + Updated transition settings - + - List of transitions. + Change the volume of the specified source + Name of the source which volume will be changed + Desired volume. Must be between `0.0` and `1.0` for amplitude/mul (useDecibel is false), and under 0.0 for dB (useDecibel is true). Note: OBS will interpret dB values under -100.0 as Inf. + Interperet `volume` data as decibels instead of amplitude/mul. - + - Heartbeat response + Get the volume of the specified source + Volume is between `0.0` and `1.0` if using amplitude/mul (useDecibel is false), under `0.0` if using dB (useDecibel is true). + Source name + An Object containing the volume and mute state of the specified source. - + - Toggles between every JSON message as an "I am alive" indicator. + Gets the audio mute state of an input. + Name of input to get the mute state of + Whether the input is muted - + - Current active profile. + Set the mute state of the specified source + Name of the source which mute state will be changed + Desired mute state - + - Current active scene. + Toggle the mute state of the specified source + Name of the source which mute state will be toggled - + - Current streaming state. + Sets the transform and crop info of a scene item + Name of the scene that has the SceneItem + Id of the Scene Item + JObject holding transform settings - + - Total time (in seconds) since the stream started. + Sets the transform and crop info of a scene item + Name of the scene that has the SceneItem + Id of the Scene Item + Transform settings - + - Total bytes sent since the stream started. + Set the current scene collection to the specified one + Desired scene collection name - + - Total frames streamed since the stream started. + Get the name of the current scene collection + Name of the current scene collection - + - Current recording state. + List all scene collections + A of the names of all scene collections - + - Total time (in seconds) since recording started. + Set the current profile to the specified one + Name of the desired profile - + - Total bytes recorded since the recording started. + List all profiles + A of the names of all profiles - + - Total frames recorded since the recording started. + Start streaming. Will trigger an error if streaming is already active - + - OBS Stats + Stop streaming. Will trigger an error if streaming is not active. - + - Create a heartbeat + Start recording. Will trigger an error if recording is already active. - - + - Default Constructor for deserialization + Stop recording. Will trigger an error if recording is not active. + File name for the saved recording - + - Key Modifiers + Pause the current recording. Returns an error if recording is not active or already paused. - + - No modifiers + Resume/unpause the current recording (if paused). Returns an error if recording is not active or not paused. - + - Shift Key + Get the path of the current recording folder + Current recording folder path - + - Alt Key + Get current recording status. + - + - Control Key + Get the status of the OBS replay buffer. + Current recording status. true when active - + - Command (Mac) / WinKey (?) Windows + Get duration of the currently selected transition (if supported) + Current transition duration (in milliseconds) - + - Meta Data on the selected media source + Get status of Studio Mode + Studio Mode status (on/off) - + - Name of the source + Enables or disables studio mode + - + - Kind of source (a.k.a ffmpeg_source or vlc_source) + Get the name of the currently selected preview scene. + Note: Triggers an error if Studio Mode is disabled + Preview scene name - + - Type of the specified source. Useful for type-checking if you expect a specific settings schema. + Change the currently active preview/studio scene to the one specified. + Triggers an error if Studio Mode is disabled + Preview scene name - + - Builds the object from the JSON data + Change the currently active preview/studio scene to the one specified. + Triggers an error if Studio Mode is disabled. - JSON item description as a + Preview scene object - + - Default Constructor for deserialization + Triggers the current scene transition. Same functionality as the `Transition` button in Studio Mode - + - The media state. + Toggles the state of the replay buffer output. - + - Data required by authentication + Start recording into the Replay Buffer. Triggers an error + if the Replay Buffer is already active, or if the "Save Replay Buffer" + hotkey is not set in OBS' settings - + - True if authentication is required, false otherwise + Stop recording into the Replay Buffer. Triggers an error if the + Replay Buffer is not active. - + - Authentication challenge + Save and flush the contents of the Replay Buffer to disk. Basically + the same as triggering the "Save Replay Buffer" hotkey in OBS. + Triggers an error if Replay Buffer is not active. - + - Password salt + Set the audio sync offset of the specified source + Source name + Audio offset (in nanoseconds) for the specified source - + - Builds the object from JSON response body + Get the audio sync offset of the specified source - JSON response body as a + Source name + Audio offset (in nanoseconds) of the specified source - + - Default Constructor for deserialization + Removes a scene item from a scene. + Scenes only. + Scene item id + Scene name from which to delete item - + - OBS Hotkeys as defined here: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h + Sends CEA-608 caption text over the stream output. As of OBS Studio 23.1, captions are not yet available on Linux. + Captions text - + - OBS Output flags + Duplicates a scene item + Name of the scene that has the SceneItem + Id of the Scene Item + Name of scene to add the new duplicated Scene Item. If not specified will assume sceneName - + - Raw flags value + Gets the names of all special inputs. + Dictionary of special inputs. - + - Output uses audio + Sets the current stream service settings (stream destination). + Note: Simple RTMP settings can be set with type `rtmp_custom` and the settings fields `server` and `key`. + Stream Service Type Name and Settings objects - + - Output uses video + Gets the current stream service settings (stream destination). + Stream service type and settings objects - + - Output is encoded + 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` + Source name + The monitor type in use - + - Output uses several tracks + Sets the audio monitor type of an input. + Name of the input to set the audio monitor type of + Audio monitor type. See `GetInputAudioMonitorType for possible types. - + - Output users a service + Broadcasts a `CustomEvent` to all WebSocket clients. Receivers are clients which are identified and subscribed. + Data payload to emit to all receivers - + - OBS Output information + Sets the cursor position of a media input. + This request does not perform bounds checking of the cursor position. + Name of the media input + New cursor position to set (milliseconds). - + - Output Name + Offsets the current cursor position of a media input by the specified value. + This request does not perform bounds checking of the cursor position. + Name of the media input + Value to offset the current cursor position by (milliseconds +/-) - + - Output type/kind + Creates a new input, adding it as a scene item to the specified scene. + Name of the scene to add the input to as a scene item + Name of the new input to created + The kind of input to be created + Jobject holding the settings object to initialize the input with + Whether to set the created scene item to enabled or disabled + ID of the SceneItem in the scene. - + - Video output height + Gets the default settings for an input kind. + Input kind to get the default settings for + Object of default settings for the input kind - + - Video output width + Gets a list of all scene items in a scene. + Scenes only + Name of the scene to get the items of + Array of scene items in the scene - + - Settings + Creates a new scene item using a source. + Scenes only + Name of the scene to create the new item in + Name of the source to add to the scene + Enable state to apply to the scene item on creation + Numeric ID of the scene item - + - Output status (active or not) + Creates a new scene in OBS. + Name for the new scene - + - Output reconnection status (reconnecting or not) + Gets the enable state of all audio tracks of an input. + Name of the input + Object of audio tracks and associated enable states - + - Output congestion + Sets the enable state of audio tracks of an input. + Name of the input + JObject holding track settings to apply - + - Number of frames sent + Sets the enable state of audio tracks of an input. + Name of the input + Track settings to apply - + - Number of frames dropped + Gets the active and show state of a source. + **Compatible with inputs and scenes.** + Name of the source to get the active state of + Whether the source is showing in Program - + - Total bytes sent + Gets the status of the virtualcam output. + An object describing the current virtual camera state - + - Output flags + Starts the virtualcam output. - + - Describes a scene in OBS, along with its items + Stops the virtualcam output. - + - OBS Scene name + Toggles the state of the virtualcam output. + Whether the output is active - + - Scene item list + Gets the value of a \"slot\" from the selected persistent data realm. + The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE` + The name of the slot to retrieve data from + Value associated with the slot. `null` if not set - + - Builds the object from the JSON description + Sets the value of a \"slot\" from the selected persistent data realm. - JSON scene description as a + The data realm to select. `OBS_WEBSOCKET_DATA_REALM_GLOBAL` or `OBS_WEBSOCKET_DATA_REALM_PROFILE` + The name of the slot to retrieve data from + The value to apply to the slot - + - Default Constructor for deserialization + Creates a new scene collection, switching to it in the process.\n\nNote: This will block until the collection has finished changing. + Name for the new scene collection - + - OBS Stats + Creates a new profile, switching to it in the process + Name for the new profile - + - Current framerate. + Removes a profile. If the current profile is chosen, it will change to a different profile first. + Name of the profile to remove - + - Number of frames rendered + Gets a parameter from the current profile's configuration. + Category of the parameter to get + Name of the parameter to get + - + - Number of frames missed due to rendering lag + Sets the value of a parameter in the current profile's configuration. + Category of the parameter to set + Name of the parameter to set + Value of the parameter to set. Use `null` to delete - + - Number of frames outputted + Sets the current video settings. + Note: Fields must be specified in pairs. For example, you cannot set only `baseWidth` without needing to specify `baseHeight`. + Object containing video settings - + - Number of frames skipped due to encoding lag + Gets the default settings for a filter kind. + Filter kind to get the default settings for + Object of default settings for the filter kind - + - Average frame render time (in milliseconds) + Sets the name of a source filter (rename). + Name of the source the filter is on + Current name of the filter + New name for the filter - + - Current CPU usage (percentage) + Sets the index position of a filter on a source. + Name of the source the filter is on + Name of the filter + New index position of the filter - + - Current RAM usage (in megabytes) + Gets data about the current plugin and RPC version. + Version info in an object - + - Free recording disk space (in megabytes) + Call a request registered to a vendor. + A vendor is a unique name registered by a third-party plugin or script, which allows for custom requests and events to be added to obs-websocket. + If a plugin or script implements vendor requests or events, documentation is expected to be provided with them. + Name of the vendor to use + The request type to call + Object containing appropriate request data + Object containing appropriate response data. {} if request does not provide any response data - + - Version info of the plugin, the API and OBS Studio + Gets an array of all hotkey names in OBS + Array of hotkey names - + - obs-websocket plugin version + Sleeps for a time duration or number of frames. Only available in request batches with types `SERIAL_REALTIME` or `SERIAL_FRAME`. + Number of milliseconds to sleep for (if `SERIAL_REALTIME` mode) + Number of frames to sleep for (if `SERIAL_FRAME` mode) - + - OBS Studio version + Gets an array of all inputs in OBS. + Restrict the array to only inputs of the specified kind + List of Inputs in OBS - + - OBSRemote compatible API version.Fixed to 1.1 for retrocompatibility. + Gets an array of all available input kinds in OBS. + True == Return all kinds as unversioned, False == Return with version suffixes (if available) + Array of input kinds - + - List of available request types, formatted as a comma-separated list string (e.g. : "Method1,Method2,Method3"). + Removes an existing input. + Note: Will immediately remove all associated scene items. + Name of the input to remove - + - Builds the object from the JSON response body + Sets the name of an input (rename). - JSON response body as a + Current input name + New name for the input - + - Empty constructor for jsonconvert + Gets the settings of an input. + Note: Does not include defaults. To create the entire settings object, overlay `inputSettings` over the `defaultInputSettings` provided by `GetInputDefaultSettings`. + Name of the input to get the settings of + New populated InputSettings object - + - Basic OBS video information + Sets the settings of an input. + Object of settings to apply + True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings. - + - Base (canvas) width + Sets the settings of an input. + Name of the input to set the settings of + Object of settings to apply + True == apply the settings on top of existing ones, False == reset the input to its defaults, then apply settings. - + - Base (canvas) height + Gets the audio balance of an input. + Name of the input to get the audio balance of + Audio balance value from 0.0-1.0 - + - Output width + Sets the audio balance of an input. + Name of the input to set the audio balance of + New audio balance value - + - Output height + Gets the items of a list property from an input's properties. + Note: Use this in cases where an input provides a dynamic, selectable list of items. + For example, display capture, where it provides a list of available displays. + Name of the input + Name of the list property to get the items of + Array of items in the list property - + - Scaling method used if output size differs from base size + Presses a button in the properties of an input. + Note: Use this in cases where there is a button in the properties of an input that cannot be accessed in any other way. + For example, browser sources, where there is a refresh button. + Name of the input + Name of the button property to press - + - Frames rendered per second + Gets the status of a media input.\n\nMedia 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` + Name of the media input + Object containing string mediaState, int mediaDuration, int mediaCursor properties - + - Video color format + Triggers an action on a media input. + Name of the media input + Identifier of the `ObsMediaInputAction` enum - + - Color space for YUV + Gets the filename of the last replay buffer save file. + File path of last replay - + - Color range (full or partial) + Toggles pause on the record output. - + - Describes the state of an output (streaming or recording) + Currently BROKEN in obs-websocket/obs-studio + Basically GetSceneItemList, but for groups. + Using groups at all in OBS is discouraged, as they are very broken under the hood. + Groups only + Name of the group to get the items of + Array of scene items in the group - + - The output is initializing and doesn't produces frames yet + Searches a scene for a source, and returns its id.\n\nScenes and Groups + Name of the scene or group to search in + Name of the source to find + Number of matches to skip during search. >= 0 means first forward. -1 means last (top) item + Numeric ID of the scene item - + - The output is running and produces frames + Gets the transform and crop info of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Object containing scene item transform info - + - The output is stopping and sends the last remaining frames in its buffer + Gets the JObject of transform settings for a scene item. Use this one you don't want it populated with default values. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Object containing scene item transform info - + - The output is completely stopped + Gets the enable state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Whether the scene item is enabled. `true` for enabled, `false` for disabled - + - GetRecordingStatus response + Gets the enable state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + New enable state of the scene item - + - Current recording status + Gets the lock state of a scene item. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Whether the scene item is locked. `true` for locked, `false` for unlocked - + - Whether the recording is paused or not + Sets the lock state of a scene item. + Scenes and Group + Name of the scene the item is in + Numeric ID of the scene item + New lock state of the scene item - + - Time elapsed since recording started (only present if currently recording). (Optional) + Gets the index position of a scene item in a scene. + An index of 0 is at the bottom of the source list in the UI. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Index position of the scene item - + - Absolute path to the recording file (only present if currently recording). (Optional) + Sets the index position of a scene item in a scene. + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + New index position of the scene item - + - Describes a scene item in an OBS scene + Gets the blend mode of a scene item. + Blend modes: + - `OBS_BLEND_NORMAL` + - `OBS_BLEND_ADDITIVE` + - `OBS_BLEND_SUBTRACT` + - `OBS_BLEND_SCREEN` + - `OBS_BLEND_MULTIPLY` + - `OBS_BLEND_LIGHTEN` + - `OBS_BLEND_DARKEN` + Scenes and Groups + Name of the scene the item is in + Numeric ID of the scene item + Current blend mode - + - Source name + Sets the blend mode of a scene item. + Scenes and Groups + + + - + - Source type. Value is one of the following: "input", "filter", "transition", "scene" or "unknown" + Gets an array of all groups in OBS. + Groups in OBS are actually scenes, but renamed and modified. In obs-websocket, we treat them as scenes where we can. + Array of group names - + - Source audio volume + Removes a scene from OBS. + Name of the scene to remove - + - Scene item horizontal position/offset + Sets the name of a scene (rename). + Name of the scene to be renamed + New name for the scene - + - Scene item vertical position/offset + Gets a Base64-encoded screenshot of a source. + The `imageWidth` and `imageHeight` parameters are treated as \"scale to inner\", meaning the smallest ratio will be used and the aspect ratio of the original resolution is kept. + If `imageWidth` and `imageHeight` are not specified, the compressed image will use the full resolution of the source. + **Compatible with inputs and scenes.** + Name of the source to take a screenshot of + Image compression format to use. Use `GetVersion` to get compatible image formats + Width to scale the screenshot to + Height to scale the screenshot to + Compression quality to use. 0 for high compression, 100 for uncompressed. -1 to use \"default\" (whatever that means, idk) + Base64-encoded screenshot - + - Item source width, without scaling and transforms applied + Gets an array of all available transition kinds. + Similar to `GetInputKindList` + Array of transition kinds - + - Item source height, without scaling and transforms applied + Gets the cursor position of the current scene transition. + Note: `transitionCursor` will return 1.0 when the transition is inactive. + Cursor position, between 0.0 and 1.0 - + - Item width + Opens the properties dialog of an input. + Name of the input to open the dialog of - + - Item height + Opens the filters dialog of an input. + Name of the input to open the dialog of - + - Whether or not this Scene Item is locked and can't be moved around + Opens the interact dialog of an input. + Name of the input to open the dialog of - + - Whether or not this Scene Item is set to "visible". + Gets a list of connected monitors and information about them. + a list of detected monitors with some information - + - Scene item ID + Connect this instance to the specified URL, and authenticate (if needed) with the specified password. + NOTE: Please subscribe to the Connected/Disconnected events (or atlease check the IsConnected property) to determine when the connection is actually fully established + Server URL in standard URL format. + Server password - + - Name of the item's parent (if this item belongs to a group) + Connect this instance to the specified URL, and authenticate (if needed) with the specified password. + NOTE: Please subscribe to the Connected/Disconnected events (or atleast check the IsConnected property) to determine when the connection is actually fully established + Server URL in standard URL format. + Server password - + - Name of the item's parent (if this item belongs to a group) + Disconnect this instance from the server - + - Builds the object from the JSON scene description + Sends a message to the websocket API with the specified request type and optional parameters - JSON item description as a + obs-websocket request type, must be one specified in the protocol specification + additional JSON fields if required by the request type + The server's JSON response as a JObject - + - Default Constructor for deserialization + Request authentication data. You don't have to call this manually. + Authentication data in an object - + - Information on scene item bounds + The current program scene has changed. - + - Alignment of the bounding box + The list of scenes has changed. + TODO: Make OBS fire this event when scenes are reordered. - + - Type of bounding box + Triggered when the scene item list of the specified scene is reordered - + - Width of the bounding box + Triggered when a new item is added to the item list of the specified scene - + - Height of the bounding box + Triggered when an item is removed from the item list of the specified scene - + - Types of bounding boxes for scene items + Triggered when the visibility of a scene item changes - + - Stretch + Triggered when the lock status of a scene item changes - + - Inner scale + Triggered when switching to another scene collection - + - Outer scale + Triggered when a scene collection is created, deleted or renamed - + - Scale to width + Triggered when switching to another transition - + - Scale to height + Triggered when the current transition duration is changed - + - Max only + Triggered when a transition between two scenes starts. Followed by - + - No bounds + Triggered when a transition (other than "cut") has ended. Please note that the from-scene field is not available in TransitionEnd - + - Crop coordinates for a scene item + Triggered when a stinger transition has finished playing its video - + - Top crop (in pixels) + Triggered when switching to another profile - + - Bottom crop (in pixels) + Triggered when a profile is created, imported, removed or renamed - + - Left crop (in pixels) + Triggered when the streaming output state changes - + - Right crop (in pixels) + Triggered when the recording output state changes - + - Meta data regarding a Scene item + Triggered when state of the replay buffer changes - + - Unique item id of the source item + Triggered when the preview scene selection changes (Studio Mode only) - + - Kind of source (Example: vlc_source or image_source) + Triggered when Studio Mode is turned on or off - + - Name of the scene item's source + Triggered when OBS exits - + - Type of the scene item's source. + Triggered when connected successfully to an obs-websocket server - + - Builds the object from the JSON data + Triggered when disconnected from an obs-websocket server - JSON item description as a - + - Default Constructor for deserialization + A scene item is selected in the UI - + - Scene item point information + A scene item transform has changed - + - The x-scale factor of the scene item + The audio sync offset of an input has changed - + - The y-scale factor of the scene item + A filter was added to a source - + - Scene item position information + A filter was removed from a source - + - The point on the scene item that the item is manipulated from + Filters in a source have been reordered - + - The x position of the scene item from the left + Triggered when the visibility of a filter has changed - + - The y position of the scene item from the top + A source has been muted or unmuted - - - - + + + The volume of a source has changed + - + - Crop Information + A custom broadcast message was received - + - Bounds Information + These events are emitted by the OBS sources themselves. For example when the media file ends. The behavior depends on the type of media source being used. - + - Scale Information + These events are emitted by the OBS sources themselves. For example when the media file starts playing. The behavior depends on the type of media source being used. - + - Position of the item + This event is only emitted when something actively controls the media/VLC source. In other words, the source will never emit this on its own naturally. - + - Scene item name, populated from GetSceneItemProperites only + The virtual cam state has changed. - + - Scene item name, populated from GetSceneItemProperites only + The current scene collection has begun changing. - + - Scene item height (base source height multiplied by the vertical scaling factor) + The current profile has begun changing. - + - Scene item width (base source width multiplied by the horizontal scaling factor) + The name of a source filter has changed. - + - If the scene item is locked in position + An input has been created. - + - If the scene item is visible + An input has been removed. - + - Base height (without scaling) of the source + The name of an input has changed. - + - Base width (without scaling) of the source + An input's active state has changed. + When an input is active, it means it's being shown by the program feed. - + - The clockwise rotation of the scene item in degrees around the point of alignment. + An input's show state has changed. + When an input is showing, it means it's being shown by the preview or a dialog. - + - Initialize the scene item transform + The audio balance value of an input has changed. - - + - Default Constructor for deserialization + The audio tracks of an input have changed. - + - Type of scene item's source + 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` - + - Input + A high-volume event providing volume levels of all active inputs every 50 milliseconds. - + - Group + The replay buffer has been saved. - + - Scene + A new scene has been created. - + - Stub for scene item that only contains the name or ID of an item + A scene has been removed. - + - Source name + The name of a scene has changed. - + - Scene item ID + Event args for - + - Scene transformation information from an event + Name of the scene that was switched to - + - Name of the scene + Default Constructor + The scene name - + - Name of the item in the scene + Event args for - + - Scene Item ID + Name of the new profile - + - Scene item transform properties + Default Constructor + The profile name - + - Initialize the scene item transform + Event args for - - + - Default Constructor for deserialization + Name of the current profile - + - Source information returned by GetSourcesList + Default Constructor + The profile name - + - Name of the source + Event args for - + - Non-unique source internal type(a.k.a type id) + Name of the new scene collection - + - Source type.Value is one of the following: "input", "filter", "transition", "scene" or "unknown" + Default Constructor + The scene collection name - + - Response from + Event args for - + - Source name + Name of the current scene collection - + - Image Data URI(if embedPictureFormat was specified in the request) + Default Constructor + The scene collection name - + - Absolute path to the saved image file(if saveToFilePath was specified in the request) + Event args for - + - Settings for a source item + Name of the new transition - + - Name of the source + Default Constructor + The transition name - + - Kind of source + Event args for - + - Type of the specified source. Useful for type-checking if you expect a specific settings schema. + Transition duration in milliseconds - + - Settings for the source + Default Constructor + The transition duration - + - Builds the object from the JSON data + Event args for - JSON item description as a - + - Default Constructor for deserialization + Name of the input - + - Tracks status for a source item + Whether the input is active - + - Is the track active + Default Constructor + The input name + Is the video active - + - Is the track active + Event args for - + - Is the track active + Name of the affected input - + - Is the track active + New audio balance value of the input - + - Is the track active + Default Constructor + The input name + The input audio balance - + - Is the track active + Event args for + Available types are: + - `OBS_MONITORING_TYPE_NONE` + - `OBS_MONITORING_TYPE_MONITOR_ONLY` + - `OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT` - + - Builds the object from the JSON data + Name of the input - JSON item description as a - + - Default Constructor for deserialization + New monitor type of the input - + - OBS Source Type definitions + Default Constructor + The input name + The monitor type - + - Non-unique internal source type ID + Event args for - + - Display name of the source type + Name of the input - + - Type.Value is one of the following: "input", "filter", "transition" or "other" + New sync offset in milliseconds - + - Default settings of the source type + Default Constructor + The input name + The input audio sync offset - + - Source type capabilities + Event args for - + - Capabilities for a SourceType + Name of the input - + - True if source of this type provide frames asynchronously + Object of audio tracks along with their associated enable states - + - True if source of this type is deprecated + Default Constructor + The input name + The audio track data as a JObject - + - True if sources of this type provide video + Event args for - + - True if sources of this type provide audio + Name of the input - + - True if interaction with this sources of this type is possible + The kind of the input - + - True if sources of this type composite one or more sub-sources + The unversioned kind of input (aka no `_v2` stuff) - + - True if sources of this type should not be fully duplicated + The settings configured to the input when it was created - + - True if sources of this type may cause a feedback loop if it's audio is monitored and shouldn't be + The default settings for the input - + - Source volume values + Default Constructor + The input name + The kind of input + The unversioned kind of input + The input settings as a JObject + The default input settings as a JObject - + - Name of the source + Event args for - + - The source volume in percent + Name of the input - + - The source volume in decibels + Whether the input is muted - + - Builds the object from the JSON response body + Default Constructor - JSON response body as a + The input name + Is the input muted - + - Empty constructor for jsonconvert + Event args for - + - Streaming settings + Old name of the input - + - Type of streaming service + New name of the input - + - Streaming service settings (JSON data) + Default Constructor + The old input name + The new input name - + - Streaming server settings + Event args for - + - The publish URL + Name of the input - + - The publish key of the stream + Default Constructor + The input name - + - Indicates whether authentication should be used when connecting to the streaming server + Event args for - + - The username to use when accessing the streaming server. Only present if use-auth is true + Name of the input - + - The password to use when accessing the streaming server. Only present if use-auth is true + Whether the input is showing - + - Data of a stream status update + Default Constructor + The input name + Is the video showing - + - True if streaming is started and running, false otherwise + Event args for - + - True if recording is started and running, false otherwise + Current volume levels of source - + - Stream bitrate in bytes per second + Default Constructor + The new input volume - + - Stream bitrate in kilobits per second + Event args for - + - RTMP output strain + Array of active inputs with their associated volume levels - + - Total time since streaming start + Default Constructor + Collection inputs as JObjects - + - Number of frames sent since streaming start + Event args for - + - Overall number of frames dropped since streaming start + Name of the input - + - Current framerate in Frames Per Second + Action performed on the input. See `ObsMediaInputAction` enum - + - Current OBS CPU Usage + Default Constructor + The input name + The media action data - + - Total number of skipped frames + Event args for - + - Total number of missed frames + Name of the input - + - Overall stream time + Default Constructor + The input name - + - Is replay buffer active + Event args for - + - Builds the object from the JSON event body + Name of the input - JSON event body as a - + - Default Constructor for deserialization + Default Constructor + The input name - + - Font information for a Text GDI+ source + Event args for - + - Font face. + The profiles that have changed - + - Font text styling flag. Bold=1, Italic=2, Bold Italic=3, Underline=5, Strikeout=8 + Default Constructor + Collection of profile names as strings - + - Font text size. + Event args for - + - Font Style (unknown function). + The new scene name - + - Properties for a GDI+ Text source + Default Constructor + The scene name - + - Source name. + Event args for - + - Text Alignment ("left", "center", "right"). + The specific state of the output - + - Background color. + Default Constructor + The record state change data - + - Background opacity (0-100). + Event args for - + - Chat log. + Path of the saved replay file - + - Chat log lines. + Default Constructor + The saved replay path - + - Text color. + Event args for - + - Extents wrap. + The specific state of the output - + - Extents cx. + Default constructor + Specific state of the output - + - Extents cy. + Event args for - + - File path name. + Updated list of scene collections - + - Read text from the specified file. + Default Constructor + Collection of scene collection names as string - + - Holds data for the font. Ex: "font": { "face": "Arial", "flags": 0, "size": 150, "style": "" } + Event args for - + - Gradient enabled. + Name of the new scene - + - Gradient color. + Whether the new scene is a group - + - Gradient direction. + Default Constructor + The scene name + Is the scene item a group - + - Gradient opacity (0-100). + Event args for - + - Outline. + Name of the scene where the item is - + - Outline color. + Name of the concerned item - + - Outline size. + Numeric ID of the scene item - + - Outline opacity (0-100). + Index position of the item - + - Text content to be displayed. + Default Constructor + The scene name + The source name + The scene item id + The scene item index - + - Text vertical alignment ("top", "center", "bottom"). + Event args for - + - Vertical text enabled. + Name of the scene the item is in - + - Scene transition override settings + Numeric ID of the scene item - + - Name of the current overriding transition. Empty string if no override is set. + Whether the scene item is enabled (visible) - + - Transition duration in milliseconds. -1 if no override is set. + Default Constructor + The scene name + The scene item id + Is the scene item enabled - + - Current transition settings + Event args for - + - Transition name + Name of the scene where items where reordered - + - Transition duration in milliseconds + List of all scene items as JObject - + - Builds the object from the JSON response body + Default Constructor - JSON response body as a + The scene name + The scene item data as a colleciton of JObjects - + - Default Constructor for deserialization + Event args for - + - Volume settings of an OBS source + Name of the scene the item is in - + - Source volume in linear scale (0.0 to 1.0) + Numeric ID of the scene item - + - True if source is muted, false otherwise + Whether the scene item is locked (visible) - + - Builds the object from the JSON response body + Default Constructor - JSON response body as a + The scene name + The scene item id + is the scene item locked - + - Default Constructor for deserialization + Event args for - + - VirtualCam Status + Name of the scene where the item was removed from - + - The current virtual camera status + Name of the concerned item - + - Time elapsed since virtual camera started (only present if virtual cam currently active) + Numeric ID of the scene item - + - Builds the object from the JSON response body + Default Constructor - JSON response body as a + The scene name + The source name + The scene items id - + - Constructor for jsonconverter + Event args for + + + + + Name of the scene item is in + + + + + Numeric ID of the scene item + + + + + Default Constructor + + The scene name + The scene item id + + + + Event args for + + + + + Name of the scene item is in + + + + + Numeric ID of the scene item + + + + + Transform data + + + + + Default Constructor + + The scene name + The scene item id + The transform data + + + + Event args for + + + + + Updated array of scenes + + + + + Default Constructor + + Collection of scene data as JObjects + + + + Event args for + + + + + Old name of the scene + + + + + New name of the scene + + + + + Default Constructor + + The previous scene name + The new scene name + + + + Event args for + + + + + Name of the removed scene + + + + + Whether the removed scene was a group + + + + + Default Constructor + + The scene name + Is the scene name a group + + + + Event args for + + + + + Scene transition name + + + + + Default Constructor + + The transition name + + + + Event args for + + + + + Transition name + + + + + Default Constructor + + The transition name + + + + Called by + + + + + Transition name + + + + + Default Constructor + + The transition name + + + + Event args for + + + + + Name of the source the filter was added to + + + + + Name of the filter + + + + + The kind of the filter + + + + + Index position of the filter + + + + + The settings configured to the filter when it was created + + + + + The default settings for the filter + + + + + Default Constructor + + The source name + The filter name + The kind of filter + The index of the filter + The filters settings as a JObject + The default filter settings as a JObject + + + + Event args for + + + + + Name of the source the filter is on + + + + + Name of the filter + + + + + Whether the filter is enabled + + + + + Default Constructor + + The source name + The filter name + If the filter is enabled or not + + + + Event args for + + + + + Name of the source + + + + + Array of filter objects + + + + + Default Constructor + + The source name + Collection of filters + + + + Event args for + + + + + The source the filter is on + + + + + Old name of the filter + + + + + New name of the filter + + + + + Default Constructor + + The source name + The filters previous name + The filters new name + + + + Event args for + + + + + Name of the source the filter was on + + + + + Name of the filter + + + + + Default Constructor + + The source name + The filter name that's been removed + + + + Event args for + + + + + The specific state of the output + + + + + Default Constructor + + The output state data + + + + Event args for + + + + + New Studio Mode status + + + + + Default Constructor + + Is studio mode enabled + + + + Event args for unsupported events + + + + + Event args for + + + + + Name of the vendor emitting the event + + + + + Vendor-provided event typedef + + + + + Vendor-provided event data. {} if event does not provide any data + + + + + Default Constructor + + The vendor name + The event type + The event data as a Json Object + + + + Event args for + + + + + The specific state of the output + + + + + Default Constructor + + The output state data + + + + Filter list item + + + + + Name of filter + + + + + Type of filter + + + + + Filter settings + + + + + Name of the filter + + + + + Type of the specified filter + + + + + Index of the filter in the list, beginning at 0 + + + + + Status of the specified filter + + + + + Settings for the filter + + + + + Response from + + + + + Name of the currently active profile + + + + + List of all profiles + + + + + Response from + + + + + Name of the currently active program scene + + + + + Name of the currently active preview/studio scene + Note: Will return null if not in studio mode + + + + + Ordered list of the current profile's scenes + + + + + Response from + + + + + Name of the currently active transition + + + + + Kind of the currently active transition + + + + + List of transitions. + + + + + Abstract class with information on a specific Input + + + + + Name of the Input + + + + + Kind of the Input + + + + + Instantiate object from response data + + + + + + Default Constructor + + + + + Input class which also shows the Unversioned Input Kind + + + + + Unversioned Kind of the Input + + + + + Instantiate object from response data + + + + + + Default Constructor + + + + + Input class dedicated for the ffmpeg_source input kind. + Usage: InputBrowserSourceSettings.FromInputSettings(InputSettings) + + + + + Set a custom FPS (using the FPS property) + + + + + Frames Per Second + + + + + Control audio via OBS + + + + + Height + + + + + Width + + + + + Custom CSS + + + + + Is Local file + + + + + Local filename (when IsLocalFile is true) + + + + + URL (when IsLocalFile is false) + + + + + Refresh browser when scene becomes active + + + + + Shutdown source when not visible + + + + + Page Permissions + + + + + Static constructor to instanciate a InputBrowserSourceSettings object + Requires an InputSettings class with InputKind of browser_source to create + + Settings object + + + + + Input class dedicated for the ffmpeg_source input kind. + Usage: InputFFMpegSettings.FromInputSettings(InputSettings) + + + + + Buffering MB + + + + + Clear window when media ends + + + + + Close when inactive + + + + + Color Range + + + + + HW Decoder + + + + + Is Local file + + + + + Local filename + + + + + Looping + + + + + Apply alpha in linear space + + + + + Restart when activated + + + + + ffmpeg options + + + + + Speed percentage + + + + + Static constructor to instanciate a InputFFMpegSettings object + Requires an InputSettings class with InputKind of ffmpeg_source to create + + Setings object + + + + + Settings for a source item + + + + + Settings for the source + + + + + Builds the object from the JSON data + + JSON item description as a + + + + Default Constructor for deserialization + + + + + Source volume values + + + + + Name of the source + + + + + The source volume in percent + + + + + The source volume in decibels + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Empty constructor for jsonconvert + + + + + Key Modifiers + + + + + No modifiers + + + + + Shift Key + + + + + Alt Key + + + + + Control Key + + + + + Command (Mac) / WinKey (?) Windows + + + + + Status of a Media Input + + + + + State of the media input + + + + + State of the media input + + + + + Total duration of the playing media in milliseconds. `null` if not playing + + + + + Position of the cursor in milliseconds. `null` if not playing + + + + + Instantiate from JObject + + + + + + Default Constructor + + + + + Information on a connected Monitor + + + + + Monitor height (px) + + + + + Monitor width (px) + + + + + Monitor Name + + + + + Monitor Index + + + + + Monitor Position X + + + + + Monitor Position Y + + + + + Constructor to auto populate + + + + + + Default Constructor + + + + + OBS Hotkeys as defined here: https://github.com/obsproject/obs-studio/blob/master/libobs/obs-hotkeys.h + + + + + Describes a scene in OBS, along with its items + + + + + OBS Scene name + + + + + Is group + + + + + Scene item list + + + + + Builds the object from the JSON description + + JSON scene description as a + + + + Default Constructor for deserialization + + + + + OBS Stats + + + + + Current framerate. + + + + + Number of frames rendered + + + + + Number of frames missed due to rendering lag + + + + + Number of frames outputted + + + + + Number of frames skipped due to encoding lag + + + + + Average frame render time (in milliseconds) + + + + + Current CPU usage (percentage) + + + + + Current RAM usage (in megabytes) + + + + + Free recording disk space (in megabytes) + + + + + Total number of messages received by obs-websocket from the client + + + + + Total number of messages sent by obs-websocket to the client + + + + + Version info of the plugin, the API and OBS Studio + + + + + obs-websocket plugin version + + + + + OBS Studio version + + + + + OBSRemote compatible API version.Fixed to 1.1 for retrocompatibility. + + + + + List of available request types, formatted as a comma-separated list string (e.g. : "Method1,Method2,Method3"). + + + + + Image formats available in `GetSourceScreenshot` and `SaveSourceScreenshot` requests. + + + + + Name of the platform. Usually `windows`, `macos`, or `ubuntu` (linux flavor). Not guaranteed to be any of those + + + + + Description of the platform, like `Windows 10 (10.0)` + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Empty constructor for jsonconvert + + + + + Basic OBS video information + + + + + Numerator of the fractional FPS value + + + + + Denominator of the fractional FPS value + + + + + Base (canvas) width + + + + + Base (canvas) height + + + + + Width of the output resolution in pixels + + + + + Height of the output resolution in pixels + + + + + Describes the state of an output (streaming or recording) + + + + + The output is initializing and doesn't produce frames yet + + + + + The output is running and produces frames + + + + + The output is stopping and sends the last remaining frames in its buffer + + + + + The output is completely stopped + + + + + The output is paused (usually recording output) + + + + + The output is resumed (i.e. no longer paused) - usually recording output + + + + + Data when Stream/Recording/Instant_Replay change states + + + + + Is output currently active (streaming/recording) + + + + + Output state as string + + + + + OutputState enum of current state + + + + + Constructor + + + + + + Default Constructor for deserialization + + + + + Status of streaming output + + + + + True if streaming is started and running, false otherwise + + + + + Whether the output is currently reconnectins + + + + + Current formatted timecode string for the output + + + + + Current duration in milliseconds for the output + + + + + Congestion of the output + + + + + Nubmer of bytes sent by the output + + + + + Number of frames skipped by the output's process + + + + + Total number of frames delivered by the output's process + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Default Constructor for deserialization + + + + + GetRecordingStatus response + + + + + Current recording status + + + + + Whether the recording is paused or not + + + + + Current formatted timecode string for the output + + + + + Current duration in milliseconds for the output + + + + + Number of bytes sent by the output + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Default Constructor for deserialization + + + + + Data when Recording change states + + + + + File name for the saved recording, if record stopped. null otherwise + + + + + Constructor + + + + + + Default Constructor for deserialization + + + + + Response from + + + + + Name of scene + + + + + Index of scene + + + + + Types of bounding boxes for scene items + + + + + Stretch + + + + + Inner scale + + + + + Outer scale + + + + + Scale to width + + + + + Scale to height + + + + + Max only + + + + + No bounds + + + + + Meta data regarding a Scene item + + + + + Unique item id of the source item + + + + + Kind of source (Example: vlc_source or image_source) + + + + + Name of the scene item's source + + + + + Type of the scene item's source. + + + + + Builds the object from the JSON data + + JSON item description as a + + + + Default Constructor for deserialization + + + + + Type of scene item's source + + + + + Input + + + + + Filter + + + + + Transition + + + + + Scene + + + + + Item transformation information + + + + + Alignment of the item + + + + + The point on the scene item that the item is manipulated from + + + + + Height of the bounding box + + + + + Width of the bounding box + + + + + Type of bounding box + + + + + Bottom crop (in pixels) + + + + + Left crop (in pixels) + + + + + Right crop (in pixels) + + + + + Top crop (in pixels) + + + + + The clockwise rotation of the scene item in degrees around the point of alignment. + + + + + The x-scale factor of the scene item + + + + + The y-scale factor of the scene item + + + + + Base height (without scaling) of the source + + + + + Base width (without scaling) of the source + + + + + Scene item height (base source height multiplied by the vertical scaling factor) + + + + + Scene item width (base source width multiplied by the horizontal scaling factor) + + + + + The x position of the scene item from the left + + + + + The y position of the scene item from the top + + + + + Initialize the scene item transform + + + + + + Default Constructor for deserialization + + + + + Gets the Active and Showing state of a video source + + + + + Whether the source is showing in Program + + + + + Whether the source is showing in the UI (Preview, Projector, Properties) + + + + + Auto populate constructor + + + + + + Default Constructor + + + + + Tracks status for a source item + + + + + Is the track active + + + + + Is the track active + + + + + Is the track active + + + + + Is the track active + + + + + Is the track active + + + + + Is the track active + + + + + Builds the object from the JSON data + + JSON item description as a + + + + Default Constructor for deserialization + + + + + Streaming settings + + + + + Type of streaming service + + + + + Streaming service settings (JSON data) + + + + + Streaming server settings + + + + + The publish URL + + + + + The publish key of the stream + + + + + Indicates whether authentication should be used when connecting to the streaming server + + + + + The username to use when accessing the streaming server. Only present if use-auth is true + + + + + The password to use when accessing the streaming server. Only present if use-auth is true + + + + + Scene transition override settings + + + + + Name of the current overriding transition. Empty string if no override is set. + + + + + Transition duration in milliseconds. -1 if no override is set. + + + + + Current transition settings + + + + + Transition name + + + + + Transition duration in milliseconds + + + + + Kind of the transition + + + + + Whether the transition uses a fixed (unconfigurable) duration + + + + + Whether the transition supports being configured + + + + + Object of settings for the transition. 'null' if transition is not configurable + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Default Constructor for deserialization + + + + + VirtualCam Status + + + + + Whether the output is active + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Constructor for jsonconverter + + + + + Volume settings of an OBS source + + + + + Source volume in linear scale (0.0 to 1.0) + + + + + Volume setting in dB + + + + + Builds the object from the JSON response body + + JSON response body as a + + + + Default Constructor for deserialization