-
Β© 2026 FNBubbles420 Org β Licensed under GPLv3
BrowserStream Studio is a secure, local-first, web-based streaming application inspired by OBS. It supports multi-platform streaming (Twitch, YouTube, Kick), a live video preview, a plugin system, and strong security by default. All user data and plugins are stored locally.
- Start/stop streaming to any RTMP endpoint (Twitch, YouTube, Kick, or custom)
- Live video preview in the browser
- Secure plugin system (install, remove, run plugins with sandboxing)
- User-friendly UI for stream settings and account management
- OAuth login/connect for Twitch, YouTube, and Kick
- Local storage per user (no cloud)
- Security: input sanitization, session security, rate limiting, plugin sandboxing
π Welcome to BrowserStream Studio!
This app lets you stream to Twitch, YouTube, Kick, or any RTMP server, right from your desktopβno cloud, no accounts required. All your data stays on your computer.
- π» A computer with Windows, Mac, or Linux
- π’ Node.js 18 or newer (Download here)
- π (Optional) Git if you want to get updates or contribute
- π¬ FFmpeg must be installed and available in your system PATH (required for streaming)
- πͺ Windows Users:
- Download FFmpeg and extract the ZIP file.
- Copy the
binfolder path (e.g.,C:\ffmpeg\bin). - Press Win + R, type
sysdm.cpl, and press Enter. - Go to the Advanced tab and click Environment Variables.
- Under System variables, select
Pathand click Edit. - Click New and paste the
binfolder path. Click OK to save. - Open a new terminal and run
ffmpeg -versionto check it works.
- π Mac Users:
- Install via Homebrew:
brew install ffmpeg - Homebrew automatically adds FFmpeg to your PATH.
- Install via Homebrew:
- π§ Linux Users:
- Install via your package manager, e.g.
sudo apt install ffmpeg(Debian/Ubuntu) - Most package managers add FFmpeg to your PATH automatically.
- Install via your package manager, e.g.
β οΈ Note: Electron, Node.js, and all dependencies are cross-platform. Just make sure FFmpeg is installed and available in your PATH for your OS.
1οΈβ£ Download or Clone the App
- π If you know Git:
git clone <repo-url>and open the folder - π¦ Or, download the ZIP from GitHub and unzip it
2οΈβ£ Install Everything
- π₯οΈ Open a terminal/command prompt in the app folder
- Run:
npm install cd main/backend && npm install cd ../frontend && npm install cd ../../main && npm install
3οΈβ£ Set Up Streaming Accounts (Optional, but recommended)
- π Open
main/backend/.envin a text editor - π Add your Twitch, YouTube, and Kick client IDs/secrets (see the wiki or ask for help if unsure)
- π Set
RTMP_URLto your stream server (for Twitch, see your dashboard for the right URL)
-
π‘ Tip for Windows Users: To open a terminal in the correct folder easily, open your project folder in File Explorer, click the URL bar, type
cmd, and press Enter. This will open Command Prompt in the right location. Then just run the app as described below!
- In the app folder, open a terminal or command prompt and run:
npm run dev
- β³ Wait a few moments. The app will automatically open in a desktop window (Electron). If it doesn't, check your terminal for errors.
- π You can also open your web browser and go to http://localhost:3000 to use the app in your browser.
β οΈ Leave the terminal open while using the app! Closing it will stop the app.- π οΈ For more advanced options (like running backend/frontend/Electron separately), see the "For Developers" section below.
1οΈβ£ Open the App
- π₯οΈ The app will open in a desktop window (Electron)
- π Or, visit http://localhost:3000 in your browser 2οΈβ£ Preview Your Camera
- π₯ Go to the Stream page to see your live camera and mic 3οΈβ£ Connect Your Streaming Accounts
- βοΈ Go to Settings
- π Click "Connect Twitch", "Connect YouTube", or "Connect Kick" and follow the prompts 4οΈβ£ Set Your Stream Settings
- ποΈ In Settings, choose your bitrate, resolution, and output type (RTMP or HLS) 5οΈβ£ Start Streaming!
- π Go to the Stream page and click Start Streaming
- π To stop, click Stop Streaming 6οΈβ£ Try Plugins
- π§© Go to the Plugins page to install, run, or remove plugins
-
ποΈ All your data stays on your computer. No cloud, no tracking.
-
π³οΈ If you see a blank window: Make sure you ran
npm run devand left the terminal open.
-
π Need help? Open an issue on GitHub or ask a friend who knows Node.js.
-
π Want to stream to a different platform? Just set the correct RTMP URL in Settings or
.env.
π Enjoy streaming!
We welcome contributions! To make BrowserStream Studio better:
- Fork the repo and clone your fork
- Create a new branch for your feature or fix
- Make your changes (see code structure below)
- Test locally (see Quick Start above)
- Submit a pull request with a clear description
main/frontend/β React (Vite, TypeScript, MUI) UImain/backend/β Node.js/Express backend, plugin sandbox, OAuth, ffmpegmain/β Electron main processdb.jsonβ Local user/plugin data (auto-created)
- Keep security in mind: sanitize all user input, never run untrusted code outside the plugin sandbox
- Write clear, user-friendly UI/UX
- Test your changes before submitting
- Document new features in this README
- All user data and plugins are stored locally
- Plugins run in a Node.js VM sandbox with no access to the system
- Input/output is sanitized throughout
- Sessions, rate limiting, and CORS are enabled by default
- Found a bug? Open an issue or pull request
- Want a new feature? Open an issue or contribute!
Happy streaming and hacking!
- Node.js 18+ and npm
- (Optional) Yarn if you prefer
- (Optional) Git for version control
From the project root:
npm install
cd main/backend
npm install
cd ../frontend
npm install
cd ../../main
npm install
Edit backend/.env and set your Twitch, YouTube, and Kick client IDs and secrets.
- Start Backend:
cd main/backend npm run dev - Start Frontend (in a new terminal):
cd main/frontend npm run devβ οΈ Leave this terminal running! The Electron app needs the frontend dev server to be running at http://localhost:3000. - Start Electron App (in another terminal, from project root):
npm startElectron will open and load the running frontend. If you see a blank window, make sure the frontend dev server is running.
From the project root, run:
npm run dev
This will start the backend, frontend, and Electron app together (using concurrently). Useful for quick development, but you may need to scroll up to see all logs.
-
The app now includes a user-friendly Settings page for adjusting stream settings (bitrate, resolution, output) and managing account connections (Twitch, YouTube, Kick).
-
Access the Settings page from the Home screen or via the /settings route.
-
The backend runs on http://localhost:4000
-
The frontend runs on http://localhost:3000
-
Electron loads the frontend and connects to the backend
- Local storage is per user (per machine)
- Plugins and user data are stored locally
- OAuth for Twitch, YouTube, and Kick is set up for local development
- Security and sanitization are enabled by default