YouTube Comments Scraper — Replies, Likes & Authors avatar

YouTube Comments Scraper — Replies, Likes & Authors

Pricing

from $0.69 / 1,000 comment scrapeds

Go to Apify Store
YouTube Comments Scraper — Replies, Likes & Authors

YouTube Comments Scraper — Replies, Likes & Authors

Scrape YouTube video comments without login: text, author, likes, reply count, pinned/hearted flags, and optional reply threads. Sort by Top or Newest. Export JSON via API, Python, Node.js, or MCP.

Pricing

from $0.69 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Unofficial tool for publicly accessible YouTube comment data. YouTube and related trademarks belong to their respective owners. Not affiliated with, sponsored by, or endorsed by YouTube or Google. Provided for informational use only; users must comply with applicable terms and laws.

Social listeningProduct launches
YouTube Comments Scraper ◄── you are hereProduct Hunt Scraper
Bluesky ScraperLaunches, reviews, comments, leaderboards

YouTube Comments Scraper for Apify — scrape YouTube comments from public videos and Shorts into structured JSON: comment text, author handle and channel, like count, reply count, pinned / hearted flags, and optional reply threads. No YouTube login, no Data API quota. A practical YouTube comments API alternative for brand listening, sentiment, and moderation pipelines — run from Python, Node.js, cURL, or MCP / AI assistants and export the dataset as JSON / CSV / Excel.

When to use

  • Brand or product listening on a launch trailer, review video, or ad
  • Sentiment / NLP datasets from high-engagement comment sections
  • Export pinned creator statements and top fan threads with engagement metrics
  • Batch several video URLs in one run until a shared maxComments cap
  • Feed comments into CRM, Slack alerts, or agent workflows via Apify MCP

When not to use

  • Private, age-gated, or members-only videos (public Innertube only)
  • Videos with comments disabled — the Actor fails with a clear status message
  • Full channel crawls, search, transcripts, or video download — this Actor is comments-only

Key features

  • Comments-first slice — purpose-built YouTube comment scraper, not a bloated “everything” YouTube tool
  • Innertube continuations — same /youtubei/v1/next feed the website uses when you scroll
  • No login / no API key — Chrome-impersonated TLS via curl_cffi
  • Top or Newest — switches sort when YouTube exposes the comments sort menu
  • Optional replies — each reply is a flat dataset row with parentCommentId
  • Engagement fields — likes, reply counts, isPinned, isHearted, verified / creator badges
  • Shorts + youtu.be — watch URLs, Shorts, embeds, live paths, and bare 11-char video IDs
  • Proxy-ready — Apify RESIDENTIAL when datacenter IPs hit a consent wall

Input

ParameterDescription
videoUrlsWatch / Shorts / youtu.be URLs or 11-char video IDs
maxCommentsDataset cap for the whole run (top-level + replies). 0 = unlimited (hard cap applies)
sortOrdertop (default) or newest
includeRepliesFetch reply threads under each top-level comment
maxRepliesPerCommentCap per thread when replies are on (default 10 if replies enabled and this is 0)
hl / glYouTube language and country (default en / US)
requestDelaySecsThrottle between Innertube calls
proxyConfigurationOptional Apify proxy (RESIDENTIAL recommended if blocked)

Top comments only:

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"maxComments": 200,
"sortOrder": "top",
"includeReplies": false
}

With replies (flat rows):

{
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://www.youtube.com/shorts/dQw4w9WgXcQ"
],
"maxComments": 500,
"sortOrder": "newest",
"includeReplies": true,
"maxRepliesPerComment": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Output

One dataset row per comment or reply — ready for CSV export and PPE billing per result.

FieldDescription
typeAlways comment
commentId / commentUrlStable ID and deep link (watch?v=…&lc=…)
videoId / videoUrlSource video
textComment body
publishedTimeTextRelative time from YouTube (e.g. 1 year ago)
likeCount / replyCountParsed integers (+ raw *Text fields)
authorDisplayName / authorChannelId / authorChannelUrlAuthor identity
authorAvatarUrlAuthor avatar thumbnail
authorIsVerified / authorIsCreator / authorIsArtistBadges
isReply / replyLevel / parentCommentIdThread position
isPinned / isHeartedPinned comment / creator heart when exposed
sortOrder / scrapedAtRun metadata
{
"type": "comment",
"commentId": "Ugzge340dBgB75hWBm54AaABAg",
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"text": "can confirm: he never gave us up",
"publishedTimeText": "1 year ago",
"likeCount": 300000,
"replyCount": 963,
"authorDisplayName": "@YouTube",
"authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ",
"authorChannelUrl": "https://www.youtube.com/@YouTube",
"authorIsVerified": true,
"isReply": false,
"replyLevel": 0,
"parentCommentId": null,
"isPinned": true,
"isHearted": true,
"commentUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg",
"sortOrder": "top",
"scrapedAt": "2026-08-13T18:13:00Z"
}

Use cases

  • Capture launch-video feedback for a product, game, or campaign drop
  • Build moderation / spam samples from high-traffic uploads
  • Compare Top vs Newest comment themes on the same video
  • Enrich influencer or competitor research with audience language
  • Pipe YouTube comments into an NLP or agent workflow via Apify dataset API / MCP

Integration examples

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('crawloop/youtube-comments-scraper').call({
videoUrls: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],
maxComments: 100,
sortOrder: 'top',
includeReplies: true,
maxRepliesPerComment: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.slice(0, 3));

Python

from apify_client import ApifyClient
client = ApifyClient()
run = client.actor("crawloop/youtube-comments-scraper").call(
run_input={
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"maxComments": 100,
"sortOrder": "top",
"includeReplies": True,
"maxRepliesPerComment": 5,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items[:3])

cURL

curl -X POST "https://api.apify.com/v2/acts/crawloop~youtube-comments-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"videoUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxComments":100,"sortOrder":"top","includeReplies":true}'

MCP and AI assistants

Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store ID / name (crawloop/youtube-comments-scraper).

Example prompts:

  • "Run YouTube Comments Scraper for https://www.youtube.com/watch?v=dQw4w9WgXcQ and return the top 50 comments as JSON"
  • "Scrape newest YouTube comments with replies for this video list and summarize the top complaints"
  • "Chain YouTube Comments Scraper then Bluesky Scraper to compare reaction themes across platforms"

Suite next step

After exporting comments, run Bluesky Scraper for cross-platform listening on the same brand keywords, or Product Hunt Scraper when the video is tied to a launch day.

FAQ

How do I scrape YouTube comments without the official API?
This Actor reads the public Innertube comment continuation feed used by the website. No Data API key or OAuth.

Do I need a YouTube login or cookies?
No for public videos. Enable Apify RESIDENTIAL proxy if you see consent walls or empty sections from datacenter IPs.

Are replies included by default?
No. Set includeReplies: true and optionally maxRepliesPerComment. Each reply is a separate dataset row with parentCommentId.

Can I scrape YouTube Shorts comments?
Yes. Shorts URLs and bare video IDs work the same as watch URLs.

Why is Newest sort still Top?
Some comment headers omit the sort menu for logged-out sessions. The Actor logs a warning and keeps the default Top feed.

What if comments are disabled?
The run fails with a clear status message for that video; no empty “success” dataset.

ActorUse after / beside
Bluesky ScraperCross-platform social listening
Product Hunt ScraperLaunch-day comments and reviews
Trustpilot ScraperReview / reputation parallel to video comments