YouTube Comments Scraper πŸ’¬ avatar

YouTube Comments Scraper πŸ’¬

Pricing

from $10.00 / 1,000 results

Go to Apify Store
YouTube Comments Scraper πŸ’¬

YouTube Comments Scraper πŸ’¬

πŸ’¬ Export YouTube comments to JSON, CSV or Excel. Get comment text, author, likes, reply count and publish date for any video. Paginated, no login, no YouTube API key or quota.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Scriptbase

Scriptbase

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

YouTube Comments Scraper

Export YouTube comments to JSON, CSV or Excel. Give it a video URL, get back every comment with its author, like count, reply count and publish date β€” no login, no YouTube Data API key, no quota.

The official YouTube Data API caps you at 10,000 units a day and needs a Google Cloud project and an OAuth screen. This actor needs a URL.

What it does

Reads the comment thread of one YouTube video and writes one dataset row per comment. It pages through the thread until it hits your maxItems limit or the comments run out, whichever comes first.

Works on regular videos, Shorts and past live streams. Any URL form YouTube accepts is fine: youtube.com/watch?v=…, youtu.be/…, youtube.com/shorts/….

Input

FieldTypeRequiredDefaultDescription
urlstringyesβ€”YouTube video URL
maxItemsintegerno100Stop after this many comments
{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "maxItems": 500 }

maxItems is your cost ceiling β€” you are charged per comment delivered, so setting it caps spend before the run starts.

Output

One row per comment.

{
"id": "UgxKREWxIgDrGsvcMbV4AaABAg",
"text": "Still a banger in 2026",
"author": { "name": "Jane Doe", "id": "UC38IQsAvIsxxjztdMZQtwHA", "avatarUrl": "https://yt3.ggpht.com/…", "verified": false },
"likeCount": 1284,
"replyCount": 12,
"publishedAt": "2026-03-04T11:22:00.000Z",
"publishedAtConfidence": "parsed"
}
FieldTypeNotes
idstringPlatform comment id
textstringComment body
author.namestringDisplay name
author.idstringChannel id, when the source reports one
author.avatarUrlstringProfile image URL
author.verifiedbooleanVerified badge
likeCountintegerLikes
replyCountintegerReplies to this comment
publishedAtstringISO 8601
publishedAtConfidencestringexact | parsed | unknown

About publishedAtConfidence

YouTube renders ages as relative text β€” "2 weeks ago" β€” rather than timestamps. When that is all a source gives us, the date is computed from it and marked parsed. exact means a real timestamp arrived. unknown means neither did, and publishedAt is absent.

Most scrapers present a computed date as if it were exact. This one tells you which it is, so you can judge whether it is precise enough for your analysis.

What it does not do

  • Replies are not expanded. You get top-level comments and each one's replyCount. The replies themselves are a separate fetch.
  • No search or filtering. Comments come back in the source's order; filter downstream.
  • One video per run. For many videos, run once per URL β€” failures stay isolated and costs stay attributable.
  • Comments must be public. A video with comments disabled returns zero rows and succeeds. That is a real answer, not an error.

Pricing

Charged per comment delivered. A run returning 250 comments bills 250. Failed runs deliver nothing and charge nothing. The per-comment price is on this actor's Store page.

Errors

CodeMeaning
BAD_REQUESTInput missing, malformed, or not a URL this actor serves
NOT_FOUNDThe target is private, removed, or does not exist
UNSUPPORTED_OPERATIONThe URL resolved to a platform this actor does not serve
UPSTREAM_FAILEDEvery upstream source failed β€” retry shortly
RATE_LIMITEDToo many requests; back off and retry
TIMEOUTThe source took longer than the actor's budget
UNAUTHORIZEDThe actor's API credentials are invalid β€” contact the author
INSUFFICIENT_CREDITSThe account behind this actor is out of credits β€” contact the author
INTERNAL_ERRORUnexpected failure

UNAUTHORIZED and INSUFFICIENT_CREDITS are on us, not you. If you see either, the actor is misconfigured on our side.

How it works

Comments are fetched through two independent upstream sources. If the first returns nothing usable, the second is tried automatically inside the same run β€” no double charge, no retry on your side.

Comment threads are always fetched live, never served from a cache.

FAQ

Do I need a YouTube API key? No. No key, no OAuth, no Google Cloud project.

Does this consume YouTube Data API quota? No. It does not use the official API, so your daily quota is untouched.

Can I get replies to a comment? Not from this actor. replyCount tells you how many exist.

Why did I get fewer comments than maxItems? The video ran out first. That is a normal successful run.

Can I scrape comments from a private or age-restricted video? No. Those return NOT_FOUND.