This document identifies the different types of errors that YouTube Live Streaming API operations can return. You can also find a list of errors for any individual method in the reference documentation for that method.

## liveBroadcasts

The following tables identify error messages that the API returns in response to calls related to `liveBroadcasts` resources.

### `liveBroadcasts.bind`

| Error type | Error detail | Description |
|---|---|---|
| `backendError` | `internalError` | An internal error occurred during the bind. |
| `forbidden (403)` | `liveBroadcastBindingNotAllowed` | The current status of the live broadcast does not allow it to be bound to a stream. |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to retrieve the specified live broadcast. For more information, see [Implementing OAuth2 authentication](https://developers.google.com/youtube/data/live/authentication.md.txt). |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `notFound (404)` | `liveBroadcastNotFound` | The broadcast specified by the `id` parameter does not exist. |
| `notFound (404)` | `liveStreamNotFound` | The stream specified by the `streamId` parameter does not exist. |
| `rateLimitExceeded` | `userRequestsExceedRateLimit` | The user has sent too many requests in a given timeframe. |
| `required (400)` | `idRequired` | The required `id` parameter must identify the broadcast to bind. |

### `liveBroadcasts.delete`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `liveBroadcastDeletionNotAllowed` | The current status of the live broadcast does not allow it to be deleted. |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to delete the specified live broadcast. For more information, see [Implementing OAuth2 authentication](https://developers.google.com/youtube/data/live/authentication.md.txt). |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `notFound (404)` | `liveBroadcastNotFound` | The `id` property specified in the [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not identify a broadcast. |

### `liveBroadcasts.insert`

| Error type | Error detail | Description |
|---|---|---|
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to create the live broadcast. |
| `insufficientPermissions` | `livePermissionBlocked` | The user that authorized the request is unable to stream live video on YouTube at this time. Details explaining why the user cannot stream live video may be available in the user's channel settings at <https://www.youtube.com/features>. |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `invalidValue (400)` | `invalidAutoStart` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enableAutoStart` property. Not all broadcasts support this setting. |
| `invalidValue (400)` | `invalidAutoStop` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enableAutoStop` property. You cannot modify the `enableAutoStop` setting for a persistent broadcast. |
| `invalidValue (400)` | `invalidDescription` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a valid value for the `snippet.description` property. The property's value can contain up to 5000 characters. |
| `invalidValue (400)` | `invalidEmbedSetting` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enable_embed` property. You cannot embed this broadcast. |
| `invalidValue (400)` | `invalidLatencyPreferenceOptions` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.latencyPreference` property. Not all settings are supported with this latency preference. |
| `invalidValue (400)` | `invalidPrivacyStatus` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `status.privacy_status` property. |
| `invalidValue (400)` | `invalidProjection` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.projection` property. A default broadcast's projection cannot be set to `360`. |
| `invalidValue (400)` | `invalidScheduledEndTime` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `snippet.scheduledEndTime` property. The scheduled end time must follow the scheduled start time. |
| `invalidValue (400)` | `invalidScheduledStartTime` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `snippet.scheduledStartTime` property. The scheduled start time must be in the future and close enough to the current date that a broadcast could be reliably scheduled at that time. |
| `invalidValue (400)` | `invalidTitle` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a valid value for the `snippet.title` property. The property's value must be between 1 and 100 characters long. |
| `limitExceeded` | `userBroadcastsExceedLimit` | The user has created too many live or scheduled broadcasts and must stop or delete some. |
| `rateLimitExceeded` | `userRequestsExceedRateLimit` | The user has sent too many requests in a given timeframe. |
| `required (400)` | `privacyStatusRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) must specify a privacy status. See [valid `privacyStatus` values](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#privacyStatus). |
| `required (400)` | `scheduledEndTimeRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) must specify the `snippet.scheduledEndTime` property. |
| `required (400)` | `scheduledStartTimeRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) must specify the `snippet.scheduledStartTime` property. |
| `required (400)` | `titleRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) must specify the `snippet.title` property. |

### `liveBroadcasts.list`

| Error type | Error detail | Description |
|---|---|---|
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to retrieve the live broadcast. |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |

### `liveBroadcasts.transition`

