{"id":13431591,"url":"https://github.com/obsproject/obs-websocket","last_synced_at":"2025-05-14T11:13:32.638Z","repository":{"id":37256426,"uuid":"70434365","full_name":"obsproject/obs-websocket","owner":"obsproject","description":"Remote-control of OBS Studio through WebSocket","archived":false,"fork":false,"pushed_at":"2025-03-21T19:58:52.000Z","size":3883,"stargazers_count":4054,"open_issues_count":121,"forks_count":719,"subscribers_count":110,"default_branch":"master","last_synced_at":"2025-05-06T15:33:07.291Z","etag":null,"topics":["hacktoberfest","obs-studio","remote-control","websocket"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/obsproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"obs-websocket-dev"}},"created_at":"2016-10-09T22:34:28.000Z","updated_at":"2025-05-06T12:57:02.000Z","dependencies_parsed_at":"2023-09-24T03:28:38.942Z","dependency_job_id":"c21a9807-5be4-467e-8ce0-18b3526c74bb","html_url":"https://github.com/obsproject/obs-websocket","commit_stats":{"total_commits":842,"total_committers":35,"mean_commits":"24.057142857142857","dds":0.2921615201900237,"last_synced_commit":"174b07b135cbd77f6aed456e57d53f8626380224"},"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obsproject%2Fobs-websocket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obsproject%2Fobs-websocket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obsproject%2Fobs-websocket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obsproject%2Fobs-websocket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obsproject","download_url":"https://codeload.github.com/obsproject/obs-websocket/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253503004,"owners_count":21918542,"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":["hacktoberfest","obs-studio","remote-control","websocket"],"created_at":"2024-07-31T02:01:04.350Z","updated_at":"2025-05-14T11:13:32.609Z","avatar_url":"https://github.com/obsproject.png","language":"C++","readme":"\u003c!-- markdownlint-disable no-inline-html --\u003e\n\n# obs-websocket\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/.github/images/obsws_logo.png\" width=150 align=\"center\"\u003e\n\u003c/p\u003e\n\nWebSocket API for OBS Studio.\n\n[![Discord](https://img.shields.io/discord/715691013825364120.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/WBaSQ3A)\n[![Financial Contributors on Open Collective](https://opencollective.com/obs-websocket-dev/all/badge.svg?label=financial+contributors)](https://opencollective.com/obs-websocket-dev)\n\n## Downloads\n\n**obs-websocket is now included by default with OBS Studio 28.0.0 and above. As such, there should be no need to download obs-websocket if you have OBS Studio \u003e 28.0.0.**\n\nBinaries **for OBS Studio \u003c 28.0.0** on Windows, MacOS, and Linux are available in the [Releases](https://github.com/obsproject/obs-websocket/releases) section.\n\n## Using obs-websocket\n\nIt is **highly recommended** to keep obs-websocket protected with a password against unauthorized control. obs-websocket generates a password for you automatically when you load it for the first time. To change this, open the \"obs-websocket Settings\" dialog under OBS' \"Tools\" menu. In the settings dialog, you can enable or disable authentication and set a password for it.\n\n(Psst. You can use `--websocket_port`(value), `--websocket_password`(value), `--websocket_debug`(flag) and `--websocket_ipv4_only`(flag) on the command line to override the configured values.)\n\n### Possible use cases\n\n- Remote control OBS from a phone or tablet on the same local network\n- Change your stream overlay/graphics based on the current scene\n- Automate scene switching with a third-party program (e.g. : auto-pilot, foot pedal, ...)\n\n### Client software\n\n- [Macro Deck](https://macrodeck.org/)\n- [Touch Portal](https://www.touch-portal.com/)\n- [Twitchat](https://twitchat.fr/)\n- [OBS-web](https://github.com/Niek/obs-web) - hosted client at [obs-web.niek.tv/](http://obs-web.niek.tv/)\n- [Streamer.bot](https://streamer.bot/)\n- [Deckboard](https://deckboard.app/)\n- [OBS Blade](https://github.com/Kounex/obs_blade)\n- [Aitum](https://aitum.tv/)\n- [Kruiz Control](https://github.com/Kruiser8/Kruiz-Control)\n- [Bitfocus Companion Module](https://bitfocus.io/companion/)\n- [MacroGraph](https://github.com/Brendonovich/macrograph) - hosted client [here](https://macrograph.brendonovich.dev/)\n- [MATRIC](https://matricapp.com/)\n\n### Client libraries (for developers)\n\nHere's a list of available language APIs for obs-websocket:\n\n- Python 3.7+ (Asyncio): [simpleobsws](https://github.com/IRLToolkit/simpleobsws/tree/master) by IRLToolkit\n- Python 3.10+ (Non-Asyncio): [obsws-python](https://pypi.org/project/obsws-python) by aatikturk and onyx-and-iris\n- Rust: [obws](https://github.com/dnaka91/obws) by dnaka91\n- Godot 4.0.x: [obs-websocket-gd](https://github.com/you-win/obs-websocket-gd) by you-win\n- Javascript (Node and web): [obs-websocket-js](https://github.com/obs-websocket-community-projects/obs-websocket-js) by OBS Websocket Community\n  - C (uses obs-websocket-js): [v8-libwebsocket-obs-websocket](https://github.com/dgatwood/v8-libwebsocket-obs-websocket)\n- Go: [goobs](https://github.com/andreykaipov/goobs) by andreykaipov\n- Dart/Flutter (can target all supported platforms): [obs_websocket](https://github.com/faithoflifedev/obs_websocket) by faithoflifedev\n- Java: [obs-websocket-java](https://github.com/obs-websocket-community-projects/obs-websocket-java) by OBS Websocket Community\n\nThe 5.x server is a typical WebSocket server running by default on port 4455 (the port number can be changed in the Settings dialog under `Tools`).\nThe protocol we use is documented in [PROTOCOL.md](docs/generated/protocol.md).\n\nWe'd like to know what you're building with obs-websocket! If you do something in this fashion, feel free to drop a message in `#project-showoff` in the [discord server!](https://discord.gg/WBaSQ3A)\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to [all the people](https://github.com/obsproject/obs-websocket/graphs/contributors) who contribute. [Contribute Code](https://github.com/obsproject/obs-websocket/wiki/Contributing-Guidelines).\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [Contribute Financially](https://opencollective.com/obs-websocket-dev/contribute)\n\n#### Individuals\n\n\u003ca href=\"https://opencollective.com/obs-websocket-dev\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [Contribute](https://opencollective.com/obs-websocket-dev/contribute)\n\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/0/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/1/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/2/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/3/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/4/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/5/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/6/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/7/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/8/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/obs-websocket-dev/organization/9/website\"\u003e\u003cimg src=\"https://opencollective.com/obs-websocket-dev/organization/9/avatar.svg\"\u003e\u003c/a\u003e\n","funding_links":["https://opencollective.com/obs-websocket-dev","https://opencollective.com/obs-websocket-dev/contribute","https://opencollective.com/obs-websocket-dev/organization/0/website","https://opencollective.com/obs-websocket-dev/organization/1/website","https://opencollective.com/obs-websocket-dev/organization/2/website","https://opencollective.com/obs-websocket-dev/organization/3/website","https://opencollective.com/obs-websocket-dev/organization/4/website","https://opencollective.com/obs-websocket-dev/organization/5/website","https://opencollective.com/obs-websocket-dev/organization/6/website","https://opencollective.com/obs-websocket-dev/organization/7/website","https://opencollective.com/obs-websocket-dev/organization/8/website","https://opencollective.com/obs-websocket-dev/organization/9/website"],"categories":["C++","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobsproject%2Fobs-websocket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobsproject%2Fobs-websocket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobsproject%2Fobs-websocket/lists"}