Youtube event start

For those of you that live stream content on youtube, how do you manage your start sequence to accurately start a live stream on youtube or other streaming platforms?

I use an external hardware encoder from PVI that can serve a local RTP stream along with the RTMP stream to youtube. I use the local RTP stream to run a confidence monitor via an android TV box connected to our quad multi view. My question is what is the best way to accurately control the stream start?

Youtube has several options. Stream now, and events. Both of these have the option to start the stream as soon as the encoder feed starts. I can control this with a mikrotik router independently of the local RTP confidence monitor stream, but it doesn’t allow me to make sure the IP path to youtube and back works correctly before the stream.

The event based streaming requires two clicks to go live, which means even when “sync with preview” is selected, the actual stream start can be slightly ambiguous. Would anyone else find it useful to have the start and end stream parts of the youtube API integrated as a module in the CasparCG client? It seems like integrating those stream start commands in to my start program sequence in the client that rolls the opener and fires the ATEM macro to start my recorders would be the ideal solution.

Any suggestions on the best way to start implementing that?

I usually just preview the stream in YouTube, then switch to black shortly before starting the live broadcast. Then after clicking start stream in YouTube (with Sync to preview player unchecked so the stream starts immediately), we will roll the intro package or whatever we have for the start of the broadcast. I guess people might see a second or two of black, but I doubt anyone notices.

Where some kind of start trigger would be very helpful though is when streaming to multiple platforms (YouTube, Facebook, etc.). Then it’s no longer practical for a single person to start them all at the same time via their respective web interfaces, so it would be great to have a way to trigger the start in an automated way. Of course this would require using multiple streaming APIs.

I believe the CasparCG Client is mostly written in C++. Unfortunately there doesn’t seem to be a Google API client library for C++ (although there are .NET and Objective-C implementations):
https://developers.google.com/youtube/v3/live/libraries
This might make integrating it into the CasparCG Client a little more involved than it otherwise would be.

I’m not actually sure that it’s necessary to integrate this functionality into the client, though. The stream starter could just work as a separate application that talks to YouTube, and triggers an action using OSC input to the CasparCG Client (or through an AMCP command to the CasparCG Server directly). Then the stream starter could be implemented in any of the languages that has a Google API client library.

I prefer to have a countdown (template) running for a few minutes before broadcast starts, that sais: Feed starts in … minutes" or the like. Beacuse a Black video does look like something is broken.