What is YouTube InnerTube API and How does it work?

YouTube’s InnerTube API is the hidden engine powering all YouTube apps and websites. It connects clients like Web, Android, and TV to the backend, handling video data, comments, and recommendations; an unofficial yet fascinating part of YouTube’s internal architecture.

What is YouTube InnerTube API and How does it work?

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.

You May Also Like:YouTube CPM vs RPM Explanation & How to Increase RPM
Comments (0)

No comments yet. Be the first to comment!

Leave a Comment