Skip to main content

OBS Studio websocket backend for El Decko. Allow your Elgato Stream Deck to control OBS Studio using it's webscoket server

Project description

El Decko Backend OBS Studio Websocket

OBS Studio websocket based backend for El Decko.

First run

Upon running El Decko the first time with this backend installed it will create an empty default config to connect to your local OBS Studio instance at: $XDG_CONFIG/eldecko/backend/obsws.json.
Please update the generated default credentials with the actual port and password of what is shown inside your OBS Studio Websocket Settings.

Use this backend

In order to use this backend you need to supply the streamdeck.json generated by El Decko Core with the following key_config:

{
    "STREAM_DECK_SERIAL_NUMBER": {
        "brightness": 30,
        "key_config": {
            "0": {
            "backend": "edb_obs_ws",
            "event": "SET_CURRENT_PROGRAM_SCENE",
            "event_parameters": {"name":"S: Desktop"},
            "image_idle": null,
            "image_pressed": null
            }
        }
    }
}

This will configure the very first key (0) to use this plugin (edb_obs_ws) and bind the event SwitchScene to it.
The event will receive the parameter map defined by event_parameters, name defines the name of you scene within OBS Studio.
More supported websocket events will follow.

Implemented websocket protocols

SetCurrentProgramScene

Tells OBS Studio to change the currently visible Scene to any other available scene.

Event name: SET_CURRENT_PROGRAM_SCENE
Parameters: name -> Name of your local OBS Studio Scene

GetSceneList

Returns a list with all available Scenes within OBS Studio.

Event name: GET_SCENE_LIST
Parameters: None

SetSceneItemEnabled

Set the enabled state of an item inside a given scene

Event name: SET_SCENE_ITEM_ENABLED Parameters:
scene_name -> The name of the scene
item_id -> The internal ID of the required item.
You can find this inside your OBS Scene Settings JSON.
enabled -> True or False to show/hide the item.

Example JSON:
"key_config": {
    "<key_number>": {
        "backend": "edb_obs_ws",
        "event": "SET_SCENE_ITEM_ENABLED",
        "event_parameters": {"scene_name":"S: Confeti", "item_id": 42, "enabled": false},
        "image_idle": "<some_image_path>",
        "image_pressed": null,
        "label": "Hide Video"
      },
}

ToggleSceneItemEnabled

Similar to SetSceneItemEnabled does this event show/hide an item in a given scene.
But additionally it queries the current item state and sets it to the opposite state.

Event name: ToggleSceneItemEnabled Parameters:
scene_name -> The name of the scene
item_id -> The internal ID of the required item.
You can find this inside your OBS Scene Settings JSON.

Example JSON:
"key_config": {
    "<key_number>": {
        "backend": "edb_obs_ws",
        "event": "TOGGLE_SCENE_ITEM_ENABLED",
        "event_parameters": {"scene_name":"S: Confeti", "item_id": 2},
        "image_idle": "<some_image_path>",
        "image_pressed": null,
        "label": "Confetti!"
      },
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

el_decko_backend_obs_ws-2023.5.3.tar.gz (17.3 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page