YouTube Comments Scraper ๐ฌ Replies, Likes & Author Data
Pricing
from $0.40 / 1,000 comments
YouTube Comments Scraper ๐ฌ Replies, Likes & Author Data
Extract every comment and reply from any YouTube video: text, like counts, reply counts, timestamps, and author details including verified and creator badges. Sort by top or newest. Super fast, super accurate. No cookies, no login, no API key.
Pricing
from $0.40 / 1,000 comments
Rating
5.0
(1)
Developer
GatherWorks
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
YouTube Comments Scraper ๐ฌ Replies, Likes & Authors
Paste video links. Get back every comment and reply as clean rows โ text, real like counts, reply counts, threading and full author details.
No account, no API key, no setup. Paste links and run.
๐ What is the YouTube Comments Scraper?
Give it YouTube links โ watch URLs, youtu.be links, Shorts, or bare video IDs.
For each video it pulls the comment section and returns one row per comment, with
the video's own context stapled to every row so the dataset stands on its own:
- ๐ฌ the comment text, exactly as posted
- ๐ข likes and reply counts as numbers, not display text
- ๐งต replies as their own rows, each pointing at the comment it answers
- ๐ค the author, their channel, their avatar, and their badges
โก What can it do?
- ๐ข Return numbers you can sort.
4.7Marrives as4700000, so you can rank by likes without cleaning the column first. - ๐งต Rebuild threads without a second pass. Replies are rows with andisReply: true
parentCommentIdset, so a thread reassembles with a group-by. - โ Mark verified, creator, pinned and hearted on the rows they belong to.
- ๐ฆ Take a list of videos and return one dataset covering all of them.
- ๐ง Cap the spend up front.
maxCommentsis per video and maps one-to-one onto what you are charged. - ๐ Sort by top or newest. Newest asks YouTube for the recent end of the comment section, so it spans the whole video, not just the first page.
- ๐ Filter before you pay. Keep only the comments you want โ a like threshold, a keyword, verified authors โ and rows that do not match are never returned and never charged for.
- ๐ Export anywhere. JSON, CSV, Excel โ the dataset is yours.
๐ฏ Hearts and pins are per-comment, not per-video
isHearted is true on the comments the creator actually hearted and false on the
rest โ on a 98-comment sample, 5 came back true. isPinned behaves the same way.
If you have used a comment export that marked every row as hearted, that is the
difference you are looking at, and it is worth spot-checking against the video.
โก Speed and accuracy
Speed. Measured on a real run: 465 rows from 8 videos in 45 seconds, zero failures.
Accuracy. Checked on that same run: zero duplicates, zero missing comment text, and every reply correctly parented to the comment it answers. Like and reply counts are numbers, not display text. Videos with comments switched off are reported as such rather than returned as empty.
๐ What data does it return?
One row per comment, each carrying the video it came from:
| Field | Notes |
|---|---|
๐ฌ text | The comment itself |
๐ likeCount | Likes as a number โ 4.7M arrives as 4700000 |
๐ข replyCount | How many replies the comment has |
๐
publishedTimeText | Posted, as YouTube displays it |
๐ isPinned | Pinned to the top by the creator |
โค๏ธ isHearted | Hearted by the creator โ read from the field that actually carries it |
๐ค authorName, authorChannelId, authorAvatarUrl | Who wrote it |
โ
authorIsVerified, authorIsCreator | Verified badge, and whether it is the video's own channel |
๐งต isReply, parentCommentId | Reply threading, when replies are switched on |
๐ commentId | Stable per comment โ use it to de-duplicate across runs |
๐ท๏ธ videoTitle, channelName, channelId | Video context on every row |
๐ viewCount, publishedText | Video views and publish date |
โฑ๏ธ scrapedAt | When the row was captured |
๐ซ What it does not return
- Comments from members-only or private videos. They are not served publicly.
- Comments on videos with comments disabled. The video is reported and skipped.
- Dislikes. YouTube no longer publishes them, and a guess is not a number.
- Exact posting timestamps. YouTube serves relative text ("6 years ago"); it is passed through as it is given rather than converted into a date it cannot support.
๐ฐ How much does it cost?
You pay per event, for what the run actually produces โ never for runtime, and
never on a subscription. maxComments is per video and is the control that
matters: comments arrive 20 at a time, so it maps directly onto both requests and
cost.
Standard rate, at $0.0005 per comment:
| Run | Cost |
|---|---|
| ๐ฉ 500 comments from 1 video | ๐ต $0.25 |
| ๐จ 1,000 comments from 1 video | ๐ต $0.50 |
| ๐ง 1,000 comments + 500 replies | ๐ต $0.75 |
A video with comments turned off costs only the base video fee. A video that fails to load costs nothing. A month you do not run it costs nothing at all โ there is no plan to keep alive.
What you get for that
| Included here | |
|---|---|
| ๐ข Like and reply counts parsed to numbers | โ |
| ๐งต Replies parented to their comment | โ |
| โค๏ธ Creator hearts read from the field that carries them | โ |
| ๐ค Author channel, avatar and badges | โ free |
| ๐ท๏ธ Video context stapled to every row | โ free |
| ๐ณ Minimum spend | none |
| ๐ Monthly commitment | none |
The usual alternative is a monthly seat or export plan, priced on how many exports you are allowed rather than how many comments you actually took, and charged again next month whether you used it or not. Here you pay for rows.
๐ How do I use it?
- Paste your video URLs into
videoUrls. - Set
maxCommentsto the number you actually need per video. - Set
maxRepliesPerCommentabove0only if you want reply threads. - Run it. Rows land in the dataset as they arrive.
โ๏ธ Input
| Input | Type | Default | What it does |
|---|---|---|---|
๐ videoUrls | array | โ | Required. Watch URLs, youtu.be links, Shorts URLs or bare 11-character IDs |
๐ startUrls | array | โ | The same thing under the name other comment Actors use โ paste an existing input straight in |
๐ง maxComments | integer | 100 | Per video. Your main cost control. Also accepted as maxItems |
โ
includeReplies | boolean | false | Alias used by other Actors for switching replies on |
๐ sortBy | string | top | top or newest. Also accepted as sort or sortCommentsBy |
๐ filter | object | โ | Keep only matching comments. Unmatched rows are not returned and not charged |
๐ maxScanned | integer | 20ร limit | Only with a filter. How many comments to look at per video before stopping |
๐งต maxRepliesPerComment | integer | 0 | Set above 0 to collect reply threads |
๐ข concurrency | integer | 5 | Videos processed at once |
๐ language, country | string | en, US | Affects ordering and relative timestamps |
โ๏ธ proxyConfiguration | object | โ | Optional proxy settings |
{"videoUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw","https://youtu.be/dQw4w9WgXcQ"],"maxComments": 500,"maxRepliesPerComment": 5,"sortBy": "newest","filter": { "likeCount": { "gte": 100 }, "authorIsVerified": true }}
๐ Output example
A real row from a real run, not an illustration:
{"videoId": "jNQXAC9IVRw","videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw","videoTitle": "Me at the zoo","channelName": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","viewCount": 407909330,"publishedText": "Apr 23, 2005","commentId": "UgzuC3zzpRZkjc5Qzsd4AaABAg","text": "We're so honored that the first ever YouTube video was filmed here!","publishedTimeText": "6 years ago","likeCount": 4700000,"replyCount": 985,"isPinned": false,"isHearted": true,"authorName": "@SanDiegoZoo","authorChannelId": "UCC5NfQ6Mf0dq_eEwv4P_hWA","authorAvatarUrl": "https://yt3.ggpht.com/i8RqA9tYqbbnOi4mlnYEY7IR3kXAoDqQbM_5Sfzw7OjTubiGsOaTdlrIZmj-I0q0Vup68eqs=s88-c-k-c0x00ffffff-no-rj","authorIsVerified": true,"authorIsCreator": false,"isReply": false,"parentCommentId": null,"scrapedAt": "2026-08-29T06:22:33.271Z"}
Replies arrive as their own rows with isReply: true and parentCommentId set to
the comment they answer, so you can rebuild threads without a second pass.
โ Frequently asked questions
Do I need a Google account or API key? No. There is nothing to sign up for and no key to manage.
Can I get replies to replies? YouTube's comment section is two levels deep โ comments and their replies. There is no third level to fetch.
Why are some comments missing?
YouTube serves the comment section in its own order and does not guarantee every
comment is reachable. maxComments also caps the run. Both are reported, never
silently trimmed.
What can I filter on?
Any field in the table above. Conditions take an operator โ gte, lte, eq,
ne, contains, notContains, startsWith, endsWith, matches, in,
notIn, exists, before, after โ or a bare value for an exact match. Give
several and all must hold; use {"any": [...]} for or.
Am I charged for comments the filter removes? No. The filter runs before the row is returned, so you are only charged for comments you actually receive.
My filter returned fewer comments than I asked for.
A narrow filter can run out of comments to look at before it fills your limit.
The run reports how many it looked at and how many matched; raise maxScanned
to search further. Searching further takes longer but costs no more.
Can I run the same videos again later?
Yes. commentId is stable, so you can de-duplicate against a previous run and
keep only what is new.
๐ท๏ธ Pricing
Pay per event โ you are charged for output, not for platform time.
| Event | Price | Covers |
|---|---|---|
๐ฌ comment โ primary | ๐ต $0.0005 | One comment returned. The headline rate |
๐น video-processed | ๐ต $0.001 | One video handled, including videos with comments turned off |
๐งต reply โ add-on | ๐ต $0.0005 | One reply. Only charged when replies are switched on |
| ๐ท๏ธ Video title, channel and view count | โ free | On every row |
โถ๏ธ apify-actor-start | ๐ต $0.00005 | Starting one run, charged once per GB of memory |
| ๐ข Number parsing, threading, author badges | โ free | On every row |
| ๐ Filtering | โ free | Filtered-out comments are not charged for |
| ๐ Sorting | โ free | Top or newest |
Replies are the only optional event. Leave maxRepliesPerComment at 0 and you
are charged for comments and nothing else.
๐ Rates by tier
The prices above are the standard rate. Higher Apify plans are billed at the discounted tiers below, automatically:
| Event | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|
๐ฌ comment | ๐ต $0.000500 | ๐ต $0.000467 | ๐ต $0.000433 | ๐ต $0.000400 |
๐น video-processed | ๐ต $0.001000 | ๐ต $0.000933 | ๐ต $0.000867 | ๐ต $0.000800 |
๐งต reply | ๐ต $0.000500 | ๐ต $0.000467 | ๐ต $0.000433 | ๐ต $0.000400 |
โถ๏ธ apify-actor-start | ๐ต $0.000050 | ๐ต $0.000050 | ๐ต $0.000050 | ๐ต $0.000050 |
๐ You are never billed past your limit
The run watches its own charge limit and stops collecting when it reaches it, so
a large maxComments on a large video cannot quietly overshoot the budget you set
on the run.