Youtube Comments Scraper avatar

Youtube Comments Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Youtube Comments Scraper

Youtube Comments Scraper

YouTube Comments Scraper extracts comments from any public YouTube video or channel. Gather usernames, timestamps, likes, replies, and full comment text. Ideal for sentiment analysis, audience research, or content insights. Export clean structured data in JSON, CSV, or Excel.

Pricing

$19.99/month + usage

Rating

5.0

(5)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

1

Bookmarked

293

Total users

1

Monthly active users

5 days ago

Last modified

Share

YouTube Comments Scraper with Replies — AI Sentiment, Channel-Wide (No API Key)

Scrape YouTube comments and replies at scale from any public video or entire channel — no YouTube Data API key, no quota limits. This YouTube comment scraper exports clean, structured data (JSON, CSV, Excel) with full reply threads, absolute timestamps, author channel links, engagement metrics, and optional AI sentiment analysis powered by Claude, ChatGPT, Gemini, Grok, DeepSeek, Perplexity, or Mistral.

Built for YouTube sentiment analysis, audience research, brand monitoring, competitor analysis, and social listening.

🔑 SEO keywords

youtube comments scraper · youtube comment scraper · youtube reply scraper · scrape youtube comments without api · youtube data extraction · youtube sentiment analysis · youtube comment export csv · youtube channel comments scraper · bulk youtube comments · youtube api alternative · social media scraping · youtube audience research · ai comment analysis · youtube comments and replies


🚀 Why use this scraper?

  • No YouTube API key & no quota — scrape unlimited comments, bypassing the Data API's 10k/day limit.
  • Comments AND replies — full reply threads are collected (each reply linked to its parent), with a toggle and a per-comment cap.
  • Replies delivered separately — replies are clearly labeled (type: "reply", isReply: true) and mirrored into their own dataset table.
  • Channel-wide scraping — paste a channel URL and scrape comments across its latest videos.
  • Absolute dates — real ISO-8601 publishedAt timestamps (not just "2 years ago") plus scrapedAt.
  • Author identityauthorChannelId + authorChannelUrl to link straight to each commenter, plus commentUrl deep links.
  • Powerful filters — keyword include/exclude, minimum likes, and an oldest-date filter (absolute date or relative period).
  • AI enrichment (optional) — sentiment, emotion, language detection, topic tags, and toxicity scoring via 7 providers / 31 models.
  • Smart anti-blocking — automatic proxy fallback: no proxy → datacenter → residential.
  • Export anywhere — JSON, CSV, Excel, or via the Apify API/webhooks.

🧵 How comments & replies are counted

maxComments counts top-level comments only. Replies are additional and controlled by maxRepliesPerComment.

Example: maxComments = 10 + maxRepliesPerComment = 3 → up to 10 comments and up to 30 replies (≈40 rows).

Replies are fetched right after their parent comment (interleaved), so in the main table each comment is immediately followed by its replies.

✨ Features at a glance

CapabilityDetails
InputVideo URLs, 11-char video IDs, or channel URLs
SortTop (most liked) or Newest
RepliesCollected in full · toggle on/off · cap per comment · separate table
FiltersKeywords, exclude keywords, min likes, oldest date (absolute/relative)
AI providersClaude · ChatGPT · Gemini · Grok · DeepSeek · Perplexity · Mistral (pick the model — provider auto-detected)
ProxyOptional Apify proxy with automatic datacenter → residential fallback
OutputJSON / CSV / Excel; main dataset + a per-run replies dataset

📥 Input example

{
"startUrls": [
"https://www.youtube.com/watch?v=KrLj6nc516A",
"https://www.youtube.com/@MrBeast"
],
"maxComments": 10,
"sortOrder": "top",
"includeReplies": true,
"maxRepliesPerComment": 3,
"keywords": ["car", "money"],
"excludeKeywords": [],
"minLikes": 5,
"oldestCommentDate": "6 months",
"maxVideosPerChannel": 5,
"aiEnhancement": false,
"aiModel": "claude-haiku-4-5",
"proxyConfiguration": { "useApifyProxy": false }
}

Input fields

FieldTypeDescription
startUrls (required)arrayVideo URLs / IDs or channel URLs (@handle, /channel, /c, /user)
maxCommentsintegerMax top-level comments per video (0 = all); replies are additional
sortOrderstringtop or newest
includeRepliesbooleanCollect reply comments (default true)
maxRepliesPerCommentintegerCap replies per comment (0 = all)
keywords / excludeKeywordsarrayCase-insensitive keyword filters
minLikesintegerMinimum likes to keep a comment
oldestCommentDatestringDate picker: absolute date (2026-01-15) or relative (7 days, 3 months)
maxVideosPerChannelintegerVideos to scrape per channel URL
aiEnhancementbooleanTurn on AI sentiment/emotion/topic/toxicity
aiModelstringclaude-* / gpt-* / gemini-* / grok-* / deepseek-* / sonar* / mistral-* (provider auto-detected)
aiApiKeystring (secret)Key for the chosen AI provider
proxyConfigurationobjectProxy settings (collapsible advanced section)