| Error type | Error detail | Description |
|---|---|---|
| `backendError` | `errorExecutingTransition` | An error occurred while changing the broadcast's status. |
| `forbidden (403)` | `errorStreamInactive` | The requested transition is not allowed when the stream that is bound to the broadcast is inactive. |
| `forbidden (403)` | `invalidTransition` | The live broadcast can't transition from its current status to the requested status. |
| `forbidden (403)` | `redundantTransition` | The live broadcast is already in the requested status or processing to the requested status. |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to transition the live broadcast. |
| `insufficientPermissions` | `livePermissionBlocked` | The user that authorized the request is unable to stream live video on YouTube at this time. Details explaining why the user cannot stream live video may be available in the user's channel settings at <https://www.youtube.com/features>. |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `notFound (404)` | `liveBroadcastNotFound` | The broadcast specified by the `id` parameter does not exist. |
| `rateLimitExceeded (403)` | `userRequestsExceedRateLimit` | The user has sent too many requests in a given timeframe. |
| `rateLimitExceeded (403)` | `concurrentBroadcastsExceedLimit` | The channel already has the maximum number of concurrent live broadcasts. One or more broadcasts that are already live must be stopped before another broadcast can start on the channel. |
| `rateLimitExceeded (403)` | `sharedIngestionBroadcastsExceedLimit` | The channel already has the maximum number of live broadcasts sharing the ingestion source. One or more of those broadcasts must be stopped to start the requested broadcast. |
| `required (400)` | `idRequired` | The required `id` parameter must identify the broadcast whose status you want to transition. |
| `required (400)` | `statusRequired` | The API request must specify a value for the `status` parameter. |

### `liveBroadcasts.update`

