# OpenIPC Wiki [Table of Content](index.md) Configuration requirements -------------------------- To prevent accidental stream termination on temporary connection drops schedule live streaming with a start date in the far future (e.g. December 31st of the current year). It will work smoothly when you go live, disconnect the camera and then continue streaming. ### HLS + H.265 Follow [Delivering Content via HLS](https://developers.google.com/youtube/v3/live/guides/hls-ingestion) for more information. ### Create new stream - Navigate to page. - Select 'liveStreams' as Resource and 'insert' as Method. - In table below, click on 'insert' use case. - On the right side of the page: - in 'cdn' object, change "frameRate" from "60fps" to "variable"; - switch "resolution" from "1080p" to "variable"; - switch "ingestionType" from "rtmp" to "hls": ``` "cdn": { "ingestionType": "hls", "frameRate": "variable", "resolution": "variable" } ``` - in Credentials section, make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below. - Authorize yourself using your YouTube connected account. - Make sure that you got 200 response otherwise check errors and repeat. Trivial error is when [live streaming](https://support.google.com/youtube/answer/2474026?hl=en) was not previously enabled in your account. - Save "channelId" from the response (it looks like "UCPJRjbxYlq6h2cCqy8RCRjg"). ### Create new broadcast: - Navigate to page. - Select 'liveBroadcast' as Resource and 'insert' as Method. - In table below, click on 'insert' use case. - On the right side of the page: - 'title' field for your broadcast like 'My Hometown Camera' - 'scheduledStartTime' like '2020-04-21T00:00:00.000Z' (ensure that this time in the future), - 'scheduledEndTime' like '2020-04-21T01:00:00.000Z' (scheduled end time should be after the scheduled start time) - also press blue plus button inside "snippet" block and add "channelId" with given from stream step value ``` "snippet": {` `"title": "My Hometown Camera",` `"scheduledStartTime": "2021-04-12T00:00:00.000Z",` `"scheduledEndTime": "2021-04-13T00:00:00.000Z",` `"channelId": "MCpZqkqqEZw806aGGHUdepIl"` `}, ``` - in Credentials section, make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below. - Authorize yourself using your YouTube connected account. - Make sure that you got 200 response otherwise check errors and repeat. ### Bind the broadcast to the stream: - Navigate to page. - Select 'liveBroadcast' as Resource and 'bind' as Method. - In the table below, click on 'Bind a broadcast to a stream' use case. - On the right side of the page: - 'id' - ID of the broadcast (can be found in server response in step 'Create new broadcast', field 'id') - 'streamId' - ID of the stream (can be found in server response in step 'Create new stream', field 'id') - in Credentials section make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below - Authorize yourself using your YouTube connected account. - Make sure that you got 200 response otherwise check errors and repeat. ### Go live! Navigate to . On the right side, click on 'CREATE' button and then 'Go live'. (c) Victor, Origin: https://github.com/OpenIPC/camerasrnd/blob/master/streaming/youtube.md