YouTube.js
Guide
Discord
❤️ Sponsor
GitHub
Guide
Discord
❤️ Sponsor
GitHub

youtubei.js / YT / VideoInfo

Class: VideoInfo

Defined in: src/parser/youtube/VideoInfo.ts:38

Extends

  • MediaInfo

Constructors

Constructor

new VideoInfo(data, actions, cpn): VideoInfo

Defined in: src/parser/youtube/VideoInfo.ts:54

Parameters

data

[ApiResponse, ApiResponse?]

actions

Actions

cpn

string

Returns

VideoInfo

Overrides

MediaInfo.constructor

Properties

annotations?

optional annotations: ObservedArray<PlayerAnnotationsExpanded>

Defined in: src/core/mixins/MediaInfo.ts:40

Inherited from

MediaInfo.annotations


autoplay?

optional autoplay: object

Defined in: src/parser/youtube/VideoInfo.ts:49

count_down_secs?

optional count_down_secs: number

modified_sets?

optional modified_sets: AutoplaySet[]

sets

sets: AutoplaySet[]


basic_info

basic_info: object

Defined in: src/core/mixins/MediaInfo.ts:39

allow_ratings?

optional allow_ratings: boolean

author?

optional author: string

category

category: string | null

channel

channel: { id: string; name: string; url: string; } | null

channel_id?

optional channel_id: string

duration?

optional duration: number

embed

embed: { flash_secure_url: string; flash_url: string; height: any; iframe_url: string; width: any; } | null | undefined

end_timestamp

end_timestamp: Date | null

has_ypc_metadata

has_ypc_metadata: boolean | null

id?

optional id: string

is_crawlable?

optional is_crawlable: boolean

is_disliked

is_disliked: boolean | undefined

is_family_safe

is_family_safe: boolean | undefined = info.microformat.is_family_safe

is_liked

is_liked: boolean | undefined

is_live?

optional is_live: boolean

is_live_content?

optional is_live_content: boolean

is_live_dvr_enabled?

optional is_live_dvr_enabled: boolean

is_low_latency_live_stream?

optional is_low_latency_live_stream: boolean

is_owner_viewing?

optional is_owner_viewing: boolean

is_post_live_dvr?

optional is_post_live_dvr: boolean

is_private?

optional is_private: boolean

is_unlisted

is_unlisted: boolean | undefined = info.microformat.is_unlisted

is_upcoming?

optional is_upcoming: boolean

keywords?

optional keywords: string[]

like_count

like_count: number | undefined

live_chunk_readahead?

optional live_chunk_readahead: number

short_description?

optional short_description: string

start_timestamp

start_timestamp: Date | null

tags

tags: string[] | null

thumbnail?

optional thumbnail: Thumbnail[]

title?

optional title: string

url_canonical

url_canonical: string | null

view_count

view_count: number | undefined

Inherited from

MediaInfo.basic_info


captions?

optional captions: PlayerCaptionsTracklist

Defined in: src/core/mixins/MediaInfo.ts:43

Inherited from

MediaInfo.captions


cards?

optional cards: CardCollection

Defined in: src/core/mixins/MediaInfo.ts:44

Inherited from

MediaInfo.cards


comments_entry_point_header?

optional comments_entry_point_header: CommentsEntryPointHeader | null

Defined in: src/parser/youtube/VideoInfo.ts:47


endscreen?

optional endscreen: Endscreen

Defined in: src/core/mixins/MediaInfo.ts:42

Inherited from

MediaInfo.endscreen


game_info?

optional game_info: object

Defined in: src/parser/youtube/VideoInfo.ts:42

release_year

release_year: Text | undefined

title

title: Text | undefined


heat_map?

optional heat_map: Heatmap | null

Defined in: src/parser/youtube/VideoInfo.ts:50


livechat?

optional livechat: LiveChat | null

Defined in: src/parser/youtube/VideoInfo.ts:48


merchandise?

optional merchandise: MerchandiseShelf | null

Defined in: src/parser/youtube/VideoInfo.ts:43


playability_status?

optional playability_status: IPlayabilityStatus

Defined in: src/core/mixins/MediaInfo.ts:46

Inherited from

MediaInfo.playability_status


player_config?

optional player_config: IPlayerConfig

Defined in: src/core/mixins/MediaInfo.ts:47

Inherited from

MediaInfo.player_config


player_overlays?

optional player_overlays: PlayerOverlay | null

Defined in: src/parser/youtube/VideoInfo.ts:46


playlist?

optional playlist: object

Defined in: src/parser/youtube/VideoInfo.ts:41

author

author: Text | Author

contents

contents: ObservedArray<YTNode>

current_index

current_index: number

id

id: string

is_infinite

is_infinite: boolean

menu

menu: Menu | null

title

title: string


primary_info?

optional primary_info: VideoPrimaryInfo | null

Defined in: src/parser/youtube/VideoInfo.ts:39


related_chip_cloud?

optional related_chip_cloud: ChipCloud | null

Defined in: src/parser/youtube/VideoInfo.ts:44


secondary_info?

optional secondary_info: VideoSecondaryInfo | null

Defined in: src/parser/youtube/VideoInfo.ts:40


storyboards?

optional storyboards: PlayerStoryboardSpec | PlayerLiveStoryboardSpec

Defined in: src/core/mixins/MediaInfo.ts:41

Inherited from

ShortFormVideoInfo.storyboards


streaming_data?

optional streaming_data: IStreamingData

Defined in: src/core/mixins/MediaInfo.ts:45

Inherited from

