Send a channel straight to YouTube, Facebook, Twitch or anything else that gives you an RTMP address and a stream key. It takes about two minutes.
A stream key from the service you are publishing to. On YouTube: YouTube Studio → Create → Go live → Stream. You want two things from that page — the Stream URL and the Stream key.
Channels → the channel you want to publish → Edit. Scroll to Push to a streaming service.
PlayoutGo takes one address, not two boxes. Put a slash between what YouTube calls the Stream URL and what it calls the Stream key:
# YouTube shows you Stream URL rtmp://a.rtmp.youtube.com/live2 Stream key abcd-efgh-ijkl-mnop-qrst # you paste rtmp://a.rtmp.youtube.com/live2/abcd-efgh-ijkl-mnop-qrst
The line underneath checks the address as you type. Missing the key is the commonest mistake and it is caught here rather than on air.
Press “Use YouTube’s recommended quality”. That sets the ladder from YouTube’s own live encoder guidance:
| Rung | Video | Audio |
|---|---|---|
| 1080p | 4500 kbps | 128 kbps AAC |
| 720p | 2500 kbps | 128 kbps AAC |
| 480p | 1000 kbps | 128 kbps AAC |
It also sets a two-second GOP, which is what YouTube expects. Getting one rung wrong means the stream is accepted and then transcoded badly — which looks like a fault in the picture rather than a setting.
The push connects as the first frames go out. Nothing is sent while the channel is stopped — YouTube shows the stream as offline until you start it.
Reopen the channel and look under the push field, or ask the API:
curl -s $BASE/api/channels/7/push -H "Authorization: Bearer $TOK" → {"enabled":true,"target":"rtmp://a.rtmp.youtube.com/live2/ab…op", "connected":true,"seconds_up":412,"video_frames":10300, "audio_frames":17800,"dropped":0,"mbps":4.6,"retries":0}
On YouTube’s side the Go live page turns green within a few seconds of
connected becoming true.
| What you see | What it means |
|---|---|
connected: false, error connection refused |
Nothing is listening at that address. Check the host — YouTube’s primary ingest is
a.rtmp.youtube.com; the backup is b.rtmp.youtube.com. |
| Error mentioning the server refused the connection | The key is wrong, expired, or belongs to a different channel. Stream keys reset when you end a stream in some YouTube configurations. |
dropped rising steadily |
The upstream link cannot carry the rate. Lower the top rung, or move the channel to a lower ladder. Frames are dropped rather than queued deliberately — a live push that buffers falls further behind every second and never recovers. |
A small dropped count at start-up |
Normal. Frames produced before the connection was established have nowhere to go. |
retries climbing |
The service keeps closing the connection. The delay widens each time — one second, then two, up to thirty — so a platform coming back is picked up quickly without hammering one that is down. |
Your stream key is never shown again. It is stored, but the status endpoint
and every log line report the address with the key elided — …/live2/ab…op. A key in
a log is a key somebody else can stream with.
One channel, one destination. A channel pushes to one address. To publish the same output to YouTube and Facebook at once, run a second channel with the same rundown, or point a restreamer at the channel’s SRT output.
The push target is an ordinary channel field, so it can be set when the channel is created or at any time after.
curl -s -X PUT $BASE/api/channels/7 \
-H "Authorization: Bearer $TOK" -H 'Content-Type: application/json' \
-d '{"rtmp_push_url":"rtmp://a.rtmp.youtube.com/live2/abcd-efgh-ijkl-mnop"}'
An address that is not rtmp://, or one with no key after the application, is
refused with a reason rather than stored and retried for ever.