All posts

YouTube comment scrapers: 5 ways to export comments

November 8, 2026

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:

VideoTop-level commentsCalls for top level
Small tutorial3003
Popular review12,000120
Viral video250,0002,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

JobBest fit
A few videos a week, freeData API or yt-dlp
Every comment on a viral video, including repliesyt-dlp locally, or a per-call API
Millions of comments into a warehouseA batch scraper service
An app or agent that reads comments on demandA 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.

100 free credits, no card. Credits never expire.

Get API key