If you want YouTube comments without spending API quota, the short answer is this. The public watch page shows comments to anyone, logged in or not, as long as the uploader has not turned them off. You can read the comment text, the author's display name and channel link, the like count, the reply count and a relative age such as "3 months ago". What you cannot get from the page is an exact timestamp. YouTube only renders the relative age in the page, and the precise publish date lives in the API response, not in the HTML.
So the trade is simple. The official YouTube Data API gives you exact dates and a clean JSON structure but charges quota per request, and the default daily allowance runs out faster than most people expect. The public page costs no quota but gives you approximate dates and a structure that is built for browsers, not for export. The rest of this article explains both paths in detail so you can decide which one fits your job.
What the official API charges for comments
Every project that uses the YouTube Data API v3 gets a daily quota. Google's getting started page states that projects have a default allocation of 10,000 units per day, and that different methods cost different amounts. You can read the official description here: YouTube Data API quota usage.
The good news for comment work is that reading comments is one of the cheap operations. A call to commentThreads.list costs 1 unit, and a call to comments.list for replies also costs 1 unit. Each call returns up to 100 top level threads. The method reference with the parameters and the maxResults limit is here: commentThreads.list.
That sounds generous until you do the arithmetic on a real workload. A video with 20,000 comments needs at least 200 calls for the top level threads. Replies are the expensive part. A commentThreads.list response includes only a handful of replies per thread, so for any thread with a longer discussion you need a separate comments.list call with the parentId. On a video where many threads have replies, the number of calls can approach the number of threads. Then multiply by the number of videos you track. A channel audit across a few hundred videos, refreshed daily, pushes against the 10,000 unit ceiling quickly.
You can apply for more quota. Google has a quota extension process that involves a compliance audit of your application and its use of the data. It is not instant and it is not guaranteed. If your use is a one time research pull, the default allowance is usually enough. If your use is continuous monitoring across many channels, the quota becomes the main constraint on the design.
There is a second cost that is easy to forget. The API only returns comments that are public and visible. Comments held for review, comments marked as spam and comments on videos where the uploader has disabled commenting are not returned. The page has the same limitation, so this is not a reason to prefer one path over the other. It is simply a boundary on the data that exists.
What the public page gives a logged out visitor
Open any watch page in a private browser window and scroll down. If comments are enabled you will see them. For each comment the page renders the following fields.
- The comment text, including line breaks and emoji.
- The author's display name and a link to their channel.
- A relative age such as "2 days ago" or "4 years ago", sometimes with "(edited)" appended.
- The like count, rounded for large values.
- The reply count and, after a click, the replies themselves with the same fields.
- A pin marker if the uploader pinned the comment, and a heart marker if the uploader hearted it.
You do not need an account for any of this. Logging in changes the sorting defaults and lets you see your own comments that are still pending, but it does not reveal more of other people's comments.
The page also gives you a choice of sort order between "Top comments" and "Newest first". This matters more than it seems. The top sort is a ranking that YouTube does not document in detail, and it will not surface every comment on a large video. The newest sort is the closest thing to a complete chronological walk, but on very large videos the page stops loading after a point and there is no visible indication of how many comments were skipped.
Why exact dates are missing
This is the question that trips most people up. The watch page shows "3 months ago" and nothing else. There is no hidden ISO timestamp in the HTML next to the comment, and the internal data the page uses to render comments carries the same relative string. YouTube formats the age on the server and sends only the formatted text.
The API, by contrast, returns publishedAt and updatedAt as full RFC 3339 timestamps in the comment snippet. That is the single biggest data quality difference between the two paths.
What can you do with a relative age? You can convert it to an approximate date by subtracting from the time of the crawl. The precision depends on the unit YouTube chose. "5 minutes ago" is good to a few minutes. "3 weeks ago" is good to about a week. "2 years ago" could be anywhere in a twelve month window. If you need to plot comment volume per day, the page is not a reliable source for anything older than a few days. If you only need to know roughly when a wave of comments arrived, it is usually fine.
A practical rule follows from this. Crawl soon after the event you care about. A comment crawled an hour after publication has an age of "1 hour ago" and you can pin it to the hour. The same comment crawled a year later is only good to the year.
Where the page data is incomplete
Be honest with yourself about what a page crawl misses, because the gaps are structural, not accidental.
- Replies are collapsed by default. Each thread needs an extra request to expand, and the expand request itself paginates for long threads.
- Like counts are rounded above a thousand. "1.2K" is what you get, not 1,217.
- Comments can be removed at any time by the author, the uploader or YouTube. A crawl is a snapshot, and two crawls a week apart will not match.
- Videos marked as made for kids have comments turned off entirely, so there is nothing to collect.
- Live chat replay is a separate system from comments and does not appear in the comment section.
- Author identity is a display name and a channel link. Display names are not unique and can change.
The API shares most of these limits except the rounded like count, which it returns as an exact integer. If exact engagement numbers matter, the API wins again.
Free ways to get the same data, and when they are better
Before paying for anything, check whether one of these covers your need.
The official API with the default quota. For a one time pull of comments from a handful of videos this is the best option by a wide margin. It is free, it gives exact timestamps, exact like counts and a stable JSON schema, and it respects the platform's own rules. You need a Google Cloud project and an API key, which takes a few minutes to set up. Most research projects, student work and one off content audits should start here.
Google Takeout for your own comments. If the comments you want are the ones you wrote, you do not need any API or scraper. Google Takeout exports your YouTube activity, including your comments, as files you can download. It does not export other people's comments.
YouTube Studio for channels you own. If you manage the channel, the comments tab in YouTube Studio shows every comment on your videos, including those held for review, and the API lets channel owners pull their own comments with full detail. Owners have more data than any outside visitor can see.
Manual copying. For a dozen comments on one video, copy and paste is faster than any tool.
The page based route is the better choice in two situations. The first is when you have exhausted the quota and cannot wait for the extension process. The second is when you need to collect from many videos on a schedule and the per call cost adds up to more than your daily allowance. In both cases you accept approximate dates and rounded likes in exchange for volume.
A note on terms
Whatever path you take, read the YouTube Terms of Service before you build anything that collects data at scale. The terms set out what automated access is and is not permitted, and the API has its own developer policies that apply to anyone using an API key. The terms are here: YouTube Terms of Service. Collecting public comment text for analysis is a different thing from republishing it or building profiles of individual commenters, and the second kind of use raises privacy questions that no tool solves for you.
Choosing a path
Ask three questions. Do you need exact timestamps or exact like counts? If yes, use the API. Is the total volume small enough to fit the free quota? If yes, use the API. Are you collecting from videos you own? If yes, use YouTube Studio or the API as the owner. Only when all three answers are no does a page based collector make sense, and even then you should know going in that dates will be approximate and the result is a snapshot that will drift.
If that last case is yours, the YouTube comments scraper on this site collects top level comments and replies from public watch pages, converts the relative age to an approximate date at crawl time, and returns the result as JSON or CSV, priced per comment delivered rather than per daily quota.
Want the signal instead of the raw filings? Get a free report preview. Prefer the tool to the write-up? Browse all data feeds or connect the free MCP server.