Documentation
Bring remote guests' cameras, screens and games straight into OBS. Switch them live and add titles, all from one panel.
Overview
Castalong has three pieces:
- The dashboard (this site). Where you sign up, create rooms, and get your links.
- The OBS plugin: turns each guest into a native OBS source you can switch, plus a control-panel dock and on-screen graphics that travel with each guest.
- The guest page: a link you share; guests open it and their camera / screen / game goes into your show over WebRTC.
A room is one show. Guests join a room by its link; you control that room from OBS or the web.
Quick start
- Create an account.
- On the dashboard, click Create room and name your show.
- Copy the room's guest link and send it to your guests.
- Set up OBS once (next section) using the room's plugin key, room id and links.
- Open the control panel, hit Connect, and punch a guest live.
Rooms & links
Each room on your dashboard gives you:
| Item | What it's for |
|---|---|
| Guest link | Send to guests. Opens the join page straight into this room. |
| Guest app | A standalone Windows app, pre-linked to the room — hand it to a guest who'd rather not use a browser (see joining a show). |
| Control panel | The live switcher + graphics. Open in a browser or add it as an OBS dock. |
| Producer link / Stream Deck | A room-scoped link + token so a producer (or a Stream Deck) can run the room without your account. |
| Plugin server | The server address the OBS source connects to. |
Your plugin key (shown on the dashboard, starts with ck_) authenticates OBS and the control panel. Room ids carry a random suffix so links can't be guessed.
Access controls
Per room you can set a guest PIN, turn on a waiting room (admit guests one by one), lock the room mid-show so no new guests can join, and kick a guest from the control panel. Pick a show template when creating a room and Castalong pre-builds sensible outputs for that format.
Set up OBS
Do this once per machine: install the plugin, paste one Config URL, add the control dock. The guest sources create themselves.
The plugin is a free download from your dashboard (Windows and Linux builds). Unzip the
castalong folder into your OBS plugins dir — on Windows
%ProgramData%\obs-studio\plugins\, on Linux ~/.config/obs-studio/plugins/ — then restart OBS.
After that the plugin updates itself from inside OBS (Castalong dock → Settings → Check for updates). The zip includes a README with the same steps.
1 Ā· Paste your Config URL - that's the whole setup
- On your dashboard, under OBS installs, add an install for your room. It gets a Config URL like
https://castalong.me/config/ci_0a1b2c3d⦠- In OBS: Sources ā + ā Castalong Guest, and paste that URL into Config URL. Done.
The source pulls its whole profile from your dashboard and sets everything up for you:
- It configures itself (server, room and key - no manual fields).
- It creates the other guest sources your room defines (e.g. a Game screen-share source next to the Program camera source).
- On-screen graphics (name lower-third, branding frame, ticker) are built into the guest sources and travel with each guest — nothing extra to add or align.
2 Ā· The control dock is already there
The plugin adds a native Castalong dock to OBS for you, with no browser dock to set up. It appears on the right the first time you start OBS after installing (hidden it? re-enable it from the Docks menu, then drag it wherever you like).
- Open Tools ā Castalong Settings and paste your Config URL (from the dashboard) under Connection. The dock connects automatically and reconnects next time.
- From the dock, switch guests with their live thumbnails, take with a Cut or Fade, mute a guest, admit from the lobby, and use Talkback.
- Send a guest their invite without leaving OBS: the dock shows the room's Guest link with a Copy button.
- Open Graphics at the bottom of the dock to set the name accent and corner, a branding-frame PNG and a ticker. The name fills in automatically when you take a guest; choose which elements actually show on each source with that source's own graphics checkboxes.
3 Ā· Manual setup (optional)
No Config URL handy, or you want a non-standard layout? Every Castalong source can also be configured by hand, with the values from your dashboard:
| Field | Value |
|---|---|
| Server | Your plugin server |
| Room | Your room id |
| Track | Camera, Screen, or Auto |
| Bus | program (the live output) |
On-screen graphics need no separate source: the name lower-third, branding frame and ticker are rendered straight onto each guest's video by the plugin, so they follow the guest wherever you route them.
Switch guests & placements
In the control panel: enter the room and hit Connect. Each guest shows up as their own tile with a live thumbnail and a button per placement. (The browser panel also shows a connection dot and bitrate per guest; those land in the native dock in a later update.)
- Placements: every Castalong source you add is a placement, named by its Bus (e.g. one source
fullscreen, anotherfacecam). The panel discovers them automatically and shows a button per placement on each guest tile. - Route: click a placement button to drop that guest into that spot; click it again to clear it. Any guest can go to any placement, and an empty placement is transparent (your scene shows through, not a black box).
- Take: Cut (instant) or Fade with a duration in ms.
- Talkback: the š button sends your mic into the room so your guests can hear you.
- Clear all: take every placement to nothing.
To run a big fullscreen source and a small facecam corner, add two Castalong sources, name their buses, and place them in your scene where you want. Then route any guest into either.
Add a Castalong Audio source to hear every guest at once on your stream. It mixes all guests' audio into one track, so a conversation stays audible no matter who's on the program video.
Delay a feed (co-streams)
Castalong feeds arrive in well under a second, but your outgoing stream to Twitch or YouTube runs seconds behind. If you co-stream a main broadcast (their program feed coming in as a Castalong source), that mismatch means you react to things your viewers haven't seen yet.
Every Castalong Guest source has a Delay (seconds) property (0 to 30). It holds that one incoming feed back, video and audio together, before it reaches your scene. Your own camera, game and mic stay live; only the relayed feed is shifted.
- Right-click the Castalong source carrying the main feed ā Properties.
- Set Delay (seconds) to your platform delay (check your stream dashboard's latency, often 3 to 8 seconds).
- Click OK. The feed goes quiet for that many seconds once, then runs continuously at the offset.
Switching guests on a delayed source restarts its buffer: after a route change the feed takes one delay-length to reappear. For co-streaming that's normal; you set the route once and leave it.
On-screen graphics
Castalong draws graphics straight onto each guest's video, so they travel with the guest wherever you switch them — no separate overlay source to add or align. There are three elements:
- Name lower-third — the guest's name (auto-filled when you punch them) with your accent colour and corner.
- Branding frame — a transparent-centre PNG that surrounds the webcam, Twitch-facecam style.
- Ticker — a scrolling strip along the bottom.
Set the content (name accent and corner, branding-frame PNG URL, ticker text) in the dock's Graphics panel; the guest's name fills in automatically when you take them, and edits apply live.
Choose what shows on each source
Every Castalong Guest source has its own graphics checkboxes in Properties:
- Graphics: show name lower-third on this source
- Graphics: show branding frame on this source
- Graphics: show ticker on this source
So you can run, say, the ticker only on a fullscreen game, just the name on a facecam, and the full set on a second facecam. Toggling a box applies live — no reconnect, no dropped video. All three are on by default.
Record guests
Castalong can record each guest to their own file while you stream, so you get clean, separate ISO takes to edit afterwards (a podcast, an interview, a panel). The recording happens on the server, not on your machine, so it doesn't cost you any local CPU or upload.
- In the control panel, click Record. It turns into a live REC timer.
- Every guest in the room is captured to their own MP4. Guests who join mid-session are picked up automatically.
- Click Record again to stop (it also stops on its own at the session limit).
- On your dashboard, open Recordings to download each guest's file, a WAV of just their audio, or a "Download all" zip of the whole session.
More recording tools
- Chapter markers: hit ļ¼ Marker in the control panel during a recording to drop a timestamped marker (with an optional label). They ship in the zip bundle as
chapters.txt. - Consent indicator: while you're recording, guests see a "this session is being recorded" badge on their join page.
- Local fail-safe: a guest can hit āŗ Local backup to record their own camera+mic on their device as a safety net — it downloads to them when they stop, independent of the connection.
- Cloud export: set an S3-compatible bucket under Dashboard → Integrations and finished recordings upload there automatically (and a
recording.finishedwebhook fires with the download URLs).
Audio production
Remote shows usually fail on audio before video, so Castalong gives you real control over it — some in the control panel, some via OBS's own audio tools on the Castalong Audio source.
Per-guest gain & mute (control panel)
- Gain: each guest tile has a gain slider (0–200%). It scales that guest's level in your mix live — ride a quiet guest up or a loud one down without touching their setup.
- Stream mute: the š/š button drops a guest from your stream's mix only; other guests still hear them (so a side conversation never hits air).
Cleaner capture (per guest)
In the green room, guests can toggle noise suppression, echo cancellation and auto gain (all on by default). The single biggest win is headphones — the preflight reminds them, and it removes echo at the source.
Host hears X, stream hears Y
Use Talkback (control panel / dock) to speak to guests without it going to air. For the reverse — hearing something yourself that the stream shouldn't — use OBS's Audio Monitoring on the Castalong Audio source (Advanced Audio Properties → "Monitor Only" / "Monitor and Output").
Compressor / limiter
The Castalong Audio source has a built-in Broadcast audio polish toggle (in its properties) that applies a sensible compressor (3:1 above −18 dBFS, +3 dB makeup) and a brick-wall limiter to the whole mix — one click to even out levels and stop peaks clipping. For finer control, add OBS audio filters (right-click → Filters) instead.
Per-output submix
By default the Castalong Audio source mixes all guests. Set its Submix one output only field to a bus name and it mixes only the guest currently routed to that output — so you can give each output its own audio (e.g. program audio separate from a preview), or assign each to a different OBS track.
Clean per-guest tracks for editing
Hit Record and Castalong captures each guest to their own file server-side — clean isolated audio+video per person, downloadable individually or as a zip bundle. For live multitrack into a DAW, assign the Castalong Audio source to its own OBS audio track in Advanced Audio Properties.
Audio-only guests
A guest can join with their camera off (or no camera at all) and still publish mic — perfect for a call-in or a remote co-host who's audio-only. Route their source to a bus as usual; with no video it stays transparent while their audio is in the mix.
Hand off to a producer
You don't have to run the show yourself. A producer link lets someone else drive one room's control panel, switching guests, admitting from the lobby, muting, and setting titles, from any browser. They never see your dashboard, your other rooms, or your account, and they don't need OBS.
- On the dashboard, find the room and click Create next to Producer link.
- Copy the link and send it to your producer. Opening it drops them straight into that room's control panel.
- Done with them? Click Revoke (or Create again to rotate) and the old link stops working.
Stream Deck & API
You can drive your show from an Elgato Stream Deck, or any script, with plain HTTP requests. One button press = one live switch. It does exactly what the control panel does, so a physical button can take a guest to program, cut or fade, clear a bus, roll a recording, or read who's connected.
Your key
Use a producer token: it controls one room and nothing else, and you can rotate it anytime. On the dashboard, click Create next to Producer link for the room, then copy the ptoken=⦠value out of that link (everything after ptoken=). That string, plus your room id, is all a button needs. (Your account key, ck_ā¦, also works but controls every room, so prefer the producer token on a physical device.)
The requests
Base URL is https://castalong.me. Pass the token as &token=⦠(or an Authorization: Bearer ⦠header). Both GET and POST work, so Stream Deck's basic Website button (a GET) is enough; for titles you'll want a button that can POST a body, such as BarRaider's API Requests plugin.
# Take the guest named "Alice" to the program bus (instant cut) /api/route?room=your-room-id&bus=program&guest=Alice&token=pt_⦠# Same, but fade over 400 ms, and only their screen-share track /api/route?room=your-room-id&bus=program&guest=Alice&track=screen&transition=fade&ms=400&token=pt_⦠# Clear a bus (back to transparent) /api/route?room=your-room-id&bus=program&clear=1&token=pt_⦠# Start / stop recording (POST) /recordings/start?room=your-room-id&token=pt_⦠/recordings/stop?id=rec_ā¦&token=pt_⦠# See who's connected (to find exact guest names for your buttons) /api/room?room=your-room-id&token=pt_ā¦
| Field | Meaning |
|---|---|
bus | The placement to switch (each OBS source is a bus, e.g. program, facecam, fullscreen). |
guest | The guest's name, exactly as it shows in the panel. Omit it (or clear=1) to clear the bus. |
track | auto (default), camera, or screen. |
transition | cut (default) or fade; with fade, set ms for the duration. |
For on-screen titles, the control panel's graphics relay (POST /gfx) takes the same token; see on-screen titles.
https:// address.Joining a show (guests)
No account needed. Open the link the host sent you:
- Type your name (it can appear on screen).
- Camera & mic check (optional but worth it): click Test camera & mic to preview yourself, watch the mic meter move, and pick the right camera or microphone before going in.
- Click Join and allow camera and microphone when asked.
- Use the buttons to toggle Camera / Mic, Flip camera (on phones), or Share screen: pick a window, a whole screen, or a game.
A bar at the top shows ON AIR when the host has you live, or Standby when you're connected but not on screen yet. The host switches you in and out; you don't need to do anything else.
Before the show, run the Connection check (browser + upload-speed test) and copy the result to your host if anything's flagged. You can also upload a branding frame (a PNG that frames your camera) and keep a local backup recording on your own device.
Native guest app (Windows)
If your host sends you the guest app instead of a link, just run the downloaded .exe — no install. It's pre-linked to the room; pick your camera or a window/screen to share and join. (It's unsigned for now, so Windows SmartScreen may ask you to confirm "Run anyway" the first time.)
Guests who use OBS
A guest who also runs OBS can send their own OBS content straight to the streamer. No browser tab needed.
- Install the Castalong plugin (the same one the streamer uses).
- Add a Castalong Publisher source. Set the room (or paste a Config URL from your host) and your name.
- Pick the OBS source to send from the Source to send dropdown. A camera, a game capture, a scene. Its audio is sent too. (Blank = a test pattern.)
It shows up on the streamer's panel as a normal guest input (video and audio) that they can place. To send several sources at once, add a Publisher per source; each arrives as its own input.
Bandwidth & requirements
Everything runs over WebRTC, which adapts to the connection. Castalong publishes several quality layers and automatically drops the top one when no one needs it, so these are planning figures, not hard floors.
| Who | Typical | Notes |
|---|---|---|
| Guest upload | ~2 Mbps (720p camera) | + ~2ā4 Mbps when sharing a screen or game |
| Guest download | ~0.5ā2 Mbps | host talkback (tiny) + other guests on low layers |
| Streamer download | ~2ā3 Mbps per source on screen | a 4-guest show ā 8ā12 Mbps |
| Streamer upload | minimal | just talkback mic + switch commands |
Comfortable minimums: guests want ~3ā5 Mbps up; the streamer wants ~5 Mbps down per guest shown. Wired or strong Wi-Fi is best for guests on camera.
You'll need
- Streamer: OBS 30+ on Windows or Linux with the Castalong plugin; a modern browser for the dashboard. macOS isn't supported yet for the streamer plugin — you can still run the dashboard/control panel in a browser, but the OBS plugin is Windows/Linux only for now.
- Guests: any recent Chrome / Edge / Safari / Firefox, a camera and mic, on any OS (macOS included). Screen/game share works on desktop browsers. No install, no account — or the optional native Windows guest app.
- Headphones for everyone on a call. Stops the host's talkback echoing back through open speakers.
Security
- Your plugin key controls all your rooms. Keep it secret. You can't see other streamers' rooms and they can't see yours.
- Room links are unguessable (random suffix). Share them only with your guests.
- Guests can publish their camera / screen / mic but cannot control the switcher.
- Everything runs over HTTPS / encrypted WebRTC.
Troubleshooting
A guest's camera won't start
Another app or tab is using it (often OBS's own Video Capture, or a second join tab). Close it, then click Camera on. The guest stays connected on mic-only meanwhile.
Control panel says "denied"
The link is missing your key. Use the control panel link from your dashboard, which includes it.
Graphics don't show on a guest
Graphics are drawn onto the guest's video, so check that source's Properties — the Graphics: show… boxes must be ticked — and set the content in the control panel's Graphics row. The name fills in automatically when you punch a guest.
Guest source is black
That guest hasn't turned on their camera or shared a screen yet, or the source's Track doesn't match what they're sending (e.g. Track = Screen but they only have a camera).