Created
August 28, 2024 22:36
-
-
Save Bluscream/a98a4f2296093f60429a78f938720dc5 to your computer and use it in GitHub Desktop.
Youtube Data v3 API OpenAPI spec
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.0 | |
info: | |
title: YouTube Data API v3 | |
version: "3.0.0" | |
description: API for interacting with YouTube data | |
contact: | |
name: Google Developers | |
url: https://developers.google.com/ | |
license: | |
name: Apache License 2.0 | |
url: https://github.com/googleapis/googleapis/blob/master/LICENSE | |
servers: | |
- url: https://www.googleapis.com/youtube/v3 | |
paths: | |
/videos: | |
get: | |
summary: Retrieve a list of videos | |
parameters: | |
- in: query | |
name: channelId | |
description: Channel ID | |
required: false | |
- in: query | |
name: maxResults | |
description: Maximum number of items to return | |
schema: | |
type: integer | |
minimum: 1 | |
maximum: 50 | |
default: 25 | |
- in: query | |
name: pageToken | |
description: Page token for pagination | |
required: false | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: List of video resources | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Video' | |
/videos/{id}: | |
get: | |
summary: Retrieve a single video | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Video ID | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Single video resource | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Video' | |
'404': | |
description: Video not found | |
/channels: | |
get: | |
summary: Retrieve channel information | |
parameters: | |
- in: query | |
name: mine | |
description: Return authenticated user's channel | |
required: false | |
- in: query | |
name: id | |
description: Channel ID | |
required: false | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Channel resource | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Channel' | |
/playlists: | |
get: | |
summary: Retrieve playlists | |
parameters: | |
- in: query | |
name: channelId | |
description: Channel ID | |
required: false | |
- in: query | |
name: maxResults | |
schema: | |
type: integer | |
minimum: 1 | |
maximum: 50 | |
default: 25 | |
- in: query | |
name: pageToken | |
description: Page token for pagination | |
required: false | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: List of playlist resources | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Playlist' | |
/playlists/{id}: | |
get: | |
summary: Retrieve a single playlist | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Playlist ID | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Single playlist resource | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Playlist' | |
'404': | |
description: Playlist not found | |
/playlistItems: | |
get: | |
summary: Retrieve playlist items | |
parameters: | |
- in: query | |
name: playlistId | |
description: Playlist ID | |
required: true | |
- in: query | |
name: maxResults | |
schema: | |
type: integer | |
minimum: 1 | |
maximum: 50 | |
default: 25 | |
- in: query | |
name: pageToken | |
description: Page token for pagination | |
required: false | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: List of playlist item resources | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/PlaylistItem' | |
post: | |
summary: Insert playlist items | |
parameters: | |
- in: body | |
name: body | |
required: true | |
schema: | |
$ref: '#/components/schemas/PlaylistItemInsertRequest' | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Successfully inserted playlist items | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/PlaylistItemResponse' | |
'400': | |
description: Invalid request | |
'403': | |
description: Forbidden | |
'404': | |
description: Playlist not found | |
/playlistItems/{id}: | |
delete: | |
summary: Delete playlist items | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Playlist item ID | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'204': | |
description: Playlist item deleted successfully | |
'404': | |
description: Playlist item not found | |
/search: | |
get: | |
summary: Search for videos | |
parameters: | |
- in: query | |
name: q | |
description: Search term | |
required: true | |
- in: query | |
name: maxResults | |
schema: | |
type: integer | |
minimum: 1 | |
maximum: 50 | |
default: 25 | |
- in: query | |
name: pageToken | |
description: Page token for pagination | |
required: false | |
- in: query | |
name: order | |
description: Order of search results | |
enum: ["relevance", "date", "rating", "title", "videoLength", "viewCount", "favoriteCount"] | |
default: relevance | |
- in: query | |
name: type | |
description: Type of search results | |
enum: ["channel", "playlist", "video"] | |
default: video | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Search results | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/SearchResult' | |
post: | |
summary: Search for videos | |
parameters: | |
- in: body | |
name: body | |
required: true | |
schema: | |
$ref: '#/components/schemas/SearchRequest' | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Search results | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/SearchResult' | |
'400': | |
description: Invalid request | |
'403': | |
description: Forbidden | |
'404': | |
description: Playlist not found | |
/subscriptions: | |
get: | |
summary: Retrieve subscriptions | |
parameters: | |
- in: query | |
name: channelId | |
description: Channel ID | |
required: true | |
- in: query | |
name: maxResults | |
schema: | |
type: integer | |
minimum: 1 | |
maximum: 50 | |
default: 25 | |
- in: query | |
name: pageToken | |
description: Page token for pagination | |
required: false | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: List of subscription resources | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Subscription' | |
post: | |
summary: Insert subscriptions | |
parameters: | |
- in: body | |
name: body | |
required: true | |
schema: | |
$ref: '#/components/schemas/SubscriptionInsertRequest' | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Successfully inserted subscriptions | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/SubscriptionResponse' | |
'400': | |
description: Invalid request | |
'403': | |
description: Forbidden | |
'404': | |
description: Channel not found | |
/subscriptions/{id}: | |
delete: | |
summary: Delete subscriptions | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Subscription ID | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'204': | |
description: Subscription deleted successfully | |
'404': | |
description: Subscription not found | |
/uploads: | |
get: | |
summary: Retrieve upload playlist | |
parameters: | |
- in: query | |
name: part | |
description: Select which parts of the resource to include in the response | |
enum: ["id", "snippet"] | |
default: snippet | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Upload playlist resource | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/UploadPlaylist' | |
post: | |
summary: Insert uploads | |
parameters: | |
- in: body | |
name: body | |
required: true | |
schema: | |
$ref: '#/components/schemas/VideoUploadRequest' | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Successfully inserted video | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/VideoUploadResponse' | |
'400': | |
description: Invalid request | |
'403': | |
description: Forbidden | |
'404': | |
description: Playlist not found | |
/uploads/{id}: | |
get: | |
summary: Retrieve uploaded videos | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Video ID | |
- in: query | |
name: part | |
description: Select which parts of the resource to include in the response | |
enum: ["id", "snippet", "status", "player", "contentDetails", "fileDetails", "topicDetails", "recordingDetails", "liveStreamingDetails", "onDemandStatus", "monetizationDetails", "statistics", "statusDetails", "playerDetails", "recordingLocation", "streamingDetails", "cdnSettings", "videoId", "reportAbuseReasons", "topicDetails", "recordingDetails", "liveStreamingDetails", "onDemandStatus", "monetizationDetails", "statistics", "statusDetails", "playerDetails", "recordingLocation", "streamingDetails", "cdnSettings", "videoId", "reportAbuseReasons"] | |
default: snippet | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Uploaded video resource | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/VideoResource' | |
patch: | |
summary: Update uploaded videos | |
parameters: | |
- in: path | |
name: id | |
required: true | |
description: Video ID | |
- in: body | |
name: body | |
required: true | |
schema: | |
$ref: '#/components/schemas/VideoUpdateRequest' | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Successfully updated video | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/VideoUpdateResponse' | |
'400': | |
description: Invalid request | |
'403': | |
description: Forbidden | |
'404': | |
description: Video not found | |
/captions: | |
get: | |
summary: Retrieve captions | |
parameters: | |
- in: query | |
name: videoId | |
description: Video ID | |
required: true | |
- in: query | |
name: part | |
description: Select which parts of the resource to include in the response | |
enum: ["id", "snippet", "track", "listMember", "listType"] | |
default: snippet | |
- in: header | |
name: Authorization | |
schema: | |
type: string | |
format: Bearer | |
responses: | |
'200': | |
description: Captions resource | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier for the caption track | |
snippet: | |
type: object | |
properties: | |
videoId: | |
type: string | |
description: ID of the video associated with the caption track | |
title: | |
type: string | |
description: Title of the caption track | |
languageCode: | |
type: string | |
description: Language code of the caption track | |
trackType: | |
type: string | |
enum: ["auto-generated-subtitles", "auto-generated-captions", "manual-subtitles", "manual-captions"] | |
description: Type of the caption track | |
isDraft: | |
type: boolean | |
description: Whether the caption track is a draft | |
isPurchased: | |
type: boolean | |
description: Whether the caption track is purchased | |
isCC: | |
type: boolean | |
description: Whether the caption track is closed captions | |
isTTS: | |
type: boolean | |
description: Whether the caption track is text-to-speech | |
isAutoGenerated: | |
type: boolean | |
description: Whether the caption track is auto-generated | |
isTranscript: | |
type: boolean | |
description: Whether the caption track is transcript | |
isAutoGeneratedSubtitles: | |
type: boolean | |
description: Whether the caption track is auto-generated subtitles | |
isAutoGeneratedCaptions: | |
type: boolean | |
description: Whether the caption track is auto-generated captions | |
isManualSubtitles: | |
type: boolean | |
description: Whether the caption track is manual subtitles | |
isManualCaptions: | |
type: boolean | |
description: Whether the caption track is manual captions | |
isDefault: | |
type: boolean | |
description: Whether the caption track is the default | |
defaultLanguageCode: | |
type: string | |
description: Default language code of the caption track | |
defaultTrackNumber: | |
type: integer | |
description: Default track number of the caption track | |
defaultIsPrimary: | |
type: integer | |
components: | |
schemas: | |
Video: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier for the video | |
snippet: | |
type: object | |
properties: | |
title: | |
type: string | |
description: Title of the video | |
description: | |
type: string | |
description: Description of the video | |
tags: | |
type: array | |
items: | |
type: string | |
description: Tags associated with the video | |
channelTitle: | |
type: string | |
description: Title of the channel that uploaded the video | |
channelId: | |
type: string | |
description: Unique identifier for the channel | |
viewCount: | |
type: integer | |
description: Number of views for the video | |
likeCount: | |
type: integer | |
description: Number of likes for the video | |
commentThreadCount: | |
type: integer | |
description: Number of comments for the video | |
publishedAt: | |
type: string | |
format: date-time | |
description: Date and time the video was published | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
regionRestriction: | |
type: object | |
properties: | |
allowed: | |
type: array | |
items: | |
type: string | |
format: country-code | |
restricted: | |
type: array | |
items: | |
type: string | |
format: country-code | |
statistics: | |
type: object | |
properties: | |
viewCount: | |
type: integer | |
description: Total number of views | |
likeCount: | |
type: integer | |
description: Total number of likes | |
dislikeCount: | |
type: integer | |
description: Total number of dislikes | |
favoriteCount: | |
type: integer | |
description: Total number of favorites | |
commentCount: | |
type: integer | |
description: Total number of comments | |
status: | |
type: object | |
properties: | |
privacyStatus: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Privacy status of the video | |
license: | |
type: string | |
description: License under which the video is available | |
embeddable: | |
type: boolean | |
description: Whether the video can be embedded | |
publicStatsViewCount: | |
type: boolean | |
description: Whether public stats are visible | |
liveStreamingDetails: | |
type: object | |
properties: | |
actualStartTime: | |
type: string | |
format: date-time | |
description: Actual start time of the live stream | |
scheduledStartTime: | |
type: string | |
format: date-time | |
description: Scheduled start time of the live stream | |
archived: | |
type: boolean | |
description: Whether the live stream has ended | |
concurrentViews: | |
type: integer | |
description: Concurrent viewers during the live stream | |
estimatedMinutesEstimate: | |
type: integer | |
description: Estimated duration of the live stream | |
streamType: | |
type: string | |
enum: ["live", "upcoming"] | |
description: Type of the live stream | |
recordingDetails: | |
type: object | |
properties: | |
status: | |
type: string | |
enum: ["failed", "completed", "in_progress"] | |
description: Status of the recording | |
actualEndTime: | |
type: string | |
format: date-time | |
description: Actual end time of the recording | |
actualRunTime: | |
type: integer | |
description: Actual runtime of the recording | |
estimatedEndTime: | |
type: string | |
format: date-time | |
description: Estimated end time of the recording | |
creationTime: | |
type: string | |
format: date-time | |
description: Creation time of the recording | |
recordingLocation: | |
type: string | |
description: Location of the recording | |
externalRecordingUrl: | |
type: string | |
format: uri | |
description: External URL for the recording | |
Channel: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier for the channel | |
snippet: | |
type: object | |
properties: | |
title: | |
type: string | |
description: Title of the channel | |
description: | |
type: string | |
description: Description of the channel | |
customUrl: | |
type: string | |
description: Custom URL for the channel | |
publishedAt: | |
type: string | |
format: date-time | |
description: Date and time the channel was created | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
country: | |
type: string | |
format: country-code | |
description: Country associated with the channel | |
keywords: | |
type: array | |
items: | |
type: string | |
description: Keywords associated with the channel | |
defaultLanguage: | |
type: string | |
description: Default language of the channel | |
defaultTab: | |
type: string | |
enum: ["uploads", "videos", "community", "about", "discussions"] | |
description: Default tab of the channel | |
memberCount: | |
type: integer | |
description: Number of subscribers | |
viewCount: | |
type: integer | |
description: Number of views on the channel | |
subscriberCount: | |
type: integer | |
description: Number of subscribers | |
totalPublishes: | |
type: integer | |
description: Total number of videos published | |
averageViewDuration: | |
type: integer | |
description: Average view duration | |
monetizationStatus: | |
type: string | |
enum: ["enabled", "disabled", "restricted"] | |
description: Monetization status of the channel | |
memberChannelUrls: | |
type: array | |
items: | |
type: string | |
format: uri | |
description: URLs of channels that subscribe to this channel | |
privacyStatus: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Privacy status of the channel | |
allowMonetization: | |
type: boolean | |
description: Whether monetization is allowed on the channel | |
keywordsAcknowledged: | |
type: boolean | |
description: Whether the channel owner acknowledged the terms of service | |
brandSafetyFamilyGuidelines: | |
type: object | |
properties: | |
familyFriendly: | |
type: boolean | |
description: Indicates if the channel complies with YouTube's family-friendly guidelines | |
familyFriendlyReason: | |
type: string | |
description: Reason why the channel complies with YouTube's family-friendly guidelines | |
familyFriendlyReasons: | |
type: array | |
items: | |
type: string | |
description: Reasons why the channel complies with YouTube's family-friendly guidelines | |
familyFriendlyReasonsExplanation: | |
type: string | |
description: Explanation of the reasons why the channel complies with YouTube's family-friendly guidelines | |
statistics: | |
type: object | |
properties: | |
viewCount: | |
type: integer | |
description: Total number of views on the channel | |
subscriberCount: | |
type: integer | |
description: Total number of subscribers | |
hiddenSubscriberCount: | |
type: boolean | |
description: Whether the subscriber count is hidden | |
averageViewDuration: | |
type: integer | |
description: Average view duration | |
estimatedMinutesPerMonth: | |
type: integer | |
description: Estimated minutes watched per month | |
uploadFrequency: | |
type: string | |
enum: ["```"] | |
PlaylistItemInsertRequest: | |
type: object | |
properties: | |
snippet: | |
type: object | |
properties: | |
playlistId: | |
type: string | |
description: ID of the playlist to insert the item into | |
resourceId: | |
type: object | |
properties: | |
kind: | |
type: string | |
enum: ["youtube#video", "youtube#playlist"] | |
description: Kind of resource being inserted | |
videoId: | |
type: string | |
description: ID of the video to insert | |
playlistId: | |
type: string | |
description: ID of the playlist to insert the item into | |
position: | |
type: integer | |
description: Position in the playlist where the item should be placed | |
status: | |
type: object | |
properties: | |
privacyStatus: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Privacy status of the playlist item | |
PlaylistItemResponse: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier for the playlist item | |
snippet: | |
$ref: '#/components/schemas/PlaylistSnippet' | |
status: | |
$ref: '#/components/schemas/PlaylistItemStatus' | |
SearchResult: | |
type: object | |
properties: | |
id: | |
type: string | |
description: Unique identifier for the search result | |
kind: | |
type: string | |
description: Type of the search result | |
etag: | |
type: string | |
description: ETag of the resource | |
snippet: | |
type: object | |
properties: | |
title: | |
type: string | |
description: Title of the search result | |
description: | |
type: string | |
description: Description of the search result | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
channelTitle: | |
type: string | |
description: Title of the channel associated with the search result | |
channelId: | |
type: string | |
description: ID of the channel associated with the search result | |
publishTime: | |
type: string | |
format: date-time | |
description: Date and time the search result was published | |
liveBroadcastContent: | |
type: string | |
enum: ["none", "live", "upcoming"] | |
description: Content type of the live broadcast | |
viewCount: | |
type: integer | |
description: Number of views for the search result | |
likeCount: | |
type: integer | |
description: Number of likes for the search result | |
commentThreadCount: | |
type: integer | |
description: Number of comments for the search result | |
commentCount: | |
type: integer | |
description: Number of comments for the search result | |
favoriteCount: | |
type: integer | |
description: Number of favorites for the search result | |
position: | |
type: integer | |
description: Position of the search result in the search results | |
resourceId: | |
type: object | |
properties: | |
kind: | |
type: string | |
enum: ["youtube#video", "youtube#playlist", "youtube#channel", "youtube#searchResult"] | |
description: Kind of resource being returned | |
videoId: | |
type: string | |
description: ID of the video associated with the search result | |
playlistId: | |
type: string | |
description: ID of the playlist associated with the search result | |
channelId: | |
type: string | |
description: ID of the channel associated with the search result | |
searchResultId: | |
type: string | |
description: ID of the search result | |
Subscription: | |
type: object | |
properties: | |
etag: | |
type: string | |
description: ETag of the resource | |
id: | |
type: string | |
description: Unique identifier for the subscription | |
kind: | |
type: string | |
enum: ["youtube#subscription"] | |
description: Kind of resource being returned | |
snippet: | |
type: object | |
properties: | |
channelId: | |
type: string | |
description: ID of the channel subscribed to | |
channelTitle: | |
type: string | |
description: Title of the channel subscribed to | |
href: | |
type: string | |
format: uri | |
description: Link to the channel's profile page | |
localized: | |
type: object | |
properties: | |
title: | |
type: string | |
description: Localized title of the channel | |
description: | |
type: string | |
description: Localized description of the channel | |
publishedAt: | |
type: string | |
format: date-time | |
description: Date and time the subscription was created | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
resourceId: | |
type: object | |
properties: | |
kind: | |
type: string | |
enum: ["youtube#channel"] | |
description: Kind of resource being returned | |
channelId: | |
type: string | |
description: ID of the channel subscribed to | |
status: | |
type: object | |
properties: | |
etag: | |
type: string | |
description: ETag of the resource | |
id: | |
type: string | |
description: Unique identifier for the subscription status | |
kind: | |
type: string | |
enum: ["youtube#subscriptionStatus"] | |
description: Kind of resource being returned | |
snippet: | |
type: object | |
properties: | |
channelId: | |
type: string | |
description: ID of the channel subscribed to | |
channelTitle: | |
type: string | |
description: Title of the channel subscribed to | |
href: | |
type: string | |
format: uri | |
description: Link to the channel's profile page | |
localized: | |
type: object | |
properties: | |
title: | |
type: string | |
description: Localized title of the channel | |
description: | |
type: string | |
description: Localized description of the channel | |
publishedAt: | |
type: string | |
format: date-time | |
description: Date and time the subscription status was last modified | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
resourceId: | |
type: object | |
properties: | |
kind: | |
type: string | |
enum: ["youtube#channel"] | |
description: Kind of resource being returned | |
channelId: | |
type: string | |
description: ID of the channel subscribed to | |
privacyStatus: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Privacy status of the subscription | |
viewCount: | |
type: integer | |
description: Number of times the subscriber has viewed videos from the subscribed channel | |
lastViewedAt: | |
type: string | |
format: date-time | |
description: Timestamp of the last video watched from the subscribed channel | |
lastEngagedAt: | |
type: string | |
format: date-time | |
description: Timestamp of the last engagement with the subscribed channel | |
lastEngagementType: | |
type: string | |
enum: ["like", "comment", "share", "upload", "favorite", "playlistAdd", "playlistRemove", "communityPostLike", "communityPostReply", "pollVote", "reaction", "superChat", "superSticker", "giftingEnabled", "membership", "premiumMembership", "recurringSuperSticker", "recurringSuperChat", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "recurringSuperSticker", "re"] | |
PlaylistSnippet: | |
type: object | |
properties: | |
publishedAt: | |
type: string | |
format: date-time | |
description: Date and time the playlist was published | |
channelId: | |
type: string | |
description: ID of the channel that owns the playlist | |
title: | |
type: string | |
description: Title of the playlist | |
description: | |
type: string | |
description: Description of the playlist | |
tags: | |
type: array | |
items: | |
type: string | |
description: Keywords associated with the playlist | |
channelTitle: | |
type: string | |
description: Title of the channel that owns the playlist | |
defaultTab: | |
type: string | |
enum: ["videos", "community", "about"] | |
description: Default tab of the playlist | |
viewCount: | |
type: integer | |
description: Number of views for the playlist | |
myRatingKey: | |
type: string | |
description: Rating key for the playlist | |
player: | |
type: object | |
properties: | |
embedHtml: | |
type: string | |
format: html | |
description: HTML5 embed code for the playlist | |
autoPlay: | |
type: boolean | |
description: Whether the playlist should autoplay | |
suggestedQuality: | |
type: string | |
enum: ["hd1080", "hd720", "sddefault", "large", "medium", "default"] | |
description: Suggested quality for the playlist | |
recordingDetails: | |
type: object | |
properties: | |
location: | |
type: object | |
properties: | |
latitude: | |
type: number | |
format: float | |
description: Latitude of the recording location | |
longitude: | |
type: number | |
format: float | |
description: Longitude of the recording location | |
thumbnails: | |
type: array | |
items: | |
type: object | |
properties: | |
url: | |
type: string | |
format: uri | |
description: URL of the thumbnail image | |
width: | |
type: integer | |
description: Width of the thumbnail image | |
height: | |
type: integer | |
description: Height of the thumbnail image | |
playlistId: | |
type: string | |
description: ID of the playlist | |
playlistType: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Type of the playlist | |
status: | |
type: object | |
properties: | |
privacyStatus: | |
type: string | |
enum: ["public", "private", "unlisted"] | |
description: Privacy status of the playlist | |
memberCount: | |
type: integer | |
description: Number of members in the playlist | |
viewCount: | |
type: integer | |
description: Number of views for the playlist | |
position: | |
type: integer | |
description: Position of the playlist in the channel's playlists | |
canEdit: | |
type: boolean | |
description: Whether the authenticated user can edit the playlist | |
canComment: | |
type: boolean | |
description: Whether comments are allowed on the playlist | |
isPublic: | |
type: boolean | |
description: Whether the playlist is public | |
isPrivate: | |
type: boolean | |
description: Whether the playlist is private | |
isUnlisted: | |
type: boolean | |
description: Whether the playlist is unlisted | |
isLiveNow: | |
type: boolean | |
description: Whether the playlist contains live videos | |
isTopRated: | |
type: boolean | |
description: Whether the playlist is top-rated | |
isFavorite: | |
type: boolean | |
description: Whether the playlist is marked as a favorite | |
isNotMadeForKids: | |
type: boolean | |
description: Whether the playlist is not made for kids | |
allowRetroactiveSubscriptions: | |
type: boolean | |
description: Whether retroactive subscriptions are allowed | |
isDownloadAllowed: | |
type: boolean | |
description: Whether downloads are allowed | |
isDownloadPending: | |
type: boolean | |
description: Whether a download is pending | |
isDownloadRestricted: | |
type: boolean | |
description: Whether downloads are restricted | |
autoAdvance: | |
type: boolean | |
description: Whether the playlist automatically advances to the next video | |
autoRepeat: | |
type: boolean | |
description: Whether the playlist automatically repeats | |
shuffle: | |
type: boolean | |
description: Whether the playlist shuffles videos | |
showComments: | |
type: boolean | |
description: Whether comments are shown on the playlist page | |
commentsDisabled: | |
type: boolean | |
description: Whether comments are disabled on the playlist | |
commentThreadsDisabled: | |
type: boolean | |
description: Whether comment threads are disabled on the playlist | |
allowAnnotations: | |
type: boolean | |
description: Whether annotations are allowed | |
allowLikes: | |
type: boolean | |
description: Whether likes are allowed | |
allowReplies: | |
type: boolean | |
description: Whether replies are allowed |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment