What is YouTube InnerTube?
YouTube InnerTube API is a JSON-based REST API protocol that handles communication between YouTube’s web, mobile, TV, and embedded clients and its backend servers. Although it powers all of YouTube’s internal data exchanges, it is not officially documented or supported by Google.
In simple terms: Every action you take on YouTube opening a video, posting a comment, performing a search, or loading recommendations is processed through InnerTube API calls.
Unlike the YouTube Data API v3, which is publicly available and designed for third-party developers, the InnerTube API is internal to YouTube’s own clients. Its responses are optimized to render the YouTube interface directly, providing all the structured data (videos, channels, playlists, feeds, comments, etc.) needed to display what you see on the platform.
What Can Be Done with the Innertube API
Below is a detailed list of data categories and capabilities available through YouTube’s internal Innertube API. These endpoints provide structured JSON responses depending on the type of request and client.
| Category / Purpose | Retrievable Data | Description |
|---|---|---|
| Video information | - Title - Description - Upload date - Duration (seconds) - View count - Like count - Like / dislike button states - Thumbnail URLs (default, HQ, maxres) - Tags / keywords - Video category - Content rating |
Fetched via the player or next endpoints when a video page is loaded. |
| Video streams (media URLs) | - adaptiveFormats (separate audio/video) - formats (combined stream) - Codec info (H.264, VP9, AV1) - Bitrate, resolution, FPS - DASH manifest URL - Audio track details (language, channels) |
Contains actual streaming URLs (url, signatureCipher); available in player responses. |
| Comments and replies | - Comment text - Author name - Profile picture - Like count - Reply count - Timestamp - Pinned comment info |
Obtained from the commentThreads endpoint; paginated via “next” tokens. |
| Subtitles / Captions | - Available languages (captionTracks) - Caption URL (baseUrl) - Formats (.vtt, .srv3) - Auto-generated vs manual - Timed text (start, end, content) |
Located in captions.playerCaptionsTracklistRenderer inside player responses. |
| Channel metadata | - Channel name - Channel ID - Subscriber count - Description - Join button status - Avatar URL - Verified badge - Total view count (on some clients) |
Available from browse or channel endpoints. |
| Channel statistics | - Total video count - Total views - Latest uploads - Channel playlists - Community tab posts - Shorts / Live / Videos tabs |
Retrieved via the browse endpoint. |
| Search | - Video results (title, thumbnail, duration) - Channel results - Playlist results - Live streams - Shorts - Auto-complete suggestions |
Uses search or getSearchSuggestions endpoints. |
| Homepage feed / recommendations | - Personalized recommendations - Trending videos - Shorts recommendations - Auto mixes (playlists) - Continue Watching section |
Returned via browse endpoint with FEwhatToWatch parameter. |
| Playlist data | - Playlist title - Description - Video list (videoId, title, length, thumbnail) - Owner channel - Video order index - Continuation tokens (pagination) |
Available under browse endpoint with playlist context. |
| Video chapters / timeline | - Chapter titles - Start times - Chapter thumbnails - Music track info (for music videos) |
Found in playerOverlays.playerOverlayRenderer.decoratedPlayerBarRenderer. |
| Watch history | - Recently watched videos - Watched timestamp - Progress percentage |
Loaded via browse endpoint (FEhistory); may require login. |
| Music metadata | - Song title - Artist(s) - Album name - Genre - License info - YouTube Music link |
Found in musicResponsiveListItemRenderer or player.microformat.playerMicroformatRenderer. |
| Tags and topics | - Related topics - Hashtags - Wikipedia references (for some videos) |
Appears under superTitleLink or watchMetadataAppInfoRenderer nodes. |
| Video chapter metadata | - Key Moments - Most replayed graph - Viewer engagement heatmap |
Contained in heatmap or engagementPanels objects. |
| Authenticated user actions | - Like / dislike - Subscribe - Comment - Add to playlist - Sync watch history |
Requires SAPISID token or OAuth authentication. |
| Algorithm / recommendation testing | - Search + continuation-based results - Regional trending data - Explore / discovery feed |
Queried via browse endpoint with FEtrending or FEexplore parameters. |
Technical Notes
- Each data type is usually fetched from a specific endpoint (e.g., /youtubei/v1/player, /youtubei/v1/browse).
- Responses are deeply nested JSON structures typically inside renderer or runs arrays.
- Some data use “continuation” tokens for pagination.
- Different clientName values (e.g., WEB, ANDROID, TVHTML5) can return different response formats or fields for the same video or channel.
Known Innertube Clients and ClientVersions
Below are known client identifiers used by YouTube's Innertube API. Each represents a device or application type and tells YouTube which interface is making the request.
| Platform / Application Type | clientName | ClientVersion | Description |
|---|---|---|---|
| YouTube Web (desktop) | WEB | 2.20241010.00.00 | Standard youtube.com site. |
| YouTube Web (mobile browser) | MWEB | 2.20241010.00.00 | Mobile web (m.youtube.com) version. |
| YouTube Android App | ANDROID | 19.26.35 | Main YouTube mobile app (Android). |
| YouTube iOS App | IOS | 19.29.1 | Main YouTube app (iPhone / iPad). |
| YouTube TV / Smart TV (web-based) | TVHTML5 | 7.20241010 | Web-based interface used on many smart TVs. |
| YouTube TV (Android TV) | ANDROIDTV | 7.20241010 | Android TV application. |
| YouTube TV (Apple TV variant) | TVHTML5_SIMPLY_EMBEDDED_PLAYER | 7.20241010 | TVHTML5 variant for embedded TV players. |
| YouTube Embed Player (iframe) | WEB_EMBEDDED_PLAYER | 2.20241010.00.00 | Iframe player embedded on third-party sites. |
| YouTube Embed Player (mobile) | MWEB_EMBEDDED_PLAYER | 2.20241010.00.00 | Mobile web embedded player. |
| YouTube Music (Web) | WEB_REMIX | 2.20241010.00.00 | YouTube Music web client (music.youtube.com). |
| YouTube Music (Android) | ANDROID_MUSIC | 7.19.52 | YouTube Music Android app. |
| YouTube Music (iOS) | IOS_MUSIC | 7.19.52 | YouTube Music iOS app. |
| YouTube Music (TV) | TVHTML5_MUSIC | 7.20241010 | YouTube Music on smart TVs. |
| YouTube Kids (Android) | ANDROID_KIDS | 8.14.0 | YouTube Kids Android version. |
| YouTube Kids (iOS) | IOS_KIDS | 8.14.0 | YouTube Kids iOS version. |
| YouTube Studio (Web) | WEB_CREATOR | 2.20241010.00.00 | studio.youtube.com interface. |
| YouTube Studio (Android) | ANDROID_CREATOR | 23.36.100 | YouTube Studio mobile app. |
| YouTube Shorts (Web) | WEB_SHORTS | 2.20241010.00.00 | Shorts experience in the browser. |
| YouTube Shorts (Mobile) | ANDROID_SHORTS | 19.26.35 | Client optimized for Shorts content. |
| YouTube Gaming (legacy) | ANDROID_GAMING | 16.20.35 | Legacy YouTube Gaming application (no longer actively used). |
| YouTube Search App (experimental) | ANDROID_SEARCH | 1.4.0 | Experimental search client (limited access/testing). |
| YouTube Lite (experimental) | ANDROID_LITE | 1.01.05 | Lightweight Android build for low-data regions (limited rollout). |
| YouTube Cast (Chromecast) | ANDROIDTV_CAST | 7.20241010 | Client used by Chromecast devices. |
| YouTube Explore / Trending (experimental) | WEB_EXPERIMENTAL | 2.20241010.00.00 | Experimental web clients (A/B test interfaces). |
| Internal Testing Clients (Google) | WEB_INTERNAL, ANDROID_INTERNAL, TVHTML5_INTERNAL | variable | Internal clients used by Google for testing; access restricted. |
Additional information
Typical clientVersion format is a date-based build identifier:
2.YYYYMMDD.00.00 → e.g. 2.20241010.00.00
Example JSON context commonly sent with Innertube requests:
{
"context": {
"client": {
"clientName": "ANDROID",
"clientVersion": "19.26.35",
"androidSdkVersion": 30,
"hl": "en",
"gl": "US"
}
}
}
- Changing the clientName can cause endpoints to return different fields or formats (e.g., web vs. android responses).
- ANDROID responses often return playback URLs with fewer signature protections.
- WEB responses frequently include signatureCipher items that require additional decoding.
- TVHTML5 responses can expose higher-resolution streams (e.g., 4K) more readily.
Active YouTube InnerTube Clients (Observed in Testing)
The clients above are generally known ones, but after testing Client IDs from 1 to 300, I observed that only the following are currently active, for your information.
| Client ID | Client Name | Client Version | Notes / Status |
|---|---|---|---|
| 1 | WEB | 2.20220918 | Standard desktop web client. |
| 2 | MWEB | 2.20220918 | Mobile web client. |
| 3 | ANDROID | 17.36.4 | Main Android app. |
| 5 | IOS | 17.36.4 | Main iOS app. |
| 7 | TVHTML5 | 7.20220918 | Smart TV web client. |
| 8 | TVLITE | 2 | Lightweight TV interface. |
| 10 | TVANDROID | 1.0 | Android TV variant. |
| 13 | XBOXONEGUIDE | 1.0 | Xbox platform client. |
| 14 | ANDROID_CREATOR | 22.36.102 | YouTube Studio app (Android). |
| 15 | IOS_CREATOR | 22.36.102 | YouTube Studio app (iOS). |
| 16 | TVAPPLE | 1.0 | Apple TV interface. |
| 18 | ANDROID_KIDS | 7.36.1 | YouTube Kids (Android). |
| 19 | IOS_KIDS | 7.36.1 | YouTube Kids (iOS). |
| 21 | ANDROID_MUSIC | 5.26.1 | YouTube Music app (Android). |
| 23 | ANDROID_TV | 2.19.1.303051424 | Official Android TV client. |
| 26 | IOS_MUSIC | 5.26.1 | YouTube Music app (iOS). |
| 27 | MWEB_TIER_2 | 9.20220918 | Mobile web variant. |
| 28 | ANDROID_VR | 1.37 | Virtual reality version. |
| 29 | ANDROID_UNPLUGGED | 6.36 | YouTube TV (Android-based). |
| 30 | ANDROID_TESTSUITE | 1.9 | Internal testing client. |
| 31 | WEB_MUSIC_ANALYTICS | 0.2 | Music analytics platform. |
| 33 | IOS_UNPLUGGED | 6.36 | YouTube TV app (iOS). |
| 38 | ANDROID_LITE | 3.26.1 | Lightweight Android version. |
| 39 | IOS_EMBEDDED_PLAYER | 2.4 | Embedded player on iOS. |
| 41 | WEB_UNPLUGGED | 1.20220918 | YouTube TV web client. |
| 42 | WEB_EXPERIMENTS | 1 | Experimental web interface. |
| 43 | TVHTML5_CAST | 1.1 | Chromecast/TV casting client. |
| 55 | ANDROID_EMBEDDED_PLAYER | 17.36.4 | Embedded Android player. |
| 56 | WEB_EMBEDDED_PLAYER | 9.20220918 | Embedded web player (iframe). |
| 57 | TVHTML5_AUDIO | 2.0 | TV audio interface. |
| 58 | TV_UNPLUGGED_CAST | 0.1 | TV cast for YouTube TV. |
| 59 | TVHTML5_KIDS | 3.20220918 | Kids mode on Smart TVs. |
| 60 | WEB_HEROES | 0.1 | Internal experiment client. |
| 61 | WEB_MUSIC | 1.0 | YouTube Music web client. |
| 62 | WEB_CREATOR | 1.20220918 | YouTube Studio web panel. |
| 63 | TV_UNPLUGGED_ANDROID | 1.37 | Android TV unplugged variant. |
| 64 | IOS_LIVE_CREATION_EXTENSION | 17.36.4 | Live creation iOS extension. |
| 65 | TVHTML5_UNPLUGGED | 6.36 | TV variant for YouTube TV. |
| 66 | IOS_MESSAGES_EXTENSION | 17.36.4 | Message sharing extension (iOS). |
| 67 | WEB_REMIX | 1.20220918 | YouTube Music (Remix) web version. |
| 68 | IOS_UPTIME | 1.0 | Internal uptime monitor client. |
| 69 | WEB_UNPLUGGED_ONBOARDING | 0.1 | Setup flow for YouTube TV web. |
| 70 | WEB_UNPLUGGED_OPS | 0.1 | Operations interface (internal). |
| 71 | WEB_UNPLUGGED_PUBLIC | 0.1 | Public-facing YouTube TV web. |
| 72 | TVHTML5_VR | 0.1 | VR variant for Smart TVs. |
| 74 | ANDROID_TV_KIDS | 1.19.1 | YouTube Kids on Android TV. |
| 75 | TVHTML5_SIMPLY | 1.0 | Basic embedded TV client. |
| 76 | WEB_KIDS | 2.20220918 | YouTube Kids web version. |
| 77 | MUSIC_INTEGRATIONS | 0.1 | Music system integration client. |
| 80 | TVHTML5_YONGLE | 0.1 | Regional TV client variant. |
| 84 | GOOGLE_ASSISTANT | 0.1 | Google Assistant YouTube integration. |
| 85 | TVHTML5_SIMPLY_EMBEDDED_PLAYER | 2.0 | TV embedded player variant. |
| 87 | WEB_INTERNAL_ANALYTICS | 0.1 | Internal analytics client. |
| 88 | WEB_PARENT_TOOLS | 1.20220918 | Parental control dashboard. |
| 89 | GOOGLE_MEDIA_ACTIONS | 0.1 | Google-wide media action client. |
| 90 | WEB_PHONE_VERIFICATION | 1.0.0 | Phone verification interface. |
| 92 | IOS_PRODUCER | 0.1 | Content producer iOS tool. |
| 93 | TVHTML5_FOR_KIDS | 7.20220918 | Smart TV Kids version. |
| 94 | GOOGLE_LIST_RECS | 0.1 | Recommendation listing client. |
| 95 | MEDIA_CONNECT_FRONTEND | 0.1 | Media connect front-end client. |
Note: These results were gathered from empirical testing. Some clients may be deprecated, experimental, or internal to Google systems. Versions and availability can vary over time.
No comments yet. Be the first to comment!