YouTube Comments Scraper — Comments & Replies avatar

YouTube Comments Scraper — Comments & Replies

Pricing

from $0.30 / 1,000 results

Go to Apify Store
YouTube Comments Scraper — Comments & Replies

YouTube Comments Scraper — Comments & Replies

Comments Scraper extracts comments, replies, likes and author details from any YouTube video URL or ID — no YouTube Data API key or quota needed.

Pricing

from $0.30 / 1,000 results

Rating

0.0

(0)

Developer

Murat Uzun

Murat Uzun

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What is YouTube Comments Scraper?

YouTube Comments Scraper extracts comments, replies, likes, and author details from any public YouTube video — no YouTube Data API key, no daily quota, and no browser required. Paste a video URL or ID and get one structured row per comment: text, author, like count, reply count, pinned/hearted flags, and an approximate publish date. Point it at any YouTube video and run it on Apify with scheduling, API access, and webhook integrations built in.

Under the hood it talks directly to YouTube's own youtubei/v1/next endpoint — the same JSON API the youtube.com website itself uses to load comments — so there's nothing to authenticate and no per-request cost from Google.

Why use YouTube Comments Scraper?

  • Sentiment and brand monitoring — pull every comment on a product review or ad campaign video to gauge audience reaction without opening YouTube.
  • Creator research — see what an audience actually says about a channel's videos before a sponsorship or collab deal.
  • Lead generation — commenters who ask questions about a product or service under a competitor's video are warm leads; export their channel names and profile links.
  • Community management at scale — export pinned/hearted comments and top replies for a weekly highlights digest.

How to use YouTube Comments Scraper

  1. Click Try for free (or Run if you already have it open).
  2. In Videos, paste one or more YouTube URLs or bare video IDs.
  3. Set Max comments per video, choose whether to include replies, and pick a sort order (Top or Newest).
  4. Click Start and watch rows appear in the Dataset tab as they're scraped.
  5. Export the results as JSON, CSV, Excel, or HTML, or pull them via the API.

Input

FieldTypeDescription
videosarrayVideo IDs or URLs (watch, shorts, youtu.be). Default: ["dQw4w9WgXcQ"].
proxyConfigurationobjectApify Proxy settings — required for platform runs, see Proxy requirement below. Default: Residential proxy.
maxCommentsPerVideointegerCap per video, 1–10,000. Default 100.
includeRepliesbooleanAlso fetch replies (counts toward the cap). Default false.
sortByenumtop or newest. Default top.
maxConcurrencyintegerVideos scraped in parallel, 1–10. Default 3.
languagestringUI language code for relative-time text. Default en.

See the Input tab for the full schema with examples.

Example input

{
"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "jNQXAC9IVRw"],
"maxCommentsPerVideo": 100,
"includeReplies": false,
"sortBy": "top"
}

Proxy requirement

YouTube's youtubei/v1/next comments endpoint can return HTTP 403 to requests coming from Apify's own datacenter IP ranges — this comes and goes (it was blocking every request for hours, then cleared up on its own during testing), so Apify Proxy is required for reliable platform runs even though a given run might succeed without it. Leave the Proxy configuration input on its default (Residential proxy) and the Actor routes every request through a fresh proxy session automatically; it falls back to a direct request only when no proxy is configured (e.g. running locally with apify run and no Apify login) or a proxy request itself fails to connect.

Both Residential and Automatic (datacenter) proxy groups were verified working against this endpoint. Residential is the default because it's the most consistently unblockable; Automatic worked in testing at effectively no extra proxy cost, so switch to it (uncheck "Residential proxy" in the proxy editor, or set apifyProxyGroups: []) if you want to shave cost and are comfortable re-checking it if YouTube starts blocking datacenter ranges again.

Output

One row per comment (or per reply, when includeReplies is on):

