openapi: 3.1.0 info: title: YouTube Analytics Analytics Groups LiveBroadcasts API description: 'The YouTube Analytics API enables you to retrieve YouTube Analytics data for channels and content owners. Use this API to generate custom analytics reports, track video performance metrics, monitor audience engagement, and gain insights into viewer demographics and behavior patterns. ## Key Features - Retrieve channel and video performance metrics - Access audience demographics and geographic data - Monitor engagement metrics like likes, comments, and shares - Track revenue and ad performance data (for monetized content) - Generate custom date-range reports ## Authentication All API requests require OAuth 2.0 authentication with appropriate scopes. ' version: 2.0.0 contact: name: Google Developers url: https://developers.google.com/youtube/analytics email: youtube-api-support@google.com license: name: Creative Commons Attribution 3.0 url: http://creativecommons.org/licenses/by/3.0/ identifier: CC-BY-3.0 termsOfService: https://developers.google.com/terms/ x-logo: url: https://www.youtube.com/img/desktop/yt_1200.png servers: - url: https://youtubeanalytics.googleapis.com/v2 description: YouTube Analytics API Production Server security: - OAuth2: - https://www.googleapis.com/auth/yt-analytics.readonly tags: - name: LiveBroadcasts description: Operations for managing YouTube live broadcast events paths: /liveBroadcasts: get: operationId: youtube.liveBroadcasts.list summary: Youtube List Live Broadcasts description: Returns a list of YouTube broadcasts that match the API request parameters. You can retrieve broadcasts for the authenticated user or retrieve specific broadcasts by their IDs. tags: - LiveBroadcasts parameters: - $ref: '#/components/parameters/part' - name: id in: query description: Comma-separated list of YouTube broadcast IDs for the resources being retrieved. schema: type: string example: abc123def456 - name: mine in: query description: Set this parameter to true to instruct the API to return only broadcasts owned by the authenticated user. schema: type: boolean example: true - name: broadcastStatus in: query description: Filters the API response to only include broadcasts with the specified status. schema: type: string enum: - active - all - completed - upcoming example: active - name: broadcastType in: query description: Filters results by the type of broadcast. Acceptable values are event and persistent. schema: type: string enum: - all - event - persistent example: all - $ref: '#/components/parameters/maxResults' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' responses: '200': description: Successful response containing a list of live broadcast resources. content: application/json: schema: $ref: '#/components/schemas/LiveBroadcastListResponse' examples: YoutubeLivebroadcastsList200Example: summary: Default youtube.liveBroadcasts.list 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k nextPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 prevPageToken: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 pageInfo: totalResults: 42 resultsPerPage: 10 items: - kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 statistics: totalChatCount: 42 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: youtube.liveBroadcasts.insert summary: Youtube Create a Live Broadcast description: Creates a broadcast. The authenticated user must be authorized to create broadcasts. After creating the broadcast, you will need to bind it to a stream and set it live. tags: - LiveBroadcasts parameters: - $ref: '#/components/parameters/part' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' requestBody: description: The live broadcast resource to create. required: true content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsInsertRequestExample: summary: Default youtube.liveBroadcasts.insert request x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 responses: '200': description: Successful response containing the newly created live broadcast resource. content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsInsert200Example: summary: Default youtube.liveBroadcasts.insert 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: youtube.liveBroadcasts.update summary: Youtube Update a Live Broadcast description: Updates a broadcast's settings. The authenticated user must own the broadcast being updated. Note that certain properties cannot be modified after a broadcast goes live. tags: - LiveBroadcasts parameters: - $ref: '#/components/parameters/part' - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/key' requestBody: description: The live broadcast resource with updated properties. required: true content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsUpdateRequestExample: summary: Default youtube.liveBroadcasts.update request x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 responses: '200': description: Successful response containing the updated live broadcast resource. content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsUpdate200Example: summary: Default youtube.liveBroadcasts.update 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: youtube.liveBroadcasts.delete summary: Youtube Delete a Live Broadcast description: Deletes a broadcast. The authenticated user must own the broadcast being deleted. Broadcasts cannot be deleted while they are in the live or testing status. tags: - LiveBroadcasts parameters: - name: id in: query required: true description: The ID of the broadcast to delete. schema: type: string example: abc123def456 - $ref: '#/components/parameters/key' responses: '204': description: The broadcast was successfully deleted. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /liveBroadcasts/bind: post: operationId: youtube.liveBroadcasts.bind summary: Youtube Bind Broadcast to Stream description: Binds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream, though a video stream may be bound to more than one broadcast. tags: - LiveBroadcasts parameters: - name: id in: query required: true description: The id parameter specifies the unique ID of the broadcast that is being bound to a video stream. schema: type: string example: abc123def456 - $ref: '#/components/parameters/part' - name: streamId in: query description: The streamId parameter specifies the unique ID of the video stream that is being bound to a broadcast. If this parameter is omitted, the API will remove any existing binding between the broadcast and a video stream. schema: type: string example: '500123' - $ref: '#/components/parameters/key' responses: '200': description: Successful response containing the updated live broadcast resource. content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsBind200Example: summary: Default youtube.liveBroadcasts.bind 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK /liveBroadcasts/transition: post: operationId: youtube.liveBroadcasts.transition summary: Youtube Transition Broadcast State description: 'Changes the status of a YouTube live broadcast and initiates any processes associated with the new status. Valid transitions are: ready -> testing, testing -> live, live -> complete, ready -> live (skips testing state).' tags: - LiveBroadcasts parameters: - name: id in: query required: true description: The id parameter specifies the unique ID of the broadcast that is transitioning to another status. schema: type: string example: abc123def456 - name: broadcastStatus in: query required: true description: The broadcastStatus parameter identifies the state to which the broadcast is changing. schema: type: string enum: - complete - live - testing example: complete - $ref: '#/components/parameters/part' - $ref: '#/components/parameters/key' responses: '200': description: Successful response containing the updated live broadcast resource. content: application/json: schema: $ref: '#/components/schemas/LiveBroadcast' examples: YoutubeLivebroadcastsTransition200Example: summary: Default youtube.liveBroadcasts.transition 200 response x-microcks-default: true value: kind: youtube#video etag: XI7nbFXulYBIpL0ayR_gDh3eu1k id: abc123def456 snippet: publishedAt: '2026-01-15T10:30:00Z' channelId: '500123' title: Example Title description: A sample description for this resource. thumbnails: example_value scheduledStartTime: '2026-01-15T10:30:00Z' scheduledEndTime: '2026-01-15T10:30:00Z' actualStartTime: '2026-01-15T10:30:00Z' actualEndTime: '2026-01-15T10:30:00Z' liveChatId: '500123' isDefaultBroadcast: true status: lifeCycleStatus: abandoned privacyStatus: private recordingStatus: notRecording madeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw contentDetails: boundStreamId: '500123' boundStreamLastUpdateTimeMs: example_value monitorStream: enableMonitorStream: true broadcastStreamDelayMs: 10 embedHtml: example_value enableEmbed: true enableDvr: true enableContentEncryption: true startWithSlate: true closedCaptionsType: closedCaptionsDisabled enableLowLatency: true latencyPreference: low enableAutoStart: true enableAutoStop: true statistics: totalChatCount: 42 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: LiveBroadcastStatus: type: object description: Status information about a live broadcast including its privacy status and lifecycle status. properties: lifeCycleStatus: type: string description: The broadcast's status as it relates to the lifecycle of the broadcast. enum: - abandoned - complete - completeStarting - created - live - liveStarting - ready - reclaimed - revoked - testStarting - testing example: abandoned privacyStatus: type: string description: The broadcast's privacy status. enum: - private - public - unlisted example: private recordingStatus: type: string description: The broadcast's recording status. enum: - notRecording - recorded - recording example: notRecording madeForKids: type: boolean description: Indicates whether the broadcast is designated as child-directed. example: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw selfDeclaredMadeForKids: type: boolean description: Indicates whether the channel owner has designated the broadcast as being made for kids. example: channel==UC_x5XG1OV2P6uZZ5FSM9Ttw PageInfo: type: object description: Paging details for a list of live streaming resources. properties: totalResults: type: integer description: The total number of results in the result set. example: 42 resultsPerPage: type: integer description: The number of results included in the API response. example: 10 LiveBroadcastContentDetails: type: object description: Detailed settings for a live broadcast including stream configuration, DVR settings, and content configuration. properties: boundStreamId: type: string description: The ID of the stream that is bound to the broadcast. example: '500123' boundStreamLastUpdateTimeMs: type: string description: The date and time that the live stream referenced by boundStreamId was last updated. example: example_value monitorStream: type: object description: The monitorStream object contains information about the monitor stream, which the broadcaster can use to review the event content before the broadcast stream is shown publicly. properties: enableMonitorStream: type: boolean description: This value determines whether the monitor stream is enabled for the broadcast. broadcastStreamDelayMs: type: integer description: If you have set the enableMonitorStream property to true, this value sets the delay between the video input and the broadcast monitor stream. embedHtml: type: string description: The HTML code that embeds a player that plays the monitor stream. example: example_value enableEmbed: type: boolean description: Indicates whether the broadcast video can be played in an embedded player. example: true enableDvr: type: boolean description: Indicates whether the broadcast enables DVR controls. DVR controls enable the viewer to control the video playback experience by pausing, rewinding, or fast forwarding portions of the broadcast. example: true enableContentEncryption: type: boolean description: Indicates whether YouTube should enable content encryption for the broadcast. example: true startWithSlate: type: boolean description: Indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. example: true closedCaptionsType: type: string description: Indicates whether the broadcast has captions enabled. enum: - closedCaptionsDisabled - closedCaptionsEmbedded - closedCaptionsHttpPost example: closedCaptionsDisabled enableLowLatency: type: boolean description: Indicates whether this broadcast has low latency enabled. example: true latencyPreference: type: string description: Indicates latency preference for the broadcast. The options are ultraLow, low, and normal. enum: - low - normal - ultraLow example: low enableAutoStart: type: boolean description: This setting indicates whether the broadcast should automatically begin streaming. example: true enableAutoStop: type: boolean description: Indicates whether the broadcast should automatically stop streaming. example: true LiveBroadcast: type: object description: A liveBroadcast resource represents an event that will be streamed, via live video, on YouTube. required: - kind - etag properties: kind: type: string description: Identifies the API resource's type. Value is youtube#liveBroadcast. default: youtube#liveBroadcast example: youtube#video etag: type: string description: The Etag of this resource. example: XI7nbFXulYBIpL0ayR_gDh3eu1k id: type: string description: The ID that YouTube assigns to uniquely identify the broadcast. example: abc123def456 snippet: $ref: '#/components/schemas/LiveBroadcastSnippet' status: $ref: '#/components/schemas/LiveBroadcastStatus' contentDetails: $ref: '#/components/schemas/LiveBroadcastContentDetails' statistics: type: object description: The statistics object contains info about the live broadcast. properties: totalChatCount: type: integer format: int64 description: The number of live chat messages currently on the broadcast. example: example_value ErrorResponse: type: object description: A standard error response returned by the YouTube Live Streaming API. properties: error: type: object description: The error details. properties: code: type: integer description: The HTTP status code of the error. message: type: string description: A human-readable description of the error. errors: type: array description: A list of individual errors. items: type: object properties: message: type: string description: A human-readable description of the error. domain: type: string description: The domain in which the error occurred. reason: type: string description: The reason for the error. example: example_value LiveBroadcastListResponse: type: object description: A list of live broadcast resources matching the request criteria. properties: kind: type: string description: Identifies the API resource's type. Value is youtube#liveBroadcastListResponse. default: youtube#liveBroadcastListResponse example: youtube#video etag: type: string description: The Etag of this resource. example: XI7nbFXulYBIpL0ayR_gDh3eu1k nextPageToken: type: string description: The token for the next page of results. example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 prevPageToken: type: string description: The token for the previous page of results. example: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9 pageInfo: $ref: '#/components/schemas/PageInfo' items: type: array description: A list of live broadcasts that match the request criteria. items: $ref: '#/components/schemas/LiveBroadcast' example: [] LiveBroadcastSnippet: type: object description: Basic details about a live broadcast including its title, description, and scheduled start and end times. properties: publishedAt: type: string format: date-time description: The date and time that the broadcast was added to YouTube's live broadcast schedule. example: '2026-01-15T10:30:00Z' channelId: type: string description: The ID of the channel to which this broadcast is affiliated. example: '500123' title: type: string description: The broadcast's title. The title is a required field when inserting a broadcast. example: Example Title description: type: string description: The broadcast's description. example: A sample description for this resource. thumbnails: type: object description: A map of thumbnail images associated with the broadcast. additionalProperties: type: object properties: url: type: string description: The URL of the thumbnail image. width: type: integer description: The thumbnail width in pixels. height: type: integer description: The thumbnail height in pixels. example: example_value scheduledStartTime: type: string format: date-time description: The date and time that the broadcast is scheduled to begin. example: '2026-01-15T10:30:00Z' scheduledEndTime: type: string format: date-time description: The date and time that the broadcast is scheduled to end. example: '2026-01-15T10:30:00Z' actualStartTime: type: string format: date-time description: The date and time that the broadcast actually started. example: '2026-01-15T10:30:00Z' actualEndTime: type: string format: date-time description: The date and time that the broadcast actually ended. example: '2026-01-15T10:30:00Z' liveChatId: type: string description: The live chat ID associated with the broadcast. example: '500123' isDefaultBroadcast: type: boolean description: Indicates whether this broadcast is the default broadcast. example: true parameters: fields: name: fields in: query description: Selector specifying which fields to include in a partial response. Use this parameter to reduce bandwidth usage by selecting only the fields you need. schema: type: string key: name: key in: query description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. schema: type: string pageToken: name: pageToken in: query description: Identifies a specific page in the result set that should be returned. The nextPageToken property in the API response identifies other pages that are available. schema: type: string part: name: part in: query required: true description: Specifies a comma-separated list of one or more resource properties that the API response will include. The part parameter value must include the id property. schema: type: string maxResults: name: maxResults in: query description: The maximum number of items that should be returned in the result set. Acceptable values are 0 to 50, inclusive. schema: type: integer minimum: 0 maximum: 50 default: 5 responses: Unauthorized: description: The request was not authenticated or the credentials are invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: The request was invalid or malformed. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The specified resource was not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: The request was authenticated but the caller does not have permission to perform the requested operation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: OAuth2: type: oauth2 description: OAuth 2.0 authentication for YouTube Analytics API flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/youtube: Manage your YouTube account https://www.googleapis.com/auth/youtube.readonly: View your YouTube account https://www.googleapis.com/auth/yt-analytics.readonly: View YouTube Analytics reports https://www.googleapis.com/auth/yt-analytics-monetary.readonly: View YouTube Analytics monetary reports externalDocs: description: YouTube Analytics API Documentation url: https://developers.google.com/youtube/analytics