Youtube Comments Scraper
Pricing
$19.99/month + usage
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
Maintained by CommunityActor 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
publishedAttimestamps (not just "2 years ago") plusscrapedAt. - Author identity —
authorChannelId+authorChannelUrlto link straight to each commenter, pluscommentUrldeep 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
| Capability | Details |
|---|---|
| Input | Video URLs, 11-char video IDs, or channel URLs |
| Sort | Top (most liked) or Newest |
| Replies | Collected in full · toggle on/off · cap per comment · separate table |
| Filters | Keywords, exclude keywords, min likes, oldest date (absolute/relative) |
| AI providers | Claude · ChatGPT · Gemini · Grok · DeepSeek · Perplexity · Mistral (pick the model — provider auto-detected) |
| Proxy | Optional Apify proxy with automatic datacenter → residential fallback |
| Output | JSON / 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
| Field | Type | Description |
|---|---|---|
startUrls (required) | array | Video URLs / IDs or channel URLs (@handle, /channel, /c, /user) |
maxComments | integer | Max top-level comments per video (0 = all); replies are additional |
sortOrder | string | top or newest |
includeReplies | boolean | Collect reply comments (default true) |
maxRepliesPerComment | integer | Cap replies per comment (0 = all) |
keywords / excludeKeywords | array | Case-insensitive keyword filters |
minLikes | integer | Minimum likes to keep a comment |
oldestCommentDate | string | Date picker: absolute date (2026-01-15) or relative (7 days, 3 months) |
maxVideosPerChannel | integer | Videos to scrape per channel URL |
aiEnhancement | boolean | Turn on AI sentiment/emotion/topic/toxicity |
aiModel | string | claude-* / gpt-* / gemini-* / grok-* / deepseek-* / sonar* / mistral-* (provider auto-detected) |
aiApiKey | string (secret) | Key for the chosen AI provider |
proxyConfiguration | object | Proxy 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
- Main dataset (Output tab) — filter/sort by
type = replyorisReply = true; replies also appear right under their parent comment. - 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>. - Live log — you'll see lines like
↩️ +3 replies under <cid>… | replies so far: Nand a final✅ Completed: X rows = N comments + M replies.
🤖 AI enrichment (7 providers)
- Set
aiEnhancement: true. - Choose
aiModel— the provider is auto-detected:
| Prefix | Provider | Key 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-* | DeepSeek | DEEPSEEK_API_KEY |
sonar* | Perplexity | PERPLEXITY_API_KEY / PPLX_API_KEY |
mistral-* | Mistral | MISTRAL_API_KEY |
- 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
- Add video/channel URLs to
startUrls. - Set
maxComments,sortOrder, filters, replies, and (optionally) AI. - 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.