{
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoTitle": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"commentId": "Ugzge340dBgB75hWBm54AaABAg",
"parentCommentId": null,
"isReply": false,
"text": "can confirm: he never gave us up",
"author": "@YouTube",
"authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ",
"authorIsVerified": true,
"likeCount": 314000,
"replyCount": 963,
"publishedTimeText": "1 year ago",
"publishedAtApprox": "2025-09-12T00:00:00.000Z",
"isPinned": true,
"isHearted": true,
"scrapedAt": "2026-09-12T00:00:00.000Z",
"error": null
}

You can download the dataset in various formats such as JSON, CSV, Excel, or HTML.

Data table

FieldDescription
videoId, videoUrl, videoTitleThe video the comment belongs to
channelName, channelIdThe video's uploading channel
commentId, parentCommentId, isReplyComment identity and threading
text, author, authorChannelId, authorUrl, authorAvatarComment content and author
authorIsVerified, authorIsCreatorAuthor badges
likeCount, replyCountEngagement counts
publishedTimeText, publishedAtApproxWhen it was posted (exact text + approximate ISO date)
isPinned, isHeartedCreator moderation signals
errorSet instead of comment data when a video failed

Pricing

This Actor uses Pay-per-event pricing: $0.0005 per comment row. Scraping 100 comments from 10 videos (1,000 rows) costs about $0.50. There is no separate compute-unit charge on top — the price already covers it.

Apify Proxy adds a small infrastructure cost on top of that, paid from your Apify plan's proxy allowance rather than charged to the caller: measured on a 100-comment run through Residential proxy, proxy data transfer cost ~$0.0125 per 1,000 comment rows (about 2.5% of the $0.50/1,000 price) — well inside the free plan's 20 GB/month Residential allowance for normal-sized runs. The Automatic (datacenter) proxy group also works and measured at effectively $0 in proxy transfer cost during testing.

YouTube Comments Scraper vs. the YouTube Data API

The official YouTube Data API v3 commentThreads.list endpoint requires a Google Cloud project, an API key, and burns your daily quota (10,000 units — a few thousand comment reads) fast. This Actor reads the same public data YouTube's own website loads, with no key, no quota, and results delivered as a ready-to-export dataset instead of raw API pages you have to paginate yourself.

Using YouTube Comments Scraper with AI agents / MCP

This Actor is published with Pay-per-event pricing and limited permissions, so it is directly callable through the Apify MCP Server and AI agent frameworks that support Apify tools — an agent can ask "get the top 50 comments on this YouTube video" and receive structured JSON back without any custom scraping code.

FAQ

Is this legal? The Actor reads publicly visible comments the same way a browser loading youtube.com does. Respect YouTube's Terms of Service and applicable data-protection law for how you store and use the results.

Why is publishedAtApprox approximate? YouTube never sends an exact comment timestamp to the client — only relative text like "2 years ago". The date is computed by subtracting that duration from the scrape time, so treat it as a good estimate, not an exact value.

Will large batches get rate-limited? The Actor routes requests through Apify Proxy by default (see Proxy requirement above) — each parallel request gets its own proxy session. For very large batches, keep maxConcurrency at 2–3; on an HTTP 429 the Actor waits 5 seconds and retries once before giving up on that page.

What about private, deleted, or age-restricted videos? These return an error row instead of comments — nothing to configure, just check the error field.

Can I use this in n8n, Make, or Zapier? Yes — call the Actor via its Apify API endpoint from any of these tools' native Apify integration or a generic HTTP node, or trigger it from a webhook.

Part of the webdatatools web-intelligence suite — every Actor is pay-per-event, reads public data without a login, and returns one clean row per entity:

Browse the whole suite at webdatatools, or call ten of these Actors straight from Claude, Cursor or Cline with the webdatatools MCP server.

Website & domain intelligence

Content for AI, LLMs and RAG

Search, video and social

Leads, jobs and company data

Developer, app and research data

Support

Found a bug or have a feature request? Open an issue on the Actor's Issues tab in Apify Console. Custom scraping solutions are also available on request.