This is a summary dump I sent to a colleague about a month after Readercon
actually ran, where I dug back into my notes and pulled out the major points
I'd learned about Zoom --> Youtube streaming.
This all applies when we use Youtube as a "custom streaming service", which
gives us the chance to change all the parameters of how it works over the
network -- unlike Zoom's built-in "Youtube" integration which is just
awful, compromises your Youtube account security, and doesn't allow us
to configure anything.
Streaming to a large-scale service is a cheap and effective way to run a few-to-many event setup in the style of a webinar, without paying through the nose for Zoom webinar licenses. A couple of meetings whose join parameters are only known to the host and panelists, a stream, and you can have thousands of people watching. All you need is some side-channel for questions/comments, for which Discord is one solution as long as you can convince your attendees to not be terrified of using it. Any chat system that's accessible to everyone attending will work fine. |
Date: Thu, 23 Sep 2021 09:58:22 -0500 Subject: YT streams I'm gonna be out a good part of today and tomorrow so won't be around to go over youtube streaming stuff, but I reviewed some of the stuff I learned from Readercon and made some notes. Here are some of the major points.. You're probably already through the 24-hour holddown time Google imposes on any account that wants to stream. If you haven't set that up, do it NOW... Output bandwidth is tied to the generated stream-key for some reason. You get to fix that when you generate the new stream. I evidently screwed this up for something I wanted to stream at full 1080p, and it irrecoverably came out in 720 and looked pretty awful because I was describing screenshares. The "stream URL" is always the same, the rtmp:// link, and that's what also plugs into that field in Zoom. The stream *key* is what varies, and it ties directly to a single youtu.be/VIDEO-ID or watch?v=VIDEO-ID viewing link. Setting auto-start lets the stream fire itself up as soon as Zoom starts sending with a proper streamkey -- you likely want that set, so you don't have to get back on Youtube at go-live time and poke it manually. Setting auto-stop will kill the stream as soon as you stop feeding it, and turn that stream into a re-watchable replay. You probably do *not* want that set, because you want the stream up all day, right? Unless you're going to break the day up into separate chunks with different keys/URLs. The point is, if a host screws up and kills the stream from Zoom for some reason, not allowing auto-stop will let it pick right back up again when the Zoom stream re-starts with the same key. It will hang around waiting for further data for six hours or more, from my experiments. A caveat with that is that the current host *has* to be logged into some Zoom account under your umbrella to start a stream at all. Just because it's your meeting doesn't matter; the zoom-client creds of whoever happens to be hosting *right now* are what's checked at that level, so Zoom either denies permission [if someone's in on their personal account] or asks for a valid login. You might want to spin up an expendable sub-user under your account that you can give someone, that doesn't compromise your main owner account. For that you need a secondary reachable email address, which can be anywhere. The "DVR" setting is what allows back-seeking in an active stream. We disabled that for Readercon, as we wanted peoples' experience to be only "realtime" at the time and then they could go back and watch replays later. Normal latency is about 20 seconds; not sure about medium. Fast latency settings is about 2 seconds delay but that disables auto-captioning. For all our fiddling with that, we could never make realtime auto-AI-captioning work either way, and simply relied on the Zoom variant. You probably want to edit the customizations and kill the chat entirely. Also, set "not made for kids" which I think is the default anyways, as stuff that a streamer says is intended for kids gets different scrutiny. Bawdy chanties probably don't qualify and might get you shut down... The "scheduled time" for the stream really just doesn't matter, it's just a target for the countdown clock. I have a never-started stream from last month that's still sitting around, and will remain until I either feed it from a source or just delete it on Youtube. I would leave the visibility set as "unlisted" until maybe later, if you decide to make the replay public, but you probably want an editing pass over the result before making it public. Then, on the zoom side ... review my main writeup for more hints on how we set up the meetings. The stream stuff is hard to find; once you create the meeting you have to re-click it, but on the meeting listing itself and NOT the "edit" button, and then the stream stuff is down below. The stream URL, again, is the rtmp:// stuff; we left the key set to "0" to deliberately make it invalid until the host launching the stream fixed it. That's the "host enters stream details" checkbox; otherwise Zoom will just try to immediately stream using what you gave it. The URL in that stuff is also irrelevant; it's just what shows up in the meeting as the "watch on live streaming service" link. We also set that invalid, and here's why: Launching the stream invokes the browser. Once you get through the form, the browser tries to *switch to the watch URL* after a timeout, thus shoving the youtube in the host's face whether they wanted it or not. 1> You will likely be distributing the watch-URLs through the website anyways, and 2> a host should already be watching the output in a different window to make sure it starts properly and is prepared to suppress its sound, etc. I believe the view that Youtube gets is a simple "follow host view" from whoever is currently the HOST, even if the host is hidden. Anyone's video that is turned off is simply not shown, so you don't get their avatars either. I think that's it for my hastily-dug-up points; sorry if you already know all this stuff. It was all new to me last month. I have to go out today and am busy well into the weekend, but might be reachable by phone/txt if you want to natter about anything else you run into.