YouTube.js
Guide
Discord
GitHub
Guide
Discord
GitHub

youtubei.js / Innertube

Class: Innertube

Provides access to various services and modules in the YouTube API.

Example

import { Innertube, UniversalCache } from 'youtubei.js';
const innertube = await Innertube.create({ cache: new UniversalCache(true)});

Constructors

new Innertube()

new Innertube(session): Innertube

Parameters

• session: Session

Returns

Innertube

Defined in

src/Innertube.ts:65

Accessors

account

get account(): AccountManager

An interface for managing and retrieving account information.

Returns

AccountManager

Defined in

src/Innertube.ts:602


actions

get actions(): Actions

An internal class used to dispatch requests.

Returns

Actions

Defined in

src/Innertube.ts:623


interact

get interact(): InteractionManager

An interface for directly interacting with certain YouTube features.

Returns

InteractionManager

Defined in

src/Innertube.ts:616


kids

get kids(): Kids

An interface for interacting with YouTube Kids.

Returns

Kids

Defined in

src/Innertube.ts:595


music

get music(): Music

An interface for interacting with YouTube Music.

Returns

Music

Defined in

src/Innertube.ts:581


playlist

get playlist(): PlaylistManager

An interface for managing playlists.

Returns

PlaylistManager

Defined in

src/Innertube.ts:609


session

get session(): Session

The session used by this instance.

Returns

Session

Defined in

src/Innertube.ts:630


studio

get studio(): Studio

An interface for interacting with YouTube Studio.

Returns

Studio

Defined in

src/Innertube.ts:588

Methods

call()

call(endpoint, args)

call<T>(endpoint, args): Promise<T>

Utility method to call an endpoint without having to use Actions.

Type Parameters

• T extends IParsedResponse

Parameters

• endpoint: NavigationEndpoint

• args

• args.parse: true

Returns

Promise<T>

Defined in

src/Innertube.ts:572

call(endpoint, args)

call(endpoint, args?): Promise<ApiResponse>

Parameters

• endpoint: NavigationEndpoint

• args?

• args.parse?: false

Returns

Promise<ApiResponse>

Defined in

src/Innertube.ts:573


download()

download(video_id, options?): Promise<ReadableStream<Uint8Array>>

Downloads a given video. If all you need the direct download link, see getStreamingData. If you wish to retrieve the video info too, have a look at getBasicInfo or getInfo.

Parameters

• video_id: string

The video id.

• options?: DownloadOptions

Download options.

Returns

Promise<ReadableStream<Uint8Array>>

Defined in

src/Innertube.ts:462


getAttestationChallenge()

getAttestationChallenge(engagement_type, ids?): Promise<IGetChallengeResponse>

Fetches an attestation challenge.

Parameters

• engagement_type: EngagementType

• ids?: Record<string, any>[]

Returns

Promise<IGetChallengeResponse>

Defined in

src/Innertube.ts:558


getBasicInfo()

getBasicInfo(video_id, client?): Promise<VideoInfo>

Parameters

• video_id: string

• client?: InnerTubeClient

Returns

Promise<VideoInfo>

Defined in

src/Innertube.ts:118


getChannel()

getChannel(id): Promise<Channel>

Parameters

• id: string

Returns

Promise<Channel>

Defined in

src/Innertube.ts:381


getChannelsFeed()

getChannelsFeed(): Promise<Feed<IBrowseResponse>>

Returns

Promise<Feed<IBrowseResponse>>

Defined in

src/Innertube.ts:375


getComments()

getComments(video_id, sort_by?, comment_id?): Promise<Comments>

Parameters

• video_id: string

• sort_by?: "TOP_COMMENTS" | "NEWEST_FIRST"

• comment_id?: string

Returns

Promise<Comments>

Defined in

src/Innertube.ts:296


getCourses()

getCourses(): Promise<Feed<IBrowseResponse>>

Returns

Promise<Feed<IBrowseResponse>>

Defined in

src/Innertube.ts:363


getGuide()

getGuide(): Promise<Guide>

Returns

Promise<Guide>

Defined in

src/Innertube.ts:340


