{"id":29543919,"url":"https://github.com/web3nelly/change-obs-scene","last_synced_at":"2026-04-07T08:32:39.039Z","repository":{"id":151420189,"uuid":"623761203","full_name":"web3nelly/change-obs-scene","owner":"web3nelly","description":"Node.js npm module. Using obs-websocket-js to automate our live stream. See Automations in action on:","archived":false,"fork":false,"pushed_at":"2023-04-07T08:59:41.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-27T11:36:57.357Z","etag":null,"topics":["automatic-scene-switcher","automation","change-obs-scene","nodejs","npm-package","obs","obs-scene","obs-scene-switcher","obs-scenes","obs-studio","obs-switch-scene","obs-websocket-js","scene-switcher","setcurrentprogramscene","streaming","switch-scenes","websocket","websocket-application"],"latest_commit_sha":null,"homepage":"https://twitch.tv/breaking3Dreality","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/web3nelly.png","metadata":{"files":{"readme":"README.md","changelog":"change-obs-scene.js","contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2023-04-05T03:07:25.000Z","updated_at":"2023-04-06T08:28:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"f19790a7-f8b0-4316-982a-40a3c616bfb4","html_url":"https://github.com/web3nelly/change-obs-scene","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/web3nelly/change-obs-scene","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3nelly%2Fchange-obs-scene","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3nelly%2Fchange-obs-scene/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3nelly%2Fchange-obs-scene/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3nelly%2Fchange-obs-scene/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/web3nelly","download_url":"https://codeload.github.com/web3nelly/change-obs-scene/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web3nelly%2Fchange-obs-scene/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31506562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["automatic-scene-switcher","automation","change-obs-scene","nodejs","npm-package","obs","obs-scene","obs-scene-switcher","obs-scenes","obs-studio","obs-switch-scene","obs-websocket-js","scene-switcher","setcurrentprogramscene","streaming","switch-scenes","websocket","websocket-application"],"created_at":"2025-07-17T14:09:09.761Z","updated_at":"2026-04-07T08:32:39.032Z","avatar_url":"https://github.com/web3nelly.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `@b3nelly/change-obs-scene` Node.js npm Package\n\nWith just a few lines of code, automate changing your OBS scenes using the [@b3nelly/change-obs-scene](https://www.npmjs.com/package/@b3nelly/change-obs-scene?activeTab=readme) npm package. 💜\n\n## Dependancies\n\n- [OBS](https://obsproject.com/)\n- [Node.js](https://nodejs.org/)\n- [NPM](https://www.npmjs.com/)\n- [obs-websocket-js](https://www.npmjs.com/package/obs-websocket-js)\n\n## Installation\n\n```shell\nnpm install @b3nelly/change-obs-scene\n```\n\n## Usage\n\n**First, launch OBS and enable the WebSocket Server**\n\n`Tools \u003e WebSocket Server Settings`:\n\n- ![obs websocket server settings image](https://github.com/web3nelly/obs-stream-automation/blob/main/assets/obs-websocket-server-settings.png?raw=true)\n- Don't forget to set your _Server Password_\n- If you do not set a password, you do not need to pass the `obsWebSocketServerPassword` param to `changeScene()`\n\n### Simple Usage Example\n\n```js\nconst changeScene = require(\"@b3nelly/change-obs-scene\").default;\nconst intervalInSeconds = 30; // 30 seconds per scene\nchangeScene(intervalInSeconds); // it's that simple.\n```\n\n### CommonJS (cjs) Usage Example\n\n```js\nconst changeScene = require(\"@b3nelly/change-obs-scene\").default;\n\nconst obsSkipScenes = [];\nconst intervalInSeconds = 30;\nconst obsWebSocketServerPassword = \"your-password-here\";\nconst obsWebSocketServerURL = \"ws://localhost:4455\";\n\nchangeScene(\n  intervalInSeconds,\n  obsSkipScenes,\n  obsWebSocketServerPassword,\n  obsWebSocketServerURL\n);\n```\n\n### ECMAScript Module (esm) Usage Example\n\n```js\nimport changeScene from \"@b3nelly/change-obs-scene\";\n\nconst obsSkipScenes = [];\nconst intervalInSeconds = 30;\nconst obsWebSocketServerPassword = \"your-password-here\";\n\nchangeScene(intervalInSeconds, obsSkipScenes, obsWebSocketServerPassword);\n```\n\n### Asynchronous Module Definition (amd) Usage Example\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e\n    \u003cmeta charset=\"UTF-8\" /\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /\u003e\n    \u003ctitle\u003eAMD Example\u003c/title\u003e\n    \u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js\"\u003e\u003c/script\u003e\n    \u003cscript\u003e\n      require.config({\n        paths: {\n          changeScene: \"@b3nelly/change-obs-scene/dist/change-obs-scene.amd\",\n        },\n      });\n\n      require([\"changeScene\"], function (changeScene) {\n        const obsSkipScenes = [];\n        const intervalInSeconds = 90;\n        const obsWebSocketServerPassword = \"your-password-here\";\n\n        changeScene(\n          intervalInSeconds,\n          obsSkipScenes,\n          obsWebSocketServerPassword\n        );\n      });\n    \u003c/script\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\u003c/body\u003e\n\u003c/html\u003e\n```\n\n## API\n\n```js\nchangeScene(\n  intervalInSeconds,\n  obsSkipScenes,\n  obsWebSocketServerPassword,\n  obsWebSocketServerURL\n);\n```\n\n| Parameter                               |      Type       |         Default          | Description                                           |\n| :-------------------------------------- | :-------------: | :----------------------: | ----------------------------------------------------- |\n| `intervalInSeconds` (optional)          |    `number`     |           `60`           | Number of seconds between each scene                  |\n| `obsSkipScenes` (optional)              | `Array\u003cstring\u003e` |           `[]`           | An array of scene names to skip when switching scenes |\n| `obsWebSocketServerPassword` (optional) |    `string`     |       `undefined`        | OBS WebSocket Server Password                         |\n| `obsWebSocketServerURL` (optional)      |    `string`     | `\"ws_://localhost:4455\"` | OBS WebSocket Server URL / IP                         |\n\n## `change-obs-scene` In Action\n\n![Working change obs scene example image](https://github.com/web3nelly/obs-stream-automation/blob/main/assets/change-obs-scene.png?raw=true)\n\n## CLI\n\n```shell\nnpm run cli\n```\n\nYou will be prompted to enter in the `changeSence()` params. Leave param blank to use default value.\n\n## Build\n\n```shell\nnpm run build\n```\n\nRunning the `build` command will automatically create the `dist/` dir and create/update the `cjs`, `esm`, and `amd` files inside.\n\nConfiguration file [rollup.config.js](https://github.com/web3nelly/change-obs-scene/blob/275bf0d4d8e13b7ae7547e292f0d0997a192806b/rollup.config.js)\n\n## Development Dependancies\n\n- [@babel/core](https://www.npmjs.com/package/@babel/core)\n- [@babel/preset-env](https://www.npmjs.com/package/@babel/preset-env)\n- [@rollup/plugin-babel](https://www.npmjs.com/package/@rollup/plugin-babel)\n- [@rollup/plugin-commonjs](https://www.npmjs.com/package/@rollup/plugin-commonjs)\n- [@rollup/plugin-json](https://www.npmjs.com/package/@rollup/plugin-json)\n- [@rollup/plugin-node-resolve](https://www.npmjs.com/package/@rollup/plugin-node-resolve)\n- [@rollup/plugin-terser](https://www.npmjs.com/package/@rollup/plugin-terser)\n- [rollup](https://www.npmjs.com/package/rollup)\n\n## License\n\n### MIT\n\nThis `README.md` file provides installation and usage instructions, as well as a brief description of the API for the [@b3nelly/change-obs-scene](https://www.npmjs.com/package/@b3nelly/change-obs-scene?activeTab=readme) package. Feel free to modify it as needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3nelly%2Fchange-obs-scene","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb3nelly%2Fchange-obs-scene","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb3nelly%2Fchange-obs-scene/lists"}