YouTube Comments Scraper - Text, Likes & Authors
Pricing
Pay per event
YouTube Comments Scraper - Text, Likes & Authors
"304K" is what YouTube prints under a comment, and "304K" is what comes back; there is no number behind it to give. Rows carry text, reply count, relative timestamp, author handle, channel ID, verified badge and avatar. $0.40 per 1,000 comments plus a $0.001 start fee.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Comments Scraper
Point it at YouTube videos and it returns the comments: text, author, like count, reply count, timestamp, verified badge and avatar. There's no API key to request and no Google quota to keep an eye on.
What you get back
{"ok": true,"type": "comment","id": "EhpVZ3pnZTM0MGRCZ0I3NWhXQm01NEFhQUJBZyAoKAE%3D","videoId": "dQw4w9WgXcQ","text": "can confirm: he never gave us up","publishedTime": "1 year ago","likeCount": "304K","replyCount": "963","isReply": false,"author": "@YouTube","authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ","authorIsVerified": true,"authorAvatar": "https://yt3.ggpht.com/3s6evpqAiDU9tQR4sC2siJippbH2RWVPnwHgyl4V0th2iuQz0VDQZbUhQBGmsxLYo-mjG6TqZQ=s88-c-k-c0x00ffffff-no-rj"}
Three of those fields aren't the type you'd expect:
likeCount and replyCount are strings, and they're abbreviated. A comment with 304,000 likes gives you "304K", not 304000. That's YouTube's own display text. Small numbers come through exact ("963"), large ones don't. Parse accordingly if you're going to sort on it.
publishedTime is relative text. "1 year ago", "3 weeks ago". There's no absolute timestamp in this payload.
author is the @handle, including the @. authorChannelId is the stable UC… ID and is what you should join on.
Input
{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://youtu.be/9bZkp7q19f0"],"maxComments": 500}
| Field | Default | Notes |
|---|---|---|
videoUrls | one prefilled example | Watch URLs, youtu.be short links and /shorts/ URLs all parse. |
videoIds | — | Or bare 11-character IDs, if that's what you have. |
maxComments | 100 | Total across all videos, 1 to 10,000. This is your budget cap. |
proxyConfiguration | Apify proxy on | Datacenter addresses work fine here. |
notionConnector / notionParentId | — | Optional Notion delivery. |
You can pass both videoUrls and videoIds; they're merged and deduplicated.
Limits
The budget is split evenly across videos. maxComments: 500 over 5 videos means roughly 100 from each, not 500 from the first one. If one video is the one you care about, run it on its own.
Replies aren't expanded thread by thread. Every row carries replyCount, so you always know how much conversation sits under a comment, and any reply-level rows YouTube returns inline are marked isReply: true. But the actor doesn't walk into each "view 963 replies" thread and pull them out. If your job depends on complete reply trees, this isn't it.
No video-level stats. Every row is about the comment. The video's title, view count and description aren't in the payload. Use a video scraper for those.
Comments come back in YouTube's own default order, which is roughly "top comments", not chronological.
If a video has comments disabled or unavailable, you get one NO_RESULTS diagnostic row naming the videoId and the run moves on to the next video. Diagnostic rows are never billed.
Billing
$0.0004 per comment, which is $0.40 per 1,000, plus a $0.001 run-start fee. Flat on every Apify plan.
Charged per comment actually delivered, and duplicates are dropped on comment ID before charging. A video with comments off costs you nothing beyond the start fee.
Delivery
Dataset export as JSON, CSV or Excel, or read it over the API. Setting notionConnector and notionParentId also writes one Notion page per comment after the run; leave them empty to skip.
Why people run it
Reading a launch video's comments without scrolling for an hour. YouTube's default order puts the upvoted comments first, which is usually where the complaints are as well as the praise.
Competitor research works the same way. Pull a few hundred comments off someone else's videos and the same two or three questions keep coming back at you, which tells you what your own page should answer.
The third is finding repeat commenters. Run a channel's videos through it, group by authorChannelId, and the accounts appearing on every single video are either the regulars or the bots.