@sushibtw/youtubei
Version:
Simple package to get information from youtube such as videos, playlists, channels, video information & comments, related videos, up next video, and more!
56 lines (55 loc) • 1.99 kB
TypeScript
import { BaseVideo, BaseVideoAttributes, Comment } from ".";
import { YoutubeRawData } from "../common";
/** @hidden */
interface VideoAttributes extends BaseVideoAttributes {
duration: number;
comments: Comment[];
}
/** Represents a Video, usually returned from `client.getVideo()` */
export default class Video extends BaseVideo implements VideoAttributes {
/** The duration of this video in second */
duration: number;
/**
* Comments of this video
*
* You need to load the comment first by calling `video.nextComments()` as youtube doesn't send any comments data when loading the video (from `client.getVideo()`)
*/
comments: Comment[];
/** @hidden */
_commentContinuation?: {
token?: string;
itct?: string;
xsrfToken?: string;
};
/** @hidden */
constructor(video?: Partial<VideoAttributes>);
/**
* Load this instance with raw data from Youtube
*
* @hidden
*/
load(data: YoutubeRawData): Video;
/**
* Load next 20 comments of the video, and push the loaded comments to {@link Video.comments}
* You can only load up to 2000 comments from a video, this is due to the limitation from Youtube
*
* @example
* ```js
* const video = await youtube.getVideo(VIDEO_ID);
* await video.nextComments();
* console.log(video.comments) // first 20 comments
*
* let newComments = await video.nextComments();
* console.log(newComments) // 20 loaded comments
* console.log(video.comments) // first 40 comments
*
* await video.nextComments(0); // load the rest of the comments in the video
* ```
*
* @param count How many times to load the next comments. Set 0 to load all comments (might take a while on a video with many comments!)
*
* @returns Loaded comments
*/
nextComments(count?: number): Promise<Comment[]>;
}
export {};