getHashtag()

getHashtag(hashtag): Promise<HashtagFeed>

Parameters

• hashtag: string

Returns

Promise<HashtagFeed>

Defined in

src/Innertube.ts:421


getHistory()

getHistory(): Promise<History>

Returns

Promise<History>

Defined in

src/Innertube.ts:351


getHomeFeed()

getHomeFeed(): Promise<HomeFeed>

Returns

Promise<HomeFeed>

Defined in

src/Innertube.ts:334


getInfo()

getInfo(target, client?): Promise<VideoInfo>

Parameters

• target: string | NavigationEndpoint

• client?: InnerTubeClient

Returns

Promise<VideoInfo>

Defined in

src/Innertube.ts:73


getLibrary()

getLibrary(): Promise<Library>

Returns

Promise<Library>

Defined in

src/Innertube.ts:345


getNotifications()

getNotifications(): Promise<NotificationsMenu>

Returns

Promise<NotificationsMenu>

Defined in

src/Innertube.ts:388


getPlaylist()

getPlaylist(id): Promise<Playlist>

Parameters

• id: string

Returns

Promise<Playlist>

Defined in

src/Innertube.ts:408


getPlaylists()

getPlaylists(): Promise<Feed<IBrowseResponse>>

Retrieves the user's playlists.

Returns

Promise<Feed<IBrowseResponse>>

Defined in

src/Innertube.ts:402


getPost()

getPost(post_id, channel_id): Promise<Feed<IBrowseResponse>>

Gets a post page given a post id and the channel id

Parameters

• post_id: string

• channel_id: string

Returns

Promise<Feed<IBrowseResponse>>

Defined in

src/Innertube.ts:482


getPostComments()

getPostComments(post_id, channel_id, sort_by?): Promise<Comments>

Gets the comments of a post.

Parameters

• post_id: string

• channel_id: string

• sort_by?: "TOP_COMMENTS" | "NEWEST_FIRST"

Returns

Promise<Comments>

Defined in

src/Innertube.ts:506


getSearchSuggestions()

getSearchSuggestions(query, previous_query?): Promise<string[]>

Parameters

• query: string

• previous_query?: string

Returns

Promise<string[]>

Defined in

src/Innertube.ts:267


getShortsVideoInfo()

getShortsVideoInfo(video_id, client?): Promise<ShortFormVideoInfo>

Parameters

• video_id: string

• client?: InnerTubeClient

Returns

Promise<ShortFormVideoInfo>

Defined in

src/Innertube.ts:156


getStreamingData()

getStreamingData(video_id, options): Promise<Format>

An alternative to download. Returns deciphered streaming data.

If you wish to retrieve the video info too, have a look at getBasicInfo or getInfo.

Parameters

• video_id: string

The video id.

• options: FormatOptions = {}

Format options.

Returns

Promise<Format>

Defined in

src/Innertube.ts:447


getSubscriptionsFeed()

getSubscriptionsFeed(): Promise<Feed<IBrowseResponse>>

Returns

Promise<Feed<IBrowseResponse>>

Defined in

src/Innertube.ts:369


getTrending()

getTrending(): Promise<TabbedFeed<IBrowseResponse>>

Returns

Promise<TabbedFeed<IBrowseResponse>>

Defined in

src/Innertube.ts:357


getUnseenNotificationsCount()

getUnseenNotificationsCount(): Promise<number>

Returns

Promise<number>

Defined in

src/Innertube.ts:393


resolveURL()

resolveURL(url): Promise<NavigationEndpoint>

Resolves the given URL.

Parameters

• url: string

Returns

Promise<NavigationEndpoint>

Defined in

src/Innertube.ts:470


search()

search(query, filters): Promise<Search>

Parameters

• query: string

• filters: SearchFilters = {}

Returns

Promise<Search>

Defined in

src/Innertube.ts:191


create()

static create(config): Promise<Innertube>

Parameters

• config: SessionOptions = {}

Returns

Promise<Innertube>

Defined in

src/Innertube.ts:69

Edit this page
Last Updated:: 6/8/25, 5:43 PM
Contributors: Luan