| Error type | Error detail | Description |
|---|---|---|
| `backendError (503)` | `backendError` | Some settings cannot be applied yet. This is likely because the broadcast is just created. Please retry in a few seconds. |
| `forbidden (403)` | `closedCaptionsTypeModificationNotAllowed` | The `contentDetails.closedCaptionsType` value can only be modified when the broadcast is in the `created` or `ready` status. |
| `forbidden (403)` | `enableAutoStartModificationNotAllowed` | The `contentDetails.enableAutoStart` value can only be modified when the stream is inactive and the broadcast is in the `created` or `ready` status. |
| `forbidden (403)` | `enableClosedCaptionsModificationNotAllowed` | The `contentDetails.enableClosedCaptions` value can only be modified when the broadcast's status is `created` or `ready`. |
| `forbidden (403)` | `enableDvrModificationNotAllowed` | The `contentDetails.enableDvr` value can be modified only when the broadcast's status is `created` or `ready`. |
| `forbidden (403)` | `enableMonitorStreamModificationNotAllowed` | The `contentDetails.monitorStream.enableMonitorStream` value can be modified only when the broadcast's status is `created` or `ready`. |
| `forbidden (403)` | `recordFromStartModificationNotAllowed` | The `contentDetails.recordFromStart` value can be modified only when the broadcast's status is `created` or `ready`. |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to update the specified live broadcast. For more information, see [Implementing OAuth2 authentication](https://developers.google.com/youtube/data/live/authentication.md.txt). |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `invalidValue (400)` | `invalidAutoStart` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enableAutoStart` property. You cannot modify the `enableAutoStart` setting for a persistent broadcast. |
| `invalidValue (400)` | `invalidAutoStop` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enableAutoStop` property. You cannot modify the `enableAutoStop` setting for a persistent broadcast. |
| `invalidValue (400)` | `invalidDescription` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a valid value for the `snippet.description` property. `snippet.description` can contain up to 5000 characters. |
| `invalidValue (400)` | `invalidEmbedSetting` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.enable_embed` property. You cannot embed this broadcast. |
| `invalidValue (400)` | `invalidEnableClosedCaptions` | In the [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource), the value of the `contentDetails.enableClosedCaptions` property is incompatible with the value of the `contentDetails.closedCaptionType` setting. Modify the resource to only include one of the two properties, and then resubmit the request. |
| `invalidValue (400)` | `invalidLatencyPreferenceOptions` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.latencyPreference` property. Not all settings are supported with this latency preference. |
| `invalidValue (400)` | `invalidPrivacyStatus` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a valid privacy status. See [valid `privacyStatus` values](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#privacyStatus). |
| `invalidValue (400)` | `invalidProjection` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `contentDetails.projection` property. A persistent broadcast's projection cannot be set to 360. |
| `invalidValue (400)` | `invalidScheduledEndTime` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `snippet.scheduledEndTime` property. The scheduled end time must follow the scheduled start time. |
| `invalidValue (400)` | `invalidScheduledStartTime` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) contained an invalid value for the `snippet.scheduledStartTime` property. The scheduled start time must be in the future. |
| `invalidValue (400)` | `invalidTitle` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a valid value for the `snippet.title` property. `snippet.title` must be between 1 and 100 characters long. |
| `notFound (404)` | `liveBroadcastNotFound` | The `id` property specified in the [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not identify a broadcast. |
| `preconditionFailed (412)` | `videoNotEligibleForAdsMonetization` | The video is not eligible for ads monetization. This can occur if the channel is not eligible for monetization. |
| `required (400)` | `broadcastStreamDelayMsRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify the `contentDetails.monitorStream.broadcastStreamDelayMs` property. |
| `required (400)` | `enableMonitorStreamRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify the `contentDetails.monitorStream.enableMonitorStream` property. |
| `required (400)` | `idRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) must include and specify a value for the `id` property. |
| `required (400)` | `privacyStatusRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify a privacy status. See [for valid `privacyStatus` values](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#privacyStatus). |
| `required (400)` | `scheduledEndTimeRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify the `snippet.scheduledEndTime` property. |
| `required (400)` | `scheduledStartTimeRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify the `snippet.scheduledStartTime` property. |
| `required (400)` | `titleRequired` | The [liveBroadcast resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveBroadcasts.md.txt#resource) did not specify the `snippet.title` property. |

### `liveBroadcasts.cuepoint`

| Error type | Error detail | Description |
|---|---|---|
| `insufficientPermissions (403)` | `insufficientLivePermissions` | The request is not authorized to insert a cuepoint in the live broadcast. |
| `insufficientPermissions (403)` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://support.google.com/youtube/answer/2474026> and <https://www.youtube.com/features>. |
| `rateLimitExceeded (403)` | `userRequestsExceedRateLimit` | The user has sent too many requests in a given timeframe. |
| `required (400)` | `idRequired` | The required `id` parameter must identify the broadcast in which you want to insert a cuepoint. |
| `required (400)` | `cueTypeRequired` | The required `cueType` field must be specified in the API request body. |
| `notFound (404)` | `liveBroadcastNotFound` | The broadcast specified by the `id` parameter does not exist. |
| `invalidValue (400)` | `conflictingTimeFields` | Only one of `insertionOffsetTimeMs` and `walltimeMs` may be specified. Setting both values causes an error. If you don't set either value, YouTube will use the default `insertionOffsetTimeMs` time (`0`), which means that the cuepoint will be inserted as soon as possible. |
| `invalidValue (400)` | `invalidInsertionOffsetTimeMs` | The `cuepoint` resource specified an invalid value for the `insertionOffsetTimeMs` property. The value must be `0` or a positive integer. |
| `invalidValue (400)` | `invalidWalltimeMs` | The `cuepoint` resource specified an invalid value for the `walltimeMs` property. The value must be an integer that represents an epoch timestamp. |
| `backendError (5xx)` | `serviceUnavailable` | The service is unavailable. Try your request again after a few minutes. |

## liveChatBans

The following tables identify error messages that the API returns in response to calls related to `liveChatBans` resources.

### `liveChatBans.delete`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `forbidden` | The specified ban cannot be removed. This error can occur if the request is authorized by one moderator who is attempting to remove a ban on another moderator. |
| `forbidden (403)` | `insufficientPermissions` | You don't have the necessary permissions to remove the specified ban. |
| `invalidValue (400)` | `invalidLiveChatBanId` | The `id` parameter specifies an invalid value. |
| `notFound (404)` | `liveChatBanNotFound` | The specified ban cannot be found. |

### `liveChatBans.insert`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `insufficientPermissions` | You don't have the necessary permissions to ban a user from the specified live chat. |
| `forbidden (403)` | `liveChatBanInsertionNotAllowed` | The specified ban cannot be created. This error can occur if the request attempts to ban the chat owner or another moderator. |
| `invalidValue (400)` | `invalidChannelId` | The specified channel ID cannot be found. |
| `invalidValue (400)` | `invalidLiveChatId` | The `snippet.liveChatId` value specified in the request is invalid. Check the associated `liveBroadcast` resource to ensure that you have the correct value. |
| `notFound (404)` | `liveChatNotFound` | The specified live chat cannot be found. Check the associated `liveBroadcast` resource to ensure that you are setting the `snippet.liveChatId` property to the correct value. |
| `notFound (404)` | `liveChatUserNotFound` | The live chat user you are trying to ban cannot be found. |
| `required (400)` | `bannedUserChannelIdRequired` | The `liveChatBan` resource submitted in the request body must specify a value for the `snippet.bannedUserDetails.channelId` property. |
| `required (400)` | `liveChatIdRequired` | The `liveChatBan` resource submitted in the request body must specify a value for the `snippet.liveChatId` property. |

## liveChatMessages

The following tables identify error messages that the API returns in response to calls related to `liveChatMessages` resources.

### `liveChatMessages.delete`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `forbidden` | You don't have the permissions required to delete the specified message. |
| `forbidden (403)` | `modificationNotAllowed` | The specified `liveChatMessage` resource cannot be deleted. The `id` parameter might identify a message created by a moderator or another user whose messages cannot be deleted. |
| `notFound (404)` | `liveChatMessageNotFound` | The message that you are trying to delete cannot be found. Check the value of the `id` parameter to ensure it is correct. |

### `liveChatMessages.insert`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `forbidden` | You don't have the permissions required to create the specified message. |
| `forbidden (403)` | `liveChatDisabled` | The specified live chat has been disabled by the owner, which means messages cannot be added to the chat. |
| `forbidden (403)` | `liveChatEnded` | The specified live chat is no longer live. |
| `invalidValue (400)` | `messageTextInvalid` | The message text (`snippet.textMessageDetails.messageText`) is not valid. |
| `notFound (404)` | `liveChatNotFound` | The live chat identified in the API request does not exist. This error occurs if the chat has been deleted by the owner. |
| `rateLimitExceeded` | `rateLimitExceeded` | The user has posted too many chat messages in a given timeframe. |
| `required (400)` | `liveChatIdRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.liveChatId` property. |
| `required (400)` | `messageTextRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.textMessageDetails.messageText` property. |
| `required (400)` | `typeRequired` | The [liveChatMessage resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveChatMessages.md.txt#resource) must include and specify a value for the `snippet.type` property. Set the parameter value to `text` |

### `liveChatMessages.list`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `forbidden` | You don't have the permissions required to retrieve messages for the specified live chat. |
| `forbidden (403)` | `liveChatDisabled` | Live chat is not enabled for the specified broadcast. |
| `forbidden (403)` | `liveChatEnded` | The specified live chat is no longer live. |
| `notFound (404)` | `liveChatNotFound` | The live chat that you are trying to retrieve cannot be found. Check the value of the request's `liveChatId` parameter to ensure that it is correct. |
| `rateLimitExceeded` | `rateLimitExceeded` | The request was sent too quickly after the previous request. This error occurs when API requests to retrieve messages are being sent more frequently than YouTube's refresh rates, which unnecessarily wastes bandwidth. |

### `liveChatMessages.streamlist`

| Error type | Error detail | Description |
|---|---|---|
| `INVALID_ARGUMENT (3)` | `LIVE_CHAT_ENDED` | You can't retrieve messages for the ended live chat. |
| `PERMISSION_DENIED (7)` | `forbidden` | You don't have the permissions required to retrieve messages for the specified live chat. |
| `PERMISSION_DENIED (7)` | `liveChatDisabled` | Live chat is not enabled for the specified broadcast. |
| `PERMISSION_DENIED (7)` | `liveChatEnded` | The specified live chat is no longer live. |
| `NOT_FOUND (5)` | `liveChatNotFound` | The live chat that you are trying to retrieve cannot be found. Check the value of the request's `liveChatId` parameter to ensure that it is correct. |
| `RESOURCE_EXHAUSTED (8)` | `rateLimitExceeded` | The request was sent too quickly after the previous request. This error occurs when API requests to retrieve messages are being sent more frequently than YouTube's refresh rates, which unnecessarily wastes bandwidth. |

## liveStreams

The following tables identify error messages that the API returns in response to calls related to `liveStreams` resources.

### `liveStreams.delete`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `liveStreamDeletionNotAllowed` | The specified live stream cannot be deleted because it is bound to a broadcast that has still not completed. |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to delete the specified live stream. For more information, see [Implementing OAuth 2.0 authentication](https://developers.google.com/youtube/data/live/authentication.md.txt). |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. For more information, see [Feature eligibility](https://www.youtube.com/features). |
| `notFound (404)` | `liveStreamNotFound` | The specified live stream doesn't exist. |

### `liveStreams.insert`

| Error type | Error detail | Description |
|---|---|---|
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to create the specified live stream. |
| `insufficientPermissions` | `livePermissionBlocked` | The user that authorized the request is unable to stream live video on YouTube at this time. Details explaining why the user cannot stream live video may be available in the user's channel settings at <https://www.youtube.com/features>. |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `invalidValue (400)` | `invalidDescription` | The `snippet.description` property's value in the `liveStream` resource can have up to 10000 characters. |
| `invalidValue (400)` | `invalidFormat` | The `cdn.format` property's value in the `liveStream` resource is invalid. |
| `invalidValue (400)` | `invalidFrameRate` | The `cdn.frameRate` property's value in the `liveStream` resource is invalid. |
| `invalidValue (400)` | `invalidIngestionType` | The `cdn.ingestionType` property's value in the `liveStream` resource is invalid. |
| `invalidValue (400)` | `invalidResolution` | The `cdn.resolution` property's value in the `liveStream` resource is invalid. |
| `invalidValue (400)` | `invalidTitle` | The `snippet.title` property's value in the `liveStream` resource must be between 1 and 128 characters long. |
| `rateLimitExceeded` | `userRequestsExceedRateLimit` | The user has sent too many requests in a given timeframe. |
| `required (400)` | `cdnRequired` | The `liveStream` resource must contain the `cdn` object. |
| `required (400)` | `frameRateRequired` | The API returns this error if you specify a value for the `cdn.resolution` property but not for the `cdn.frameRate` property. |
| `required (400)` | `ingestionTypeRequired` | The `liveStream` resource must specify a value for the `cdn.ingestionType` property\>. |
| `required (400)` | `resolutionRequired` | The API returns this error if you specify a value for the `cdn.frameRate` property but not for the `cdn.resolution` property. |
| `required (400)` | `titleRequired` | The `liveStream` resource must specify a value for the `snippet.title` property. |

### `liveStreams.list`

| Error type | Error detail | Description |
|---|---|---|
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to retrieve the specified live stream. |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |

### `liveStreams.update`

| Error type | Error detail | Description |
|---|---|---|
| `forbidden (403)` | `liveStreamModificationNotAllowed` | The specified live stream cannot be modified in its current state. For more information, see [Life of a Broadcast](https://developers.google.com/youtube/data/live/life-of-a-broadcast.md.txt). |
| `forbidden (403)` | `liveStreamModificationNotAllowed` | The API does not allow you to change the value of the `cdn.format`, `cdn.frameRate`, `cdn.ingestionType`, or `cdn.resolution` fields after the stream is created. |
| `forbidden (403)` | `liveStreamModificationNotAllowed` | The API does not allow you to change a reusable stream to be non-reusable, or the other way around. For more information, see [Understanding Broadcasts and Streams](https://developers.google.com/youtube/data/live/broadcasts-and-streams.md.txt). |
| `insufficientPermissions` | `insufficientLivePermissions` | The request is not authorized to update the specified live stream. For more information, see [Implementing OAuth2 authentication](https://developers.google.com/youtube/data/live/authentication.md.txt). |
| `insufficientPermissions` | `liveStreamingNotEnabled` | The user that authorized the request is not enabled to stream live video on YouTube. The user can find more information at <https://www.youtube.com/features>. |
| `invalidValue (400)` | `invalidDescription` | The `snippet.description` property's value in the [liveStream resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveStreams.md.txt#resource) can have up to 10000 characters. |
| `invalidValue (400)` | `invalidTitle` | The `snippet.title` property's value in the [liveStream resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveStreams.md.txt#resource) must be between 1 and 128 characters long. |
| `notFound (404)` | `liveStreamNotFound` | The specified live stream doesn't exist. |
| `required (400)` | `idRequired` | The [liveStream resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveStreams.md.txt#resource) must specify a value for the `id` property. |
| `required (400)` | `ingestionTypeRequired` | The [liveStream resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveStreams.md.txt#resource) must specify a value for the `cdn.ingestionType` property. |
| `required (400)` | `titleRequired` | The [liveStream resource](https://developers.google.com/youtube/data/live/reference/rest/v3/liveStreams.md.txt#resource) must specify a value for the `snippet.title` property. |