MediaInfo.streaming_data


watch_next_feed?

optional watch_next_feed: ObservedArray<YTNode> | null

Defined in: src/parser/youtube/VideoInfo.ts:45

Accessors

actions

Get Signature

get actions(): Actions

Defined in: src/core/mixins/MediaInfo.ts:247

Returns

Actions

Inherited from

MediaInfo.actions


autoplay_video_endpoint

Get Signature

get autoplay_video_endpoint(): NavigationEndpoint | null

Defined in: src/parser/youtube/VideoInfo.ts:410

Gets the endpoint of the autoplay video

Returns

NavigationEndpoint | null


cpn

Get Signature

get cpn(): string

Defined in: src/core/mixins/MediaInfo.ts:254

Content Playback Nonce.

Returns

string

Inherited from

MediaInfo.cpn


filters

Get Signature

get filters(): string[]

Defined in: src/parser/youtube/VideoInfo.ts:396

Watch next feed filters.

Returns

string[]


has_trailer

Get Signature

get has_trailer(): boolean

Defined in: src/parser/youtube/VideoInfo.ts:417

Checks if trailer is available.

Returns

boolean


music_tracks

Get Signature

get music_tracks(): object[]

Defined in: src/parser/youtube/VideoInfo.ts:424

Get songs used in the video.

Returns

object[]


page

Get Signature

get page(): [IPlayerResponse, INextResponse?]

Defined in: src/core/mixins/MediaInfo.ts:261

Parsed InnerTube response.

Returns

[IPlayerResponse, INextResponse?]

Inherited from

ShortFormVideoInfo.page


wn_has_continuation

Get Signature

get wn_has_continuation(): boolean

Defined in: src/parser/youtube/VideoInfo.ts:403

Checks if continuation is available for the watch next feed.

Returns

boolean

Methods

addToWatchHistory()

addToWatchHistory(): Promise<Response>

Defined in: src/parser/youtube/VideoInfo.ts:195

Adds video to the watch history.

Returns

Promise<Response>

Overrides

MediaInfo.addToWatchHistory


chooseFormat()

chooseFormat(options): Format

Defined in: src/core/mixins/MediaInfo.ts:161

Selects the format that best matches the given options.

Parameters

options

FormatOptions

Options

Returns

Format

Inherited from

MediaInfo.chooseFormat


dislike()

dislike(): Promise<ApiResponse>

Defined in: src/parser/youtube/VideoInfo.ts:272

Dislikes the video.

Returns

Promise<ApiResponse>


download()

download(options): Promise<ReadableStream<Uint8Array>>

Defined in: src/core/mixins/MediaInfo.ts:169

Downloads the video.

Parameters

options

DownloadOptions = {}

Download options.

Returns

Promise<ReadableStream<Uint8Array>>

Inherited from

MediaInfo.download


getLiveChat()

getLiveChat(): LiveChat

Defined in: src/parser/youtube/VideoInfo.ts:367

Retrieves Live Chat if available.

Returns

LiveChat


getStreamingInfo()

getStreamingInfo(url_transformer?, format_filter?): Promise<StreamingInfo>

Defined in: src/core/mixins/MediaInfo.ts:144

Get a cleaned up representation of the adaptive_formats

Parameters

url_transformer?

URLTransformer

format_filter?

FormatFilter

Returns

Promise<StreamingInfo>

Inherited from

MediaInfo.getStreamingInfo


getTrailerInfo()

getTrailerInfo(): VideoInfo | null

Defined in: src/parser/youtube/VideoInfo.ts:377

Retrieves trailer info if available (typically for non-purchased movies or films).

Returns

VideoInfo | null

VideoInfo for the trailer, or null if none.


getTranscript()

getTranscript(): Promise<TranscriptInfo>

Defined in: src/core/mixins/MediaInfo.ts:182

Retrieves the video's transcript.

Returns

Promise<TranscriptInfo>

Inherited from

MediaInfo.getTranscript


getWatchNextContinuation()

getWatchNextContinuation(): Promise<VideoInfo>

Defined in: src/parser/youtube/VideoInfo.ts:209

Retrieves watch next feed continuation.

Returns

Promise<VideoInfo>


like()

like(): Promise<ApiResponse>

Defined in: src/parser/youtube/VideoInfo.ts:232

Likes the video.

Returns

Promise<ApiResponse>


removeRating()

removeRating(): Promise<ApiResponse>

Defined in: src/parser/youtube/VideoInfo.ts:312

Removes like/dislike.

Returns

Promise<ApiResponse>


selectFilter()

selectFilter(target_filter): Promise<VideoInfo>

Defined in: src/parser/youtube/VideoInfo.ts:161

Applies given filter to the watch next feed. Use filters to get available filters.

Parameters

target_filter

Filter to apply.

string | ChipCloudChip | undefined

Returns

Promise<VideoInfo>


toDash()

toDash(options): Promise<string>

Defined in: src/core/mixins/MediaInfo.ts:104

Generates a DASH manifest from the streaming data.

Parameters

options
format_filter?

FormatFilter

manifest_options?

DashOptions

url_transformer?

URLTransformer

Returns

Promise<string>

DASH manifest

Inherited from

MediaInfo.toDash


updateWatchTime()

updateWatchTime(startTime): Promise<Response>

Defined in: src/parser/youtube/VideoInfo.ts:202

Updates watch time for the video.

Parameters

startTime

number

Returns

Promise<Response>

Overrides

MediaInfo.updateWatchTime

Edit this page
Last Updated: 10/12/25, 3:23 PM