Playlist
popyt / Library Exports / Playlist
Class: Playlist
Defined in: entities/playlist.ts:9
A YouTube playlist.
Constructors
Constructor
new Playlist(
youtube,data,full?):Playlist
Defined in: entities/playlist.ts:114
Parameters
youtube
data
Schema$SearchResult | Schema$Playlist
full?
boolean = false
Returns
Playlist
Properties
creatorId
creatorId:
string
Defined in: entities/playlist.ts:71
The ID of the creator of the playlist.
data
data:
any
Defined in: entities/playlist.ts:37
The raw data of this playlist.
dateCreated
dateCreated:
Date
Defined in: entities/playlist.ts:81
The date the playlist was created.
description
description:
string
Defined in: entities/playlist.ts:57
The description of the playlist.
embedHtml
embedHtml:
string
Defined in: entities/playlist.ts:102
An <iframe> tag that embeds a player that will play the playlist.
full
full:
boolean
Defined in: entities/playlist.ts:42
Whether or not this is a full playlist object.
id
id:
string
Defined in: entities/playlist.ts:47
The ID of this playlist.
length
length:
number
Defined in: entities/playlist.ts:97
The number of items in the playlist.
privacy
privacy:
"private"|"public"|"unlisted"
Defined in: entities/playlist.ts:112
Information on this playlist's privacy.
tags
tags:
string[]
Defined in: entities/playlist.ts:107
The tags of the playlist.
thumbnails
thumbnails:
object
Defined in: entities/playlist.ts:86
The thumbnails for the playlist.
default?
optionaldefault?:Thumbnail
high?
optionalhigh?:Thumbnail
maxres?
optionalmaxres?:Thumbnail
medium?
optionalmedium?:Thumbnail
standard?
optionalstandard?:Thumbnail
title
title:
string
Defined in: entities/playlist.ts:52
The title of the playlist.
url
url:
string
Defined in: entities/playlist.ts:76
The url of the playlist.
videos
videos:
PaginatedResponse<Video>
Defined in: entities/playlist.ts:66
The videos in the playlist. Only available after calling Playlist.fetchVideos().
These are partial, meaning they are missing some data.
See the properties they include here.
Use YouTube.getVideo(playlist.videos) to fetch the full objects while not spamming your quota
like you would using a loop.
youtube
youtube:
YouTube
Defined in: entities/playlist.ts:32
The YouTube object that created this playlist.
endpoint
staticendpoint:string='playlists'
Defined in: entities/playlist.ts:13
The name of the endpoint used for this entity.
fields
staticfields:string
Defined in: entities/playlist.ts:23
The fields to request for this entity.
part
staticpart:string='contentDetails,player,snippet,status'
Defined in: entities/playlist.ts:18
The parts to request for this entity.
Methods
addVideo()
addVideo(
videoResolvable,position?,note?):Promise<Video>
Defined in: entities/playlist.ts:204
Adds a Video to the playlist. Must be using an access token with correct scopes.
Parameters
videoResolvable
The URL, ID, or search query of the video.
position?
number
The zero-based position to insert the video in.
note?
string
A note on the video.
Returns
Promise<Video>
delete()
delete():
Promise<void>
Defined in: entities/playlist.ts:283
Deletes the playlist. Must be using an access token with correct scopes.
Returns
Promise<void>
fetch()
fetch(
parts?):Promise<Playlist>
Defined in: entities/playlist.ts:173
Fetches this playlist from the API and reassigns this object to the new playlist object.
Only useful if this.full is false, or if you want updated playlist info.
Parameters
parts?
Returns
Promise<Playlist>
fetchVideos()
fetchVideos(
pageOptions?,parts?):Promise<PaginatedResponse<Video>>
Defined in: entities/playlist.ts:164
Fetches the videos in this playlist from the API and adds them to the videos property.
These are partial, meaning they are missing some data.
See the properties they include here.
Use YouTube.getVideo(playlist.videos) to fetch the full objects while not spamming your quota
like you would using a loop.
Parameters
pageOptions?
The number of pages and maximum number of items per page.
Fetches the maximum number of items allowed by the API per page by default.
Set pages to a value <=0 to fetch all.
parts?
The parts of the object to fetch (saves quota if you aren't using certain properties!)
Returns
Promise<PaginatedResponse<Video>>
removeItem()
removeItem(
playlistItemId):Promise<void>
Defined in: entities/playlist.ts:267
Removes a Video from the playlist. Must be using an access token with correct scopes.
Parameters
playlistItemId
string
The playlist item ID (not the same as video ID; see Playlist.removeVideo()).
Returns
Promise<void>
removeVideo()
removeVideo(
videoResolvable):Promise<void>
Defined in: entities/playlist.ts:243
Removes a Video from the playlist. Must be using an access token with correct scopes.
Parameters
videoResolvable
The URL, ID, or (not recommended) search query of the video.
Returns
Promise<void>
update()
update(
title,description?,privacy?,tags?,language?,localizations?):Promise<Playlist>
Defined in: entities/playlist.ts:190
Edits the playlist.
Must be using an access token with correct scopes.
If your request does not specify a value for a property that already has a value,
the property's existing value will be deleted.
Parameters
title
string
A title for the playlist.
description?
string
A description of the playlist.
privacy?
"private" | "public" | "unlisted"
Whether the video is private, public, or unlisted.
tags?
string[]
Tags pertaining to the playlist.
language?
string
The language of the playlist's default title and description.
localizations?
Translated titles and descriptions.
Returns
Promise<Playlist>
updateVideo()
updateVideo(
videoResolvable,position?,note?,itemId?):Promise<Video>
Defined in: entities/playlist.ts:223
Updates a Video in the playlist. Must be using an access token with correct scopes.
Parameters
videoResolvable
The URL, ID, or (not recommended) search query of the video.
position?
number
The zero-based position to move the video to.
note?
string
A new note on the video.
itemId?
string
The playlist item ID if you have it.
Returns
Promise<Video>