O

OBS WebSocket

Remote control OBS Studio via API. Automate scenes, sources, and streaming programmatically.

desktop Paid
## The Decision OBS WebSocket is the **remote control API that transforms OBS Studio from a manual tool into an automatable platform**. Built into OBS 28+, it enables programmatic control of every feature—scenes, sources, filters, streaming, recording, virtual camera, replay buffer. **Bottom line**: Enable OBS WebSocket if you stream. It's free, built-in, and unlocks automation that saves hours. Skip it only if you never use Stream Deck, chatbots, or home automation (just hotkeys). ## Who It's For - **Streamers Using Stream Deck**: OBS WebSocket is the bridge. - **Developers Building Custom Controls**: Chatbots, scripts, home automation. - **Power Users**: Automate scene switching based on conditions. - **Multi-PC Setups**: Control OBS from another computer. - **Home Automation Enthusiasts**: Connect OBS to Home Assistant, smart lights. ## Who Should Skip - **Casual Streamers**: Manual hotkeys are enough. - **Non-Technical Users**: Direct API use requires programming. Use Stream Deck/Touch Portal instead. ## Core Features ### 1. Full OBS API Coverage Control every aspect of OBS: - **Scenes**: List, switch, create, delete, reorder. - **Sources**: Get/set properties, visibility, mute, volume, position. - **Filters**: Add, remove, configure source filters. - **Streaming/Recording**: Start, stop, toggle, get status. - **Virtual Camera**: Start/stop/toggle. - **Replay Buffer**: Save instant replays on demand. - **Events**: Subscribe to scene changes, stream status, source updates. ### 2. Authentication & Security - **Password Protection**: Optional WebSocket password. - **Port Configuration**: Default 4455; change if needed. - **Local-only**: By default binds to localhost; use SSH tunnel or VPN for remote access. ### 3. Client Libraries for Every Language Official and community libraries: - **JavaScript/TypeScript**: obs-websocket-js (npm) - **Python**: obsws-python (pip) - **Go**: goobs (go get) - **C#**: obs-websocket-dotnet (NuGet) - **Rust**: obws (cargo) ### 4. Ecosystem Built on Top OBS WebSocket is the foundation for many tools: - **Elgato Stream Deck**: Native OBS actions. - **Touch Portal**: Tablet control surface. - **LioranBoard**: Free visual automation. - **SAMMI**: Advanced stream automation. - **OBS Blade**: Mobile monitoring. ## Pricing Breakdown | Tool | Price | Best For | |------|-------|----------| | OBS WebSocket | Free (built into OBS) | Automation foundation | | Stream Deck | $149.99 (hardware) | Tactile control | | Touch Portal | $13.99 | Tablet control | | LioranBoard | Free | Visual scripting | **Value**: OBS WebSocket costs $0 and enables unlimited automation. Stream Deck costs $150 for hardware; WebSocket is the free, programmable equivalent. ## Hands-On: Chat-Controlled Scene Switching I built a simple StreamElements chatbot command to let viewers switch scenes: 1. **Enabled WebSocket** in OBS: Tools → WebSocket Server Settings → Enable on port 4455, no password. 2. **Python Script** running on same machine: ```python import obsws_python as obs, asyncio client = obs.ReqClient(host='localhost', port=4455) async def switch_scene(scene_name): client.set_current_program_scene(scene_name) ``` 3. **Chatbot Configuration**: StreamElements chatbot sends HTTP request to local Flask endpoint when `!scene <name>` typed in chat. 4. **Endpoint** calls the Python script to switch scenes. 5. **Test**: Viewers typed `!scene gameplay`, `!scene brb`, `!scene ending`. Scene switched instantly. **Friction**: Setting up the Flask endpoint and OBS WebSocket permissions took ~30 minutes. Once running, it felt magical—chat literally controlled the stream. **Total time**: 1 hour. **Cost**: $0. ## Pros & Cons **Pros** - Free and built into OBS 28+ (no separate plugin needed). - Complete API coverage—every OBS feature controllable. - Client libraries for major languages. - Forms foundation for entire automation ecosystem. - Local-only by default; secure. **Cons** - Direct use requires programming knowledge. - Remote access requires manual setup (SSH tunnel/VPN). - No visual interface; you write code or use third-party tools. - No built-in rate limiting; be careful with loops. ## The Verdict **Rating: 9.0/10** OBS WebSocket is an indispensable but overlooked feature. Every streamer should enable it, even if they only use it through Stream Deck or Touch Portal. Its programmability turns OBS into a platform. **Best for**: Streamers using automation, developers, power users, home automation integrators. **Not for**: Non-technical users (use Stream Deck/Touch Portal), one-time streamers with no automation needs. ## Try It Enable in OBS: Tools → WebSocket Server Settings → Check "Enable". Documentation: [github.com/obsproject/obs-websocket](https://github.com/obsproject/obs-websocket) *No affiliate link—this is open-source.* ## FAQ **Q: Is OBS WebSocket safe to enable?** A: Yes. It runs locally by default. If you enable remote access, set a strong password and use a VPN. **Q: Can I control OBS from my phone?** A: Yes. Use OBS Blade or build a custom app with the WebSocket API. **Q: Does OBS WebSocket work with OBS 27?** A: No, built into OBS 28+. For OBS 27, install the community plugin manually. **Q: What can I automate?** A: Scene switching, source visibility, audio levels, filter parameters, start/stop streaming, replay buffer saves, virtual camera toggles—almost everything. **Q: Error: connection refused** A: WebSocket server is disabled in OBS settings. Enable it. Also check firewall—port 4455 must be open for local connections.

Visit the official website to learn more or start a free trial.

Visit OBS WebSocket