Skip to main content

Video

popyt


popyt / Library Exports / Video

Class: Video

Defined in: entities/video.ts:11

A YouTube video.

Constructors​

Constructor​

new Video(youtube, data, full?): Video

Defined in: entities/video.ts:201

Parameters​

youtube​

YouTube

data​

Schema$Video | Schema$PlaylistItem | Schema$SearchResult

full?​

boolean = false

Returns​

Video

Properties​

captions​

captions: Caption[]

Defined in: entities/video.ts:184

The caption data associated with this video. Only available after running Video.fetchCaptions.


category​

category: string

Defined in: entities/video.ts:164

The video category associated with the video.


channel​

channel: object

Defined in: entities/video.ts:90

Information on the channel that uploaded the video.

id​

id: string

name​

name: string


commentCount​

commentCount: number

Defined in: entities/video.ts:152

The number of comments on the video.


comments​

comments: PaginatedResponse<Comment>

Defined in: entities/video.ts:147

The video's comments. Only defined when Video.fetchComments is called.


data​

data: any

Defined in: entities/video.ts:39

The raw data of the video.


datePublished​

datePublished: Date

Defined in: entities/video.ts:80

The date the video was published.


dateRecorded​

dateRecorded: Date

Defined in: entities/video.ts:85

The date the video was recorded. This is specified by the uploader.


description​

description: string

Defined in: entities/video.ts:59

The description of the video.


dislikes​

dislikes: number

Defined in: entities/video.ts:128

The number of dislikes the video has.


full​

full: boolean

Defined in: entities/video.ts:44

Whether or not this is a full video object (would it be the same if we ran Video.fetch under the same conditions as last time?).


id​

id: string

Defined in: entities/video.ts:49

The ID of the video.


kids​

kids: object

Defined in: entities/video.ts:169

Properties to do with videos made for children.

madeForKids​

madeForKids: boolean

Whether or not the video was made for children.

selfDeclaredMadeForKids​

selfDeclaredMadeForKids: boolean

Whether or not the poster of the video marked it as made for kids.


license​

license: "creativeCommon" | "youtube"

Defined in: entities/video.ts:194

The license this video falls under.


likes​

likes: number

Defined in: entities/video.ts:123

The number of likes the video has.


liveStatus​

liveStatus: false | "live" | "upcoming"

Defined in: entities/video.ts:159

If this is a ongoing livestream, this is live. If this is an upcoming livestream, this is upcoming. If this is not a livestream, this is false.


localizations​

localizations: object

Defined in: entities/video.ts:199

The localized titles and descriptions of this video, if any.

Index Signature​

[language: string]: object


minutes​

minutes: number

Defined in: entities/video.ts:103

The minutes of the video.


note​

note: string

Defined in: entities/video.ts:189

If this video was fetched from a playlist, this can be populated with a user-created note about the video.


private​

private: boolean

Defined in: entities/video.ts:142

Whether or not this video COULD BE private. True if the video might be private, as you cannot check if playlist items are private.

I would recommend that you try and fetch the video and catch an error if it is from a playlist & marked as private.


seconds​

seconds: number

Defined in: entities/video.ts:108

The seconds of the video.


shortUrl​

shortUrl: string

Defined in: entities/video.ts:118

The short url of the video, i.e. https://youtu.be/id


tags​

tags: string[]

Defined in: entities/video.ts:75

The tags of the video.


thumbnails​

thumbnails: object

Defined in: entities/video.ts:64

The thumbnails of the video.

default?​

optional default?: Thumbnail

high?​

optional high?: Thumbnail

maxres?​

optional maxres?: Thumbnail

medium?​

optional medium?: Thumbnail

standard?​

optional standard?: Thumbnail


title​

title: string

Defined in: entities/video.ts:54

The title of the video.


url​

url: string

Defined in: entities/video.ts:113

The url of the video.


views​

views: number

Defined in: entities/video.ts:133

The number of views the video has.


youtube​

youtube: YouTube

Defined in: entities/video.ts:34

YouTube object that created the video.


endpoint​

static endpoint: string = 'videos'

Defined in: entities/video.ts:15

The name of the endpoint used for this entity.


fields​

static fields: string

Defined in: entities/video.ts:26

The fields to request for this entity.


part​

static part: string = 'contentDetails,localizations,recordingDetails,snippet,statistics,status'

Defined in: entities/video.ts:20

The parts to request for this entity.

Methods​

delete()​

delete(): Promise<void>

Defined in: entities/video.ts:381

Deletes the video. Must be using an access token with correct scopes.

Returns​

Promise<void>


dislike()​

dislike(): Promise<void>

Defined in: entities/video.ts:353

Dislikes the video. Must be using an access token with correct scopes.

Returns​

Promise<void>


fetch()​

fetch(parts?): Promise<Video>

Defined in: entities/video.ts:315

Fetches this video from the API and reassigns this object to the new video object. Only useful if this.full is false, or if you want updated video info.

Parameters​

parts?​

VideoParts

Returns​

Promise<Video>


fetchCaptions()​

fetchCaptions(): Promise<Caption[]>

Defined in: entities/video.ts:411

Fetches the captions for the video from the API. Must be using an access token with correct scopes.

Returns​

Promise<Caption[]>


fetchComments()​

fetchComments(pageOptions?, order?, parts?): Promise<PaginatedResponse<Comment>>

Defined in: entities/video.ts:327

Fetches the video's comments from the API and assigns them to Video.comments.

Parameters​

pageOptions?​

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.

order?​

"relevance" | "time"

parts?​

CommentThreadParts

The parts of the object to fetch (saves quota if you aren't using certain properties!)

Returns​

Promise<PaginatedResponse<Comment>>


getRating()​

getRating(): Promise<"none" | "like" | "dislike" | "unspecified">

Defined in: entities/video.ts:336

Gets the user's rating on the video. Must be using an access token with correct scopes.

Returns​

Promise<"none" | "like" | "dislike" | "unspecified">


like()​

like(): Promise<void>

Defined in: entities/video.ts:345

Likes the video. Must be using an access token with correct scopes.

Returns​

Promise<void>


postComment()​

postComment(text): Promise<Comment>

Defined in: entities/video.ts:302

Posts a comment to the video. Must be using an access token with correct scopes.

Parameters​

text​

string

The text of the comment.

Returns​

Promise<Comment>


reportAbuse()​

reportAbuse(reasonId, secondaryReasonId?, comments?, language?): Promise<void>

Defined in: entities/video.ts:373

Reports the video for abuse. Must be using an access token with correct scopes.

Parameters​

reasonId​

string

The reason for reporting. (IDs can be found here)

secondaryReasonId?​

string

An optional second reason for reporting.

comments?​

string

Any additional information.

language?​

string

The language that the reporter speaks.

Returns​

Promise<void>


setThumbnail()​

setThumbnail(image): Promise<{ default?: Thumbnail; high?: Thumbnail; maxres?: Thumbnail; medium?: Thumbnail; standard?: Thumbnail; }>

Defined in: entities/video.ts:402

Sets a new thumbnail for a video. Must be using an access token with correct scopes.

Parameters​

image​

The image data and type to upload.

data​

Buffer

type​

"jpeg" | "png"

Returns​

Promise<{ default?: Thumbnail; high?: Thumbnail; maxres?: Thumbnail; medium?: Thumbnail; standard?: Thumbnail; }>


unrate()​

unrate(): Promise<void>

Defined in: entities/video.ts:361

Removes the user's like/dislike on the video. Must be using an access token with correct scopes.

Returns​

Promise<void>


update()​

update(video): Promise<Video>

Defined in: entities/video.ts:392

Edits the video. 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​

video​

Omit<VideoUpdateResource, "id">

The updated video object.

Returns​

Promise<Video>


uploadCaption()​

uploadCaption(language, name, track, draft?): Promise<Caption>

Defined in: entities/video.ts:424

Uploads a caption track for a video. Must be using an access token with correct scopes.

Parameters​

language​

string

The language of the track.

name​

string

The name of the track.

track​

Buffer

The caption track to upload.

draft?​

boolean = false

Whether or not the track is a draft.

Returns​

Promise<Caption>