Castalong

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.
Guests šŸ“¹ šŸ–„ļø šŸŽ® in a browser WebRTC Castalong routes + switches Your OBS sources Ā· dock Ā· titles live šŸ“ŗ your stream

A room is one show. Guests join a room by its link; you control that room from OBS or the web.

Quick start

  1. Create an account.
  2. On the dashboard, click Create room and name your show.
  3. Copy the room's guest link and send it to your guests.
  4. Set up OBS once (next section) using the room's plugin key, room id and links.
  5. Open the control panel, hit Connect, and punch a guest live.

Rooms & links

Each room on your dashboard gives you:

ItemWhat it's for
Guest linkSend to guests. Opens the join page straight into this room.
Guest appA 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 panelThe live switcher + graphics. Open in a browser or add it as an OBS dock.
Producer link / Stream DeckA room-scoped link + token so a producer (or a Stream Deck) can run the room without your account.
Plugin serverThe 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.

Get the plugin Castalong OBS plugin (beta) · Windows & Linux · OBS Studio 30+ · free account
Sign in to download

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.

OBS Studio Sources ā–ø Castalong Guest ā–ø Castalong Audio your guest source(s) + the audio mix guest on program your live preview Castalong Control guest Ā· 🟢 0.9 Mb/s facecam fullscreen add as a custom browser dock

1 Ā· Paste your Config URL - that's the whole setup

  1. On your dashboard, under OBS installs, add an install for your room. It gets a Config URL like
    https://castalong.me/config/ci_0a1b2c3d…
  2. 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.
Each Config URL identifies one OBS install (it counts a seat). Re-pasting the same URL is safe: sources are created once, by name, never duplicated. When you change your room's source layout on the dashboard, new sources appear on the next OBS start.

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).

  1. Open Tools → Castalong Settings and paste your Config URL (from the dashboard) under Connection. The dock connects automatically and reconnects next time.
  2. 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.
  3. Send a guest their invite without leaving OBS: the dock shows the room's Guest link with a Copy button.
  4. 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.
Manage the plugin anytime from Tools → Castalong Settings (set the Config URL, check status, re-show the dock).

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:

FieldValue
ServerYour plugin server
RoomYour room id
TrackCamera, Screen, or Auto
Busprogram (the live output)
Webcam + game from one guest: add two sources pointed at the same room. One with Track = Camera (their facecam + mic) and one with Track = Screen (their game + game audio). Both render at once.

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.

Each Castalong Guest source has its own Graphics checkboxes (show name / frame / ticker), so you decide what appears at each placement — see on-screen graphics.

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, another facecam). 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.

  1. Right-click the Castalong source carrying the main feed → Properties.
  2. Set Delay (seconds) to your platform delay (check your stream dashboard's latency, often 3 to 8 seconds).
  3. Click OK. The feed goes quiet for that many seconds once, then runs continuously at the offset.
This is different from OBS's own tools: the Render Delay filter caps out at about half a second, and Stream Delay shifts your whole output. Only the thing receiving the feed can hold back one source by whole seconds while the rest of your scene stays live.
Two honest costs. Memory: the delayed video is held in RAM, roughly 1.4 MB per 720p frame, so a 10 s delay at 30 fps uses around 400 MB. Keep the source's Output size modest for long delays. Audio: the delay applies to the source's own audio. The Castalong Audio mix-all source is not delayed, so for a delayed feed use the source's own audio, not the mixer.

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.

  1. In the control panel, click Record. It turns into a live REC timer.
  2. Every guest in the room is captured to their own MP4. Guests who join mid-session are picked up automatically.
  3. Click Record again to stop (it also stops on its own at the session limit).
  4. 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.finished webhook fires with the download URLs).
On the free tier a session records for up to one hour, and finished files are kept for 24 hours, so download (or auto-export) what you want to keep. Each file is one guest's camera and microphone.

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.

Separate WAV export, the built-in compressor/limiter and per-output submixes are all shipped. Tell us what else your show needs.

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.

  1. On the dashboard, find the room and click Create next to Producer link.
  2. Copy the link and send it to your producer. Opening it drops them straight into that room's control panel.
  3. Done with them? Click Revoke (or Create again to rotate) and the old link stops working.
The producer shares the live state with you: if you both have a panel open, you see each other's switches. Handy for training someone, or taking over if their connection drops.

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_…
FieldMeaning
busThe placement to switch (each OBS source is a bus, e.g. program, facecam, fullscreen).
guestThe guest's name, exactly as it shows in the panel. Omit it (or clear=1) to clear the bus.
trackauto (default), camera, or screen.
transitioncut (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.

Treat the token like a password. It rides in the URL, so your Stream Deck profile (and its backups) hold a working key to your room. If it leaks, open the dashboard and click Create again to rotate the producer link; the old one stops working at once. Always use the https:// address.

Joining a show (guests)

No account needed. Open the link the host sent you:

  1. Type your name (it can appear on screen).
  2. 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.
  3. Click Join and allow camera and microphone when asked.
  4. 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.

  1. Install the Castalong plugin (the same one the streamer uses).
  2. Add a Castalong Publisher source. Set the room (or paste a Config URL from your host) and your name.
  3. 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.

WhoTypicalNotes
Guest upload~2 Mbps (720p camera)+ ~2–4 Mbps when sharing a screen or game
Guest download~0.5–2 Mbpshost talkback (tiny) + other guests on low layers
Streamer download~2–3 Mbps per source on screena 4-guest show ā‰ˆ 8–12 Mbps
Streamer uploadminimaljust 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).