Skip to content

Connect relay

Connect gives Twitch a public callback URL and forwards notifications to ReplayVOD through an outbound WebSocket connection. Your recorder verifies Twitch’s signatures. The relay doesn’t hold your Twitch credentials or signing secret.

Use Connect when you want EventSub notifications but can’t expose your recorder over public HTTPS. See Relay protocol to run your own relay.

A Connect token gives you two URLs:

URL Purpose
Ingest Public HTTPS address where Twitch sends notifications.
Subscribe WebSocket address your recorder connects to for those notifications.

Both URLs must use the same relay token.

  1. Create or retrieve your Connect token and its URLs.
  2. Open System → EventSub as the owner.
  3. Choose Connect relay and enter the ingest and subscribe URLs.
  4. Save the settings and restart ReplayVOD.
  5. Check that relay mode is active and EventSub subscriptions become enabled.

If the mode is managed through environment variables, update those variables instead.

Set these values in server/.env:

SERVER_MODE=relay
RELAY_INGEST_URL=https://relay.replayvod.com/u/<token>
RELAY_SUBSCRIBE_URL=wss://relay.replayvod.com/u/<token>/subscribe

Replace <token> in both URLs with your token. A complete environment configuration takes precedence over dashboard settings. Restart the server to apply it; with Compose, run up -d to recreate the container after an environment change.

Keep PUBLIC_BASE_URL set to your ReplayVOD dashboard address. The relay URL is only for Twitch notifications.

The relay client forwards notifications to http://127.0.0.1:${PORT}/api/v1/webhook/callback by default. Set RELAY_LOCAL_CALLBACK_URL only if your local callback differs; it must use a loopback address.

Look for Relay client started in the recorder logs and enabled subscriptions in System → EventSub. If verification fails, check that both relay URLs use the same token and that the recorder can make outbound WebSocket connections.

A server with a public HTTPS callback can use direct EventSub. Polling also works without opening a router port and doesn’t require a relay.