YouTube Comments Scraper ๐Ÿ’ฌ Replies, Likes & Author Data avatar

YouTube Comments Scraper ๐Ÿ’ฌ Replies, Likes & Author Data

Pricing

from $0.40 / 1,000 comments

Go to Apify Store
YouTube Comments Scraper ๐Ÿ’ฌ Replies, Likes & Author Data

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

GatherWorks

Maintained by Community

Actor 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.7M arrives as 4700000, so you can rank by likes without cleaning the column first.
  • ๐Ÿงต Rebuild threads without a second pass. Replies are rows with
    isReply: true
    and parentCommentId set, 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. maxComments is 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:

FieldNotes
๐Ÿ’ฌ textThe comment itself
๐Ÿ‘ likeCountLikes as a number โ€” 4.7M arrives as 4700000
๐Ÿ”ข replyCountHow many replies the comment has
๐Ÿ“… publishedTimeTextPosted, as YouTube displays it
๐Ÿ“Œ isPinnedPinned to the top by the creator
โค๏ธ isHeartedHearted by the creator โ€” read from the field that actually carries it
๐Ÿ‘ค authorName, authorChannelId, authorAvatarUrlWho wrote it
โœ… authorIsVerified, authorIsCreatorVerified badge, and whether it is the video's own channel
๐Ÿงต isReply, parentCommentIdReply threading, when replies are switched on
๐Ÿ†” commentIdStable per comment โ€” use it to de-duplicate across runs
๐Ÿท๏ธ videoTitle, channelName, channelIdVideo context on every row
๐Ÿ“Š viewCount, publishedTextVideo views and publish date
โฑ๏ธ scrapedAtWhen 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:

RunCost
๐ŸŸฉ 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 spendnone
๐Ÿ“… Monthly commitmentnone

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?

  1. Paste your video URLs into videoUrls.
  2. Set maxComments to the number you actually need per video.
  3. Set maxRepliesPerComment above 0 only if you want reply threads.
  4. Run it. Rows land in the dataset as they arrive.

โš™๏ธ Input

InputTypeDefaultWhat it does
๐Ÿ” videoUrlsarrayโ€”Required. Watch URLs, youtu.be links, Shorts URLs or bare 11-character IDs
๐Ÿ”— startUrlsarrayโ€”The same thing under the name other comment Actors use โ€” paste an existing input straight in
๐Ÿšง maxCommentsinteger100Per video. Your main cost control. Also accepted as maxItems
โœ… includeRepliesbooleanfalseAlias used by other Actors for switching replies on
๐Ÿ”€ sortBystringtoptop or newest. Also accepted as sort or sortCommentsBy
๐Ÿ”Ž filterobjectโ€”Keep only matching comments. Unmatched rows are not returned and not charged
๐Ÿ” maxScannedinteger20ร— limitOnly with a filter. How many comments to look at per video before stopping
๐Ÿงต maxRepliesPerCommentinteger0Set above 0 to collect reply threads
๐Ÿ”ข concurrencyinteger5Videos processed at once
๐ŸŒ language, countrystringen, USAffects ordering and relative timestamps
โš™๏ธ proxyConfigurationobjectโ€”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.

EventPriceCovers
๐Ÿ’ฌ comment โ€” primary๐Ÿ’ต $0.0005One comment returned. The headline rate
๐Ÿ“น video-processed๐Ÿ’ต $0.001One video handled, including videos with comments turned off
๐Ÿงต reply โ€” add-on๐Ÿ’ต $0.0005One reply. Only charged when replies are switched on
๐Ÿท๏ธ Video title, channel and view countโœ… freeOn every row
โ–ถ๏ธ apify-actor-start๐Ÿ’ต $0.00005Starting one run, charged once per GB of memory
๐Ÿ”ข Number parsing, threading, author badgesโœ… freeOn every row
๐Ÿ”Ž Filteringโœ… freeFiltered-out comments are not charged for
๐Ÿ”€ Sortingโœ… freeTop 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:

EventFREEBRONZESILVERGOLD
๐Ÿ’ฌ 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.