{"id":14962543,"url":"https://github.com/niek/obs-web","last_synced_at":"2025-05-14T16:15:14.498Z","repository":{"id":37512797,"uuid":"271250043","full_name":"Niek/obs-web","owner":"Niek","description":"OBS-web - the easiest way to control OBS remotely","archived":false,"fork":false,"pushed_at":"2025-04-07T04:14:29.000Z","size":2965,"stargazers_count":1233,"open_issues_count":17,"forks_count":147,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-13T01:56:58.362Z","etag":null,"topics":["hacktoberfest","obs","obs-studio","obs-websocket","obs-websocket-js","openbroadcaster","openbroadcastersoftware","svelte"],"latest_commit_sha":null,"homepage":"http://obs-web.niek.tv","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Niek.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},"funding":{"github":["Niek"],"custom":["https://paypal.me/niekvandermaas"]}},"created_at":"2020-06-10T10:42:28.000Z","updated_at":"2025-04-12T10:49:10.000Z","dependencies_parsed_at":"2023-11-06T07:25:39.804Z","dependency_job_id":"ced099b0-1b99-4604-bc76-a69a20e70041","html_url":"https://github.com/Niek/obs-web","commit_stats":{"total_commits":395,"total_committers":14,"mean_commits":"28.214285714285715","dds":"0.38227848101265827","last_synced_commit":"1c56bdf69dfc9d111442c63e77313a988344fa16"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Niek%2Fobs-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Niek%2Fobs-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Niek%2Fobs-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Niek%2Fobs-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Niek","download_url":"https://codeload.github.com/Niek/obs-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248654049,"owners_count":21140235,"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","obs-studio","obs-websocket","obs-websocket-js","openbroadcaster","openbroadcastersoftware","svelte"],"created_at":"2024-09-24T13:29:59.520Z","updated_at":"2025-04-13T01:57:25.141Z","avatar_url":"https://github.com/Niek.png","language":"Svelte","funding_links":["https://github.com/sponsors/Niek","https://paypal.me/niekvandermaas"],"categories":[],"sub_categories":[],"readme":"# OBS-web\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n#### The easiest way to control [OBS](https://obsproject.com/) remotely\n\n### **URL: http://obs-web.niek.tv/**\n\n###### Download latest build [here](https://github.com/Niek/obs-web/archive/gh-pages.zip)\n\n---\n\n#### Screenshot:\n\n![Screenshot of OBS-web](.github/screenshot.png)\n\n#### Features:\n\n- No installation or extra software is needed, works in any modern browser (desktop + mobile)\n- Support for local network and internet control through [WSS tunnels](https://github.com/obsproject/obs-websocket/blob/4.x-compat/SSL-TUNNELLING.md)\n- Easily switch scenes and start/stop streaming and recording\n- Support for Studio Mode (preview and program scenes)\n- Support for Virtual Camera\n- Live view of preview \u0026 output, updating 1 fps\n- Fullscreen button and wakelock support (keeps the screen on)\n- Replay Buffer button\n- Easy bookmarking/deeplink by specifying host in URL\n- Profile switching support\n- Scene Collections switching support\n- Custom transition support\n- Extra features:\n  - Hide scenes that have `(hidden)` in their name\n  - Switch sources in scenes with `(switch)` in their name visually by thumbnails\n\n\n---\n\n#### Requirements:\n\n- [OBS](https://obsproject.com/) v28 or higher - this includes the latest version of the OBS-websocket plugin\n  - OBS v27 is also supported, by manually installing the [OBS-websocket v5](https://github.com/obsproject/obs-websocket/releases/latest) plugin\n  - For older OBS versions, use the [OBS-websocket v4](https://github.com/obsproject/obs-websocket/releases/tag/4.9.1-compat) plugin and [OBS-web v4](http://obs-web.niek.tv/v4/) (no longer maintained)\n- Enabling the OBS-websocket server in OBS under `Tools -\u003e obs-websocket Settings -\u003e Enable WebSocket Server`\n- Optionally: a tunnel service if you want to control OBS outside your local network, [see these instructions](https://github.com/obsproject/obs-websocket/blob/4.x-compat/SSL-TUNNELLING.md)\n\n---\n\n#### Build instructions:\n\n```bash\nnpm ci\nnpm run dev # or: npm run build\n```\n\n#### Docker:\n\n```bash\ndocker run --rm -p5000:5000 ghcr.io/niek/obs-web\n```\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/verstaerker-583\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/40574338?v=4?s=100\" width=\"100px;\" alt=\"verstaerker-583\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003everstaerker-583\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=verstaerker-583\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://crazy4groovy.blogspot.ca\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/1110812?v=4?s=100\" width=\"100px;\" alt=\"crazy4groovy\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ecrazy4groovy\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/issues?q=author%3Acrazy4groovy\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/isctylr\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/24595776?v=4?s=100\" width=\"100px;\" alt=\"Isaac Taylor\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIsaac Taylor\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=isctylr\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-isctylr\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/darthclide\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/46735828?v=4?s=100\" width=\"100px;\" alt=\"darthclide\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edarthclide\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/issues?q=author%3Adarthclide\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://blog.rodrigograca.com/\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/1134310?v=4?s=100\" width=\"100px;\" alt=\"Rodrigo Graça\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRodrigo Graça\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=rodrigograca31\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/feitosa-daniel\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/1847734?v=4?s=100\" width=\"100px;\" alt=\"Daniel Feitosa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDaniel Feitosa\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=feitosa-daniel\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://linkedin.com/in/arun-woosaree\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/8227297?v=4?s=100\" width=\"100px;\" alt=\"Arun Woosaree\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eArun Woosaree\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=Arunscape\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://avil13.com\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/1606172?v=4?s=100\" width=\"100px;\" alt=\"Aleksey Pivkin\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAleksey Pivkin\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=avil13\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-avil13\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.nathaneaston.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10368650?v=4?s=100\" width=\"100px;\" alt=\"Nathan Easton\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNathan Easton\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=ndragon798\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.shortcord.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3823744?v=4?s=100\" width=\"100px;\" alt=\"Tristan Smith\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTristan Smith\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/issues?q=author%3Ateh-random-name\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://filiphanes.sk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/33264909?v=4?s=100\" width=\"100px;\" alt=\"Filip Hanes\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFilip Hanes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=filiphanes\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-filiphanes\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#design-filiphanes\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/Niek/obs-web/issues?q=author%3Afiliphanes\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/TotalInternalReflection\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/49660235?v=4?s=100\" width=\"100px;\" alt=\"TotalInternalReflection\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTotalInternalReflection\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/issues?q=author%3ATotalInternalReflection\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.nossa.me/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17525117?v=4?s=100\" width=\"100px;\" alt=\"Alessio Nossa\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlessio Nossa\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-alessionossa\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://tt2468.net\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/28720189?v=4?s=100\" width=\"100px;\" alt=\"tt2468\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ett2468\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-tt2468\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/donahuetech\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/28513975?v=4?s=100\" width=\"100px;\" alt=\"donahuetech\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003edonahuetech\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=donahuetech\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-donahuetech\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/AshwinSatyawan\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40487239?v=4?s=100\" width=\"100px;\" alt=\"AshwinSatyawan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAshwinSatyawan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=AshwinSatyawan\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ewized\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1458852?v=4?s=100\" width=\"100px;\" alt=\"ewized\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eewized\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=ewized\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/bzip22\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/21367547?v=4?s=100\" width=\"100px;\" alt=\"bzip22\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebzip22\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Niek/obs-web/commits?author=bzip22\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniek%2Fobs-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniek%2Fobs-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniek%2Fobs-web/lists"}