If you can already stream from OBS, you have everything you need. Point OBS at delayed, paste your platform keys, pick a delay, hit go.
Download the installer from the downloads page. Run it. Windows SmartScreen may complain on first launch; click More info → Run anyway. We're working through code-signing.
delayed runs in the system tray by default. Click the tray icon to open the mini player. Right-click for full Settings.
Open OBS → Settings → Stream. Set the following:
Click OK. That's the OBS side done. Every encoder you'll ever use, you'll only ever point at rtmp://127.0.0.1:1935/live.
Open delayed → Streams. Click Add destination and paste in your platform's Server URL and Stream Key. Repeat for each platform you broadcast to.
Settings → Stream → Primary Stream key. Copy the full live_… string.
Studio → Go Live → Stream → Stream key. Use a persistent key for multistreaming.
Dashboard → Stream Settings → Stream Key.
TikTok Live access required (1k followers or grant). Web "Live Center" → RTMP option.
In the mini player, click a preset (0s, 15s, 30s, 60s) or type a custom value into the "Custom seconds…" field and hit SET. The delay applies to every destination simultaneously; that's the whole point. Maximum delay is 5 minutes (300 seconds).
Hit Start Streaming in OBS as you normally would. delayed's mini player will show:
While the buffer fills, your destinations stay paused; that's expected. Once the buffer is full, every platform releases simultaneously.
When the round's over, hit SKIP TO LIVE. delayed flushes the buffer and you catch back up to live without restarting anything.
Free download from the Companion downloads section, or in-app via Settings → Integrations. Double-click the .streamDeckPlugin file and Stream Deck installs it. Available actions:
127.0.0.1 today. Community integration guides land on Discord as users ship them.delayed ships a tiny browser-source overlay that shows current delay, connection state, and a heartbeat dot. Handy for letting viewers know the stream is on a delay.
http://127.0.0.1:<port>/overlay).If you want a !delay chat command that returns your live delay state, delayed publishes status to a public URL on delayed.stream that any cloud chatbot can fetch. Off by default; enable in Settings.
The URL response is plain text: "Live", "Delayed 30s", "Building delay (30s)", or "Offline". Append ?format=json for a structured response.
Nightbot
StreamElements
Streamer.bot (runs locally; works either with the chatbot URL or directly with the local API at http://127.0.0.1:3000/api/chatbot)
!delay.%response%.Moobot, Wizebot, Fossabot: same pattern as Nightbot. Most cloud bots have a "fetch URL into command" feature; documentation varies.
When using delayed, OBS sends to a local Custom RTMP server which hides Twitch-specific options like VOD Track. delayed solves this internally: when VOD Track is enabled on a destination, it injects a silent second audio track into the stream. Twitch records track 2 in VODs, so your VODs contain silence instead of your live audio — no DMCA strikes.
Your live stream is unaffected. The live audio track is passed through at zero CPU cost. Only a silent 32 kbps track is generated and added alongside it.
Keep OBS on Custom... with server rtmp://127.0.0.1:1935/live/live as normal — no OBS changes needed.
delayed's local listener probably isn't running. Open delayed (system tray icon), confirm Settings shows rtmp://127.0.0.1:1935/live as active. If not, restart the app. If still not, Windows Firewall sometimes blocks the local listener; allow delayed.exe through Private networks.
OBS isn't actually pushing bytes. Double-check your Stream settings: Service: Custom..., Server: rtmp://127.0.0.1:1935/live, then click Start Streaming in OBS, not just Start Recording.
OBS-side error, not delayed. Two fixes, in order:
That platform is rejecting the stream. Most common: an expired stream key, a region mismatch (TikTok), or a stream quality outside the platform's accepted range (YouTube hates >9000 kbps without a verified channel). Check delayed's Streams panel for the platform-side error.
The delay clock is wall-clock accurate. If chat feels out of sync with video, you're likely seeing platform-side ingest jitter (sub-second) plus your own player latency on the platform side, which compounds.
If something's confusing, tell us. The docs improve fast.