To scrape YouTube comments in bulk from a video, use an Apify actor like Youtube Scraper Plus: paste the video URL, set a comment limit (or leave unlimited), and run the job to export every comment, reply, author, timestamp, and like count as JSON or CSV. This bypasses the YouTube Data API's 10,000 unit daily quota and its 100-comment-per-call ceiling, letting you pull 50,000+ comments from a single popular video in one run. The whole process takes under 5 minutes to set up and costs roughly $0.50–$2 per 10,000 comments.
Quick Answer
To scrape YouTube comments bulk from any video, run a no-code scraper like Youtube Scraper Plus on Apify with the video URL as input. You get nested replies, timestamps, author handles, like counts, and channel IDs in JSON, CSV, or Excel — no API key, no OAuth, no quota errors. For one video with 100K comments, expect a 15–25 minute run and ~$5 in compute. Output ships straight to S3, Google Sheets, or your webhook for downstream sentiment analysis or LLM fine-tuning.
Why can't I just use the YouTube Data API?
The official YouTube Data API v3 has three hard limits that kill bulk comment work:
- 10,000 quota units per day — each
commentThreads.listcall costs 1 unit but only returns up to 100 comments. That caps you at ~1M comments daily across your entire app, shared between all videos. - Reply depth is broken — the API returns top-level comments fine, but nested reply threads beyond the first 5 replies require additional
comments.listcalls per parent, eating quota fast. - OAuth required for some endpoints — and Google can revoke keys for "scraping-like" usage patterns without warning.
For a single 500K-comment video (think MrBeast or a Taylor Swift music video), the API path means days of polling, custom retry logic, and cursor management. A purpose-built scraper finishes in under an hour.
What's the fastest way to scrape YouTube comments in bulk?
The fastest path is a managed Apify actor. Here's the exact workflow with Youtube Scraper Plus:
Step 1: Get the actor Go to Youtube Scraper Plus and click "Try for free." You get $5 in Apify platform credit, enough for ~25,000 comments on the first run.
Step 2: Configure input
{
"startUrls": [
{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}
],
"maxComments": 50000,
"includeReplies": true,
"sortBy": "newest"
}
Key fields:
maxComments: set to0for unlimitedincludeReplies: pulls full reply threadssortBy:"top"or"newest"— YouTube only exposes these two
Step 3: Run and export Click Start. For a video with 50K comments, expect 8–12 minutes. Download as CSV, JSON, Excel, XML, or push to webhook, S3, Google Drive, or Zapier.
Step 4: Inspect output
Each row contains: commentId, text, authorName, authorChannelId, publishedAt, likeCount, replyCount, parentCommentId (for nested replies), and videoId.
How many comments can you scrape from one YouTube video?
In practice, all visible comments — YouTube renders them via infinite scroll, and a well-built scraper paginates through every one. Real benchmarks from Youtube Scraper Plus runs:
| Video size | Comments pulled | Runtime | Approx. cost |
|---|---|---|---|
| 10K comments | 10,000 | 3 min | $0.30 |
| 100K comments | 99,800+ | 22 min | $4.80 |
| 500K comments | 487,000+ | ~2 hrs | $22 |
| 1M+ comments | Capped by YouTube's own limits | varies | varies |
Note: YouTube itself stops loading after a certain point on extremely viral videos (the platform's own UI caps around ~1.2M visible comments even on Despacito-scale content). No scraper can pull what the platform doesn't render.
Can you scrape comments from multiple videos at once?
Yes — and this is where bulk YouTube comment scraping pays off. Three patterns:
Pattern 1: List of video URLs
Drop 50, 500, or 5,000 video URLs into the startUrls array. The actor processes them in parallel (default 5 concurrent browsers).
Pattern 2: Whole channel
Pass a channel URL like https://www.youtube.com/@channelname/videos. The actor first crawls every video on the channel, then extracts comments from each. Useful for competitor monitoring.
Pattern 3: Playlist or search results
Same idea with playlist URLs or YouTube search URLs. A search for "product review iphone 17" plus maxVideos: 100 gives you the comment corpus for the top 100 results.
For market research on a brand mention, this approach beats keyword tools — you get raw consumer language, not aggregated metrics.
What data fields can you extract from YouTube comments?
A full scrape returns 12+ fields per comment:
commentId— unique YouTube ID, useful for deduplication across re-runstext— comment body, including emojis (UTF-8)textHtml— with<a>tags preserved if you need link extractionauthorName— display nameauthorChannelId— for linking to commenter profilesauthorThumbnail— avatar URLauthorIsCreator— boolean, true if the video uploader repliedpublishedAt— ISO 8601 timestampupdatedAt— if comment was editedlikeCount— heart countreplyCount— number of nested repliesisPinned— top-pinned comment flagisHeartedByCreator— creator-hearted indicator
For sentiment analysis, text + likeCount is your minimum viable dataset. For social graph analysis, add authorChannelId to map repeat commenters across videos.
How do you use scraped YouTube comments for sentiment analysis?
A practical pipeline most teams run:
- Scrape — pull comments via Youtube Scraper Plus, export as JSON
- Clean — strip emojis (or keep them — they're surprisingly signal-rich), remove spam/bot comments (filter by suspicious
authorNamepatterns or duplicate text) - Classify — run through a model like
cardiffnlp/twitter-roberta-base-sentiment-latest(works fine on YouTube comments) or a cheap LLM call
Example Python snippet:
import json
from transformers import pipeline
with open('comments.json') as f:
comments = json.load(f)
clf = pipeline("sentiment-analysis")
results = [clf(c['text'][:512])[0] for c in comments]
positive = sum(1 for r in results if r['label'] == 'POSITIVE')
print(f"{positive}/{len(results)} positive ({positive/len(results)*100:.1f}%)")
For 10,000 comments on a CPU, this runs in ~6 minutes. On GPU, under 30 seconds.
For AI training datasets, the text field gives you natural, in-the-wild language — Q&A pairs, reactions, slang. Filter to comments with likeCount > 5 to get higher-quality signal.
Is it legal to scrape YouTube comments?
YouTube comments are public data displayed without login required. Court precedent — most notably hiQ Labs v. LinkedIn (9th Circuit, 2022) — holds that scraping publicly accessible data does not violate the Computer Fraud and Abuse Act.
That said, YouTube's Terms of Service prohibit automated access outside the API. Practical guidance:
- For internal research, sentiment analysis, or AI training: low risk, widely practiced
- For republishing comments verbatim: copyright applies to individual comments; aggregate stats are fine
- For personal data (commenter names): comply with GDPR/CCPA if you store identifiable info on EU/CA residents — usually means offering deletion on request
Consult a lawyer for production use cases. This is not legal advice.
What does it cost to scrape YouTube comments bulk?
Pricing for Youtube Scraper Plus on Apify is pay-per-use compute, not per-comment fees. Rough math:
- Light use: 10K comments across 5 videos → ~$0.50
- Medium use: 250K comments across a channel → ~$8
- Heavy use: 5M comments across a 1,000-video competitor sweep → ~$120
Compare to building it yourself: a developer at $100/hr spends 2–3 weeks engineering a reliable scraper, handling YouTube DOM changes, proxies, and retries. That's $8,000–$12,000 before you've extracted a single comment, plus ongoing maintenance every time YouTube ships a frontend update.
FAQ
Q: Can I scrape YouTube comments without an API key? Yes. Youtube Scraper Plus extracts comments directly from YouTube's rendered pages, no Google API key, no OAuth, no quota. You only need an Apify account, which has a free tier.
Q: How do I scrape replies to comments, not just top-level ones?
Set includeReplies: true in the input. The actor walks every reply thread and returns each reply as its own row with a parentCommentId field pointing back to the original comment, so you can rebuild the thread structure.
Q: Can I get historical comments from old YouTube videos?
Yes — YouTube preserves all comments unless the uploader or commenter deletes them. A 10-year-old video with 500K comments will return all 500K, sorted by newest or top. There's no time-range filter on YouTube's side, so you scrape everything and filter by publishedAt afterward.
Q: How do I avoid getting blocked while scraping? Youtube Scraper Plus handles proxy rotation, headless browser fingerprinting, and rate limiting automatically. For very large jobs (1M+ comments), spread runs across multiple sessions rather than one mega-run, and you'll never hit a block.
Q: Can I export comments directly to Google Sheets or a database? Yes. Apify integrates natively with Google Sheets, Airtable, Zapier, Make, and webhooks. For databases, use the dataset API endpoint to pull JSON into Postgres, BigQuery, or MongoDB with a 5-line script. Most teams set up a webhook to push new comments to their pipeline as the actor runs.