YouTube comment scrapers: 5 ways to export comments
Comments are the most honest feedback on YouTube. People export them for product research, community management, sentiment tracking and training classifiers. Here are five ways to do it, with the real limits.
1. The YouTube Data API: commentThreads.list
The official route. commentThreads.list costs 1 unit, returns up to 100 threads per page (default 20), and can sort by time or relevance. Set textFormat=plainText to skip HTML. Google
Quota math: 100,000 top-level comments is 1,000 calls, or 10% of a day's quota. Replies come through a separate comments.list call, also 1 unit. quota table
GET https://www.googleapis.com/youtube/v3/commentThreads
?part=snippet,replies
&videoId=VIDEO_ID
&maxResults=100
&order=relevance
&textFormat=plainText
&key=YOUR_GOOGLE_KEY
Good: free and official. Limits: per-video calls, quota, and the 30-day storage rule in Google's developer policies. source
2. yt-dlp
yt-dlp can write comments into its JSON info file without downloading the video:
yt-dlp --skip-download --write-comments \
--extractor-args "youtube:max_comments=500,all,50;comment_sort=top" \
-o "%(id)s" "https://www.youtube.com/watch?v=VIDEO_ID"
The max_comments argument takes limits for total comments, parents, replies, replies per thread and depth; comment_sort is top or new. source Good: free, includes replies. Limits: slow on big videos and you maintain it.
3. Bright Data
Its YouTube comments scraper returns comment ID, text, likes, replies, username, channel and date, billed at $1.50 per 1,000 records pay as you go, with 5,000 free records a month. source Good: large batches to cloud storage. Limits: per-record billing adds up on viral videos.
4. A per-call API
Per-call APIs return a page of comments per request, with a cursor for the next page and a separate call for replies. They work from servers and AI agents without managing quota.
5. Manual copy
For a single video with a few dozen comments, copying by hand is fine. Past that, it is slow and error-prone.
How many calls you need
Whatever the tool, the call count is roughly ceil(top_level_comments / page_size), plus one or more calls per thread you expand for replies. With the official API's page size of 100:
| Video | Top-level comments | Calls for top level |
|---|---|---|
| Small tutorial | 300 | 3 |
| Popular review | 12,000 | 120 |
| Viral video | 250,000 | 2,500 |
The comment count shown on a video can include replies, so it may not match the number of top-level threads you collect. For most analysis, the top few thousand comments by relevance are enough; past that you mostly collect repeats of the same reactions.
Which one to use
| Job | Best fit |
|---|---|
| A few videos a week, free | Data API or yt-dlp |
| Every comment on a viral video, including replies | yt-dlp locally, or a per-call API |
| Millions of comments into a warehouse | A batch scraper service |
| An app or agent that reads comments on demand | A per-call API |
Storage format
Save raw pages as JSON lines, one comment per line, exactly as the tool returned them. Build your CSV or database table from that file. When you later need a field you skipped, you can rebuild without calling the API again. Comment text has commas, quotes, line breaks and emoji, so if you do write CSV, use a proper CSV writer and UTF-8.
What to keep in each row
- Comment ID and parent ID, so you can rebuild threads.
- Text, likes, reply count, created date.
- Author handle, but think before you store personal data. Keep only what your analysis needs, and drop handles once the analysis is done if you do not need them. Privacy laws such as the GDPR apply to personal data even when it is public.
- Whether the channel owner replied or hearted it, if your tool gives it. Those are strong signals of what the creator values.
Doing it with ScrapeIO
The YouTube comments API returns comments with likes, reply counts and dates, sorted by relevance or time. Pass a comment ID to the comment replies API for its thread. Each page is 1 credit, and failed calls are not charged.
curl "https://scrapeio.com/v1/youtube/video/comments?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DVIDEO_ID&order=time" -H "x-api-key: YOUR_KEY"
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developers.google.com/youtube/v3/docs/commentThreads/list
- https://developers.google.com/youtube/v3/determine_quota_cost
- https://developers.google.com/youtube/terms/developer-policies
- https://github.com/yt-dlp/yt-dlp
- https://brightdata.com/products/web-scraper/youtube
100 free credits, no card. Credits never expire.
Get API key