9 min read
How to Get a YouTube Video's Exact View Count, Likes, and Publish Date (2026)
YouTube Video Transcript returns a video's exact view count, like count, and ISO publish date to ChatGPT, Claude, or Grok in one free call, where YouTube's own pages may show “4.5M views” and “8 days ago”. The display text is fine for browsing and useless for anything you compute with: a growth rate, a ranking, a date range, a spreadsheet column. This post is for the reader who needs the number, not the label.
The server is at https://api.youtubevideotranscript.io/mcp. The tool that carries the numbers is get_video_info, and it charges nothing at any balance; a Google sign-in gives 30 shared credits every 30 days for transcripts or comments pages. Below: where YouTube's exact figures live and where they do not, the fields and their types, a run on real videos, and the handful of things to watch when you use the values.
537 transcripts have been delivered through the YouTube Video Transcript MCP server, across 51 accounts. Figures as of September 2026.
Where do the exact numbers live?
Behind the video, not on the pages that list it. Surfaces that show many videos at once render text meant for display, and it is often rounded or relative: a channel page says “4.5M views” and “8 days ago”, a channel header says “1.8K videos” and “21.2M subscribers”, a search result says “3 years ago”. Some rows carry a full count as text, such as “13,547,791 views”; either way the row is a string shaped for reading. Our listing tools return that text as YouTube shows it. get_video_info asks about one video and returns numeric fields and a publish timestamp, which is why the values arrive ready to compute with.
Two other places hold exact figures, and both are narrower. A channel's RSS feed lists its newest 15 uploads with exact publish times and view counts, and nothing older. The transcript itself, fetched with get_transcript, carries a metadata block with title, author, thumbnail, channel ID, and duration, and no views, likes, or date; it describes the video enough to label the text, not to measure it.
What does the call return, and in what shape?
One request to YouTube for the base record, a second only if you ask for dates. The field names and types below are the tool's actual output.
| Field | Type | Note |
|---|---|---|
| video_id, title, url, channel, channel_id | string | The identity block, always present |
| views | integer or null | YouTube's unrounded count as returned by this lookup |
| duration_seconds | integer | Whole seconds, where listings show 22:21 |
| description, keywords | string, string array | The full description; keywords are the creator's tags and can be an empty array |
| is_live, thumbnail | boolean, string | Live flag and the largest thumbnail URL |
| has_captions, caption_tracks | boolean, array | Each track: language_code, language_name, auto_generated. The missing-transcript post covers what an empty list means |
| published_at, uploaded_at | ISO 8601 string with offset | With include_dates only, for example 2022-09-14T06:01:12-07:00. uploaded_at falls back to published_at when YouTube supplies no upload date |
| likes | integer or null | With include_dates only; YouTube's pages show 356K, this returns 356252 |
| category | string or null | With include_dates only, such as Music |
| dates | null | Present only when dates were requested and the second lookup returned nothing; the base record is still complete |
The split is deliberate. The client that reliably serves the base record and the caption list does not return the block that holds dates and likes, so those need a second request under a different client. Asking for them costs a request to YouTube and no credit. Leave include_dates off when you only want views, duration, or captions.
Run: the same video as text and as numbers
Every figure below is what the tools returned on 5 and 6 September 2026, on a free account, for zero credits. The point of the run is the gap between what a listing says and what the details call says about the same video.
A channel search inside @mkbhd returned the row for iPhone 14 Pro Review: This Will Be Copied! as “13,547,791 views”, “3 years ago”, and a duration of 1341 seconds. get_video_info on the same ID with dates returned views 13547779, duration_seconds 1341, published_at 2022-09-14T06:01:12-07:00, likes 356252, category Science and Technology, nine keywords, a description carrying the creator's chapter markers, and four caption tracks. Two things to notice: “3 years ago” became a timestamp to the second, and the two responses, a few minutes apart, reported counts twelve apart. Record the lookup time when comparing readings.
The same effect shows on a very large video. Three readings of Rick Astley's Never Gonna Give You Up on 5 September 2026, minutes to hours apart, the first taken while the tool was being built and two through it, returned 1812156404, 1812159425, and 1812159438 views, with likes at 19375157 and then 19375162, published_at 2009-10-24T23:57:33-07:00 each time, and category Music. A rounded label would have said 1.8B for all three.
Two lookups from a car channel show the dates doing the work listings cannot. A Rivian R2/R3 first look returned 2062386 views, published_at 2024-03-07T12:00:51-08:00, 62842 likes, category People and Blogs, and an empty keywords array. A Mercedes AMG GT63 review returned 361593 views, published_at 2024-10-10T14:25:25-07:00, 11702 likes, category Autos and Vehicles. The listing had shown both as “1 year ago” and “2 years ago”; the details calls put seven months between them, which is what a timeline needs. In the same batch one lookup returned its base record in full and dates as null.
| Surface | Views | Date | Likes |
|---|---|---|---|
| Channel page or search row | 13,547,791 views | 3 years ago | not shown |
get_video_info | 13547779 | 2022-09-14T06:01:12-07:00 | 356252 |
| Transcript metadata | not carried | not carried | not carried |
What should you watch when you use the values?
The numbers are exact, and four properties of them will bite a script or a spreadsheet that assumes otherwise.
- The offset is part of the date. Every timestamp recorded here carried a Pacific offset, -07:00 or -08:00 depending on the season. Parse the string as ISO 8601 and convert; comparing the clock digits across a daylight-saving boundary orders two videos wrongly.
- Views are what one lookup returned, not a fixed fact about the video. Two calls can report two numbers. Record the time of the call alongside the count if you plan to compare it with a later one.
- Likes, dates, and category can be absent together. They come from the second lookup, and when it returns nothing you get
dates: nullwith a complete base record. Treat null as “not available now”, not as zero. - Some fields are the creator's to fill. Keywords were an empty array on one of the videos above, and category can be null. A missing keyword list says nothing about the video's topic.
One figure is not exact anywhere in this set: subscribers. The channel header returns “21.2M subscribers” as text, and the numeric form YouTube attaches to it is the same rounded value expanded, so no tool here claims an exact subscriber count.
What should you ask the model to do with the numbers?
Ask for the field you would put in a column, and the model calls the tool once per video, free.
- “Give me the exact view count, like count, and publish date for these five videos as a table, dates in UTC.” Five free calls with dates, and the model does the conversion.
- “Which of these videos was published first?” The question relative dates cannot answer when two rows both say “1 year ago”.
- “What is the like-to-view ratio for this creator's last ten uploads?” A listing for the IDs, then ten details calls, then arithmetic on integers rather than on 4.5M.
- “How long is this video, and does it have English captions?” The base call answers both without the second request.
- “Record today's view count for this video so we can compare next week.” The count plus the call time, which is the pair a growth number needs.
Where does it stop?
The tool reads what YouTube attaches to a video today. It does not reach into history or into fields YouTube does not publish.
- No history. A view count is what that lookup returned; there is no series of past counts, so a trend needs your own repeated calls.
- No dislikes, no per-day analytics, no revenue, no audience retention. Those are the channel owner's, in YouTube Studio.
- No comment total in this call. The first page of
get_video_commentsreports it in a separate call, costing 1 credit when the page contains comments. - One video per REST request too. The same details are available at
GET /api/v1/video/:videoId?include=dateswithout fetching a transcript. - One video per call. There is no batch form, so fifty videos are fifty free calls, each a request to YouTube.
Which route fits which reader?
Exact per-video numbers inside a chat, for free, fit the analyst who works in conversation. Two other routes fit two other readers.
- You want exact views, likes, and dates for videos you are discussing or comparing in ChatGPT, Claude, or Grok, with the transcript one call away: connect YouTube Video Transcript.
get_video_infois free at any balance, and the same conversation can go on to read the video for one credit. - You are writing a script and need the same fields at scale: the official YouTube Data API's
videos.listreturns viewCount, likeCount, and publishedAt for up to fifty IDs per request under a daily quota, with an API key from Google Cloud. It is the right tool for thousands of videos a day and it does not read transcripts. - You already use another MCP server: TranscriptAPI's documentation lists channel and search tools that return view counts and publish dates in their rows at 1 credit per page; Supadata's lists a metadata tool for media URLs. A per-video details call with a caption list is not listed in either server's MCP documentation.
- You need the newest uploads only and no account at all: a channel's RSS feed carries exact publish times and view counts for its latest 15 videos, and yt-dlp's
--dump-jsonwrites a video's metadata to disk for an offline pipeline.
Questions people ask before pulling the numbers
Why does YouTube show 4.5M views when the real number is different?
Because YouTube's pages render text for display, often rounded and relative: 4.5M views, 8 days ago, 1.8K videos. The numeric figures exist behind those pages, and YouTube Video Transcript's get_video_info tool returns them as numbers: the view count as an integer, the like count as an integer, and the publish date as an ISO 8601 timestamp with its offset. In one lookup the same video read 13,547,791 views in a listing row and 13,547,779 in the details call a few minutes later; the two responses reported different counts, so record the lookup time when you compare readings.
Does getting exact numbers cost credits?
No. get_video_info is free at any balance, including an account with no credits left. The base call returns title, channel, exact views, duration, description, keywords, and caption tracks in one request to YouTube. Setting include_dates adds the exact publish date, like count, and category, which costs a second request to YouTube but still no credit. Fetching a transcript costs 1 credit; optional comments cost 1 credit per nonempty page. Neither is required for the details check.
What timezone is the publish date in?
The timestamp carries its own offset, and in every lookup recorded for this post the offset was Pacific time, for example 2022-09-14T06:01:12-07:00. Parse it as ISO 8601 and convert to UTC or your zone rather than reading the clock digits, or two videos published minutes apart across a daylight-saving change will sort wrongly. Both published_at and uploaded_at are returned, and uploaded_at falls back to published_at when YouTube supplies no upload date, so matching values do not show that uploading and publishing happened together.
Can I get these numbers through the REST API instead of the chat?
Yes. GET /api/v1/video/:videoId?include=dates returns the same details through the public API, with a Bearer API key and no credit charge. The transcript response itself still carries only title, author, thumbnail, channel ID, and duration; use the video details endpoint for views, likes, and dates.
Are the numbers always present?
Views are an integer whenever YouTube supplies one and null when it does not. Likes and dates come from a second lookup that can fail while the rest of the record succeeds; when that happens the response carries dates as null rather than an error, and the caller decides whether to retry. In the lookups recorded for this post, one returned null while the rest returned full dates. Keywords can be an empty array, and category can be null, because creators do not always set them.
Connect it once
The install guide covers ChatGPT, Claude, and Grok step by step, and the MCP docs list every tool with its cost. For finding the videos whose numbers you want, the research post covers the free search tools that feed this one.
Related articles
Turn a YouTube lecture playlist into searchable study notes
YouTube Video Transcript downloads lecture transcripts in bulk. Build searchable notes with a course index, review questions, and links to the original lessons.
Read more →
Turn your YouTube archive into articles and newsletters
YouTube Video Transcript exports your archive in bulk. Find stories and explanations in old videos, then reuse them in articles and newsletters with source links.
Read more →
How to download YouTube comments and replies to CSV or JSON
YouTube Video Transcript collects comments and replies into CSV and JSON for research. Export a video, playlist, or channel with a budget you choose.
Read more →