📤 Output

Every comment and reply is one row. Replies are marked with type: "reply" and isReply: true.

{
"cid": "Ugzxs4_5UJwAI1xrNF14AaABAg.9uj377Q6pSj9uj3Bb6-u_Y",
"type": "reply",
"isReply": true,
"publishedTimeText": "2 years ago",
"publishedAt": "2024-07-01T15:42:25Z",
"comment": "This is a reply to the pinned comment",
"author": "@_Kevin_1",
"authorChannelId": "UCyc0emnCfdnTEGr0A5sK2yA",
"authorChannelUrl": "https://www.youtube.com/channel/UCyc0emnCfdnTEGr0A5sK2yA",
"avatar": "https://yt3.ggpht.com/...",
"authorIsChannelOwner": false,
"isVerified": false,
"voteCount": 2000,
"hasCreatorHeart": true,
"replyCount": 0,
"replyToCid": "Ugzxs4_5UJwAI1xrNF14AaABAg",
"commentUrl": "https://www.youtube.com/watch?v=KrLj6nc516A&lc=Ugzxs4_5UJwAI1xrNF14AaABAg.9uj377Q6pSj9uj3Bb6-u_Y",
"videoId": "KrLj6nc516A",
"pageUrl": "https://www.youtube.com/watch?v=KrLj6nc516A",
"title": "$1 vs $100,000,000 Car!",
"commentsCount": 160000,
"scrapedAt": "2026-07-01T15:42:25Z",
"sentiment": "positive",
"emotion": "joy",
"language": "en",
"topics": ["cars", "giveaway"],
"toxicityScore": 0.01
}

(AI fields — sentiment, emotion, language, topics, toxicityScore — appear only when aiEnhancement is enabled.)

Output fields

cid, type (comment/reply), isReply, publishedTimeText, publishedAt, comment, author, authorChannelId, authorChannelUrl, avatar, authorIsChannelOwner, isVerified, voteCount, hasCreatorHeart, replyCount, replyToCid, commentUrl, videoId, pageUrl, title, commentsCount, scrapedAt, and AI: sentiment, emotion, language, topics, toxicityScore.

🔎 Where to find replies

  1. Main dataset (Output tab) — filter/sort by type = reply or isReply = true; replies also appear right under their parent comment.
  2. Separate replies table — each run also writes a dataset named replies-<runId> containing only replies with the exact same fields. Open it in Storage → Datasets → replies-<runId>.
  3. Live log — you'll see lines like ↩️ +3 replies under <cid>… | replies so far: N and a final ✅ Completed: X rows = N comments + M replies.

🤖 AI enrichment (7 providers)

  1. Set aiEnhancement: true.
  2. Choose aiModel — the provider is auto-detected:
PrefixProviderKey env fallback
claude-*Anthropic (Claude)ANTHROPIC_API_KEY
gpt-*, o1, o3-*OpenAI (ChatGPT)OPENAI_API_KEY
gemini-*Google (Gemini)GEMINI_API_KEY / GOOGLE_API_KEY
grok-*xAI (Grok)XAI_API_KEY / GROK_API_KEY
deepseek-*DeepSeekDEEPSEEK_API_KEY
sonar*PerplexityPERPLEXITY_API_KEY / PPLX_API_KEY
mistral-*MistralMISTRAL_API_KEY
  1. Provide aiApiKey (or the matching env var). AI calls are billed by that provider, separate from Apify. If enabled without a key, the actor logs a warning and continues without AI.

🎯 Best use cases

  • YouTube sentiment analysis — how audiences feel about a video, product, or brand.
  • Market & product research — mine feedback and feature requests from comments and replies.
  • Competitor & influencer analysis — benchmark engagement and audience reactions.
  • Brand & social listening — track mentions and conversations over time.
  • Academic research — build datasets of public discussion including reply threads.

⚙️ How to run

  1. Add video/channel URLs to startUrls.
  2. Set maxComments, sortOrder, filters, replies, and (optionally) AI.
  3. Click Start, watch the live log, and export results as JSON, CSV, or Excel.

⚠️ Compliance & cautions

  • Collects data only from publicly available YouTube pages.
  • You are responsible for complying with YouTube's Terms of Service and applicable privacy/data-protection laws.
  • AI enrichment sends comment text to your chosen AI provider.