Skip to content

Instantly share code, notes, and snippets.

@Bluscream
Created August 28, 2024 22:36
Show Gist options
  • Save Bluscream/a98a4f2296093f60429a78f938720dc5 to your computer and use it in GitHub Desktop.
Save Bluscream/a98a4f2296093f60429a78f938720dc5 to your computer and use it in GitHub Desktop.
Youtube Data v3 API OpenAPI spec
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