{"id":27326571,"url":"https://github.com/acdvs/td-obswebsocket","last_synced_at":"2025-04-12T11:58:52.239Z","repository":{"id":187196196,"uuid":"676474024","full_name":"acdvs/TD-OBSWebSocket","owner":"acdvs","description":"A packaged TouchDesigner component that connects to an OBS WebSocket server to send requests and receive events.","archived":false,"fork":false,"pushed_at":"2024-02-04T23:07:11.000Z","size":152,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-02T04:22:01.270Z","etag":null,"topics":["obs","python","touchdesigner","websocket"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acdvs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-09T09:26:47.000Z","updated_at":"2024-02-05T16:00:31.000Z","dependencies_parsed_at":"2023-08-09T11:26:46.542Z","dependency_job_id":"2af389e9-2bcd-4844-a88c-27cfd62f646c","html_url":"https://github.com/acdvs/TD-OBSWebSocket","commit_stats":null,"previous_names":["acdvs/td-obswebsocket"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acdvs%2FTD-OBSWebSocket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acdvs%2FTD-OBSWebSocket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acdvs%2FTD-OBSWebSocket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acdvs%2FTD-OBSWebSocket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acdvs","download_url":"https://codeload.github.com/acdvs/TD-OBSWebSocket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565085,"owners_count":21125415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["obs","python","touchdesigner","websocket"],"created_at":"2025-04-12T11:58:51.730Z","updated_at":"2025-04-12T11:58:52.225Z","avatar_url":"https://github.com/acdvs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TD-OBSWebSocket\r\n\r\nA packaged TouchDesigner component that connects to an [obs-websocket][5] server and receives all available events.\r\n\r\n## Basic Usage\r\n\r\n1. Download the .tox file from the [Releases][4] page and place it in a location convenient for your project.\r\n2. Drag and drop it into your project.\r\n3. Set the Address and Port of the server in the Connection parameters tab. Set the Password if there is one.\r\n4. If Auto-Reconnect is enabled, the component will connect to the server automatically.  \r\n   If Auto-Reconnect is disabled, enable the Active switch to connect to the server.\r\n\r\nOnce connected, any event data received will be set in the corresponding parameter. This makes the data easy to consume by, for example, connecting a Parameter Execute DAT to the OBSWebSocket component.\r\n\r\n## Features\r\n\r\n### High-Volume Events\r\n\r\nSeveral events are considered \"high-volume\" and must be individually opted into to receive them. You can do this in the Connection parameters tab. These events are:\r\n\r\n- Input Volume Meters\r\n- Input Active State Changed\r\n- Input Show State Changed\r\n- Scene Item Transform Changed\r\n\r\nIt's possible to enable or disable high-volume events while connected to the server, though doing so will force a reconnect.\r\n\r\n### Sending Requests\r\n\r\nTwo methods on the OBSWebSocket component can be used to send requests to OBS.\r\n\r\n`SendRequest(requestType, requestId, requestData)`  \r\nSends a single request\r\n\r\n| Parameter | Data type | Default value | Description | Optional |\r\n| -- | -- | -- | -- | -- |\r\n| `requestType` | [RequestType][2] | | The type of the request | |\r\n| `requestId` | string | \\\u003cuuid4\u003e | A custom ID used to track the request | :white_check_mark: |\r\n| `requestData` | dict | None | Any input the request requires | :white_check_mark: |\r\n\r\n`SendRequestBatch(data, executionType, haltOnFailure)`  \r\nSends one or more requests together\r\n\r\n| Parameter | Data type | Default value | Description | Optional |\r\n| -- | -- | -- | -- | -- |\r\n| `data` | list[dict[str, Any]] | | A list of payloads taking the form of `SendRequest`'s parameters | |\r\n| `executionType` | [RequestBatchExecutionType][3] | SERIAL_REALTIME | The request execution type | :white_check_mark: |\r\n| `haltOnFailure` | bool | False | Stops the batch if one request fails | :white_check_mark: |\r\n\r\nThe `RequestType` and `RequestBatchExecutionType` enums are promoted by the extension and can be easily accessed on the component with `op.OBSWebSocket.[EnumName]`. See the [source](scripts/OBSEnums.py) for all enums and values.\r\n\r\nEach request type's input for `requestData` can be found in the [obs-websocket documentation][1].\r\n\r\nFor batch requests, it's recommended to provide a custom `requestId` with each request. This will help you identify responses in the results table (found at OBSWebSocket/out1) where each one is logged until the next request is sent.\r\n\r\n## Contributing\r\n\r\nIf you are considering adding a new feature or change to the project, first create a feature request issue to document it and get feedback before proceeding. If you are considering fixing a bug, first open a bug report issue or search for an existing one.\r\n\r\n[1]: https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#general-requests\r\n[2]: scripts/OBSEnums.py#L96\r\n[3]: scripts/OBSEnums.py#L32\r\n[4]: https://github.com/acdvs/TD-OBSWebSocket/releases\r\n[5]: https://github.com/obsproject/obs-websocket","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facdvs%2Ftd-obswebsocket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facdvs%2Ftd-obswebsocket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facdvs%2Ftd-obswebsocket/lists"}