YouTube Comments Scraper (top or newest, with replies)
Pricing
from $0.50 / 1,000 comment or replies
YouTube Comments Scraper (top or newest, with replies)
Scrape public YouTube comments and replies from any video or Short: text, likes, reply count, date, pinned, hearted and creator flags, sorted by top or newest. Privacy-first (no commenter names or IDs). Pay only per comment delivered.
Pricing
from $0.50 / 1,000 comment or replies
Rating
0.0
(0)
Developer
ScrapeMole
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Comments Scraper: comments and replies, top or newest
Scrape public YouTube comments and replies from any video or Short. Every row has the comment text, like count, reply count, when it was posted, and pinned / hearted-by-creator / posted-by-creator flags, plus the video title, channel and total comment count. Sort by Top comments or Newest first, add replies if you want them, and export to JSON, CSV, Excel or Google Sheets, or call it from Python, n8n, Make, Zapier or an AI agent.
You only pay per comment delivered. Videos with comments turned off, private or deleted videos and invalid links come back as clear error rows and are never charged.
Privacy-first by design. The Actor returns what people say, not who they are: commenter names, @handles, channel IDs and avatars are never collected or returned, and e-mail addresses inside comment text are redacted. That keeps your sentiment, feedback and research datasets clear of personal data (GDPR-friendly), which is what most comment analysis needs anyway.
Why this comments scraper gets all the comments
- Reads the same JSON the YouTube website loads (no headless browser): 300 comments take about 7 seconds, 2,500 newest comments about 25 seconds.
- Goes past YouTube's "Top comments" ceiling. YouTube only lists about 1,000 comments under Top comments. Pick Newest first and the Actor pages through the full history. In our tests it pulled 2,500 of 2,500 requested on a video with millions of comments. When a Top run hits the ceiling, the log tells you.
- No duplicates, no blank rows. Comments are de-duplicated across pages, and a run never "succeeds" with zero rows silently: you get
NO_DATA("comments are turned off") orNOT_FOUNDinstead. - Retries with backoff and a fresh IP on rate limits, escalates to residential IPs only if YouTube keeps blocking, and gives rate-limited videos a slower second pass at the end.
- Exact billing. One
commentevent per row in your dataset (comment or reply), charged only after the row is saved. Set Max cost per run and the Actor stops cleanly at your budget.
Live tests, 19 Oct 2026 (real YouTube, cloud server, no proxy): see Test results.
What you get
| Field | Description |
|---|---|
type | comment (top-level) or reply |
text | Comment text (e-mails redacted) |
likeCount, replyCount | Engagement numbers ("1.2K" converted to 1200) |
publishedText, publishedAtApprox, isEdited | "3 weeks ago", the approximate date (YYYY-MM-DD) and the edited flag |
isPinned, isHeartedByCreator, isByVideoCreator | Creator signals |
commentId, parentCommentId, commentUrl, position | IDs, a direct link that highlights the comment, and its order |
videoId, videoUrl, videoTitle, videoChannelName, totalCommentsOnVideo | Video context on every row |
How to scrape YouTube comments
- Paste one or more video links or IDs (watch links,
youtu.be, Shorts, live and embed URLs all work). - Set Max comments per video, pick Top or Newest first, and turn on Include replies if you need them.
- Click Start and download the comments as JSON, CSV or Excel, or read them through the API.
Input example
{"videos": ["https://www.youtube.com/watch?v=aircAruvnKk", "https://www.youtube.com/shorts/VIDEO_ID"],"maxComments": 500,"sortBy": "newest","includeReplies": true,"maxRepliesPerComment": 10}
Output example
{"status": "ok","type": "comment","videoId": "aircAruvnKk","videoUrl": "https://www.youtube.com/watch?v=aircAruvnKk","videoTitle": "But what is a neural network? | Deep learning chapter 1","videoChannelName": "3Blue1Brown","totalCommentsOnVideo": 9418,"sortBy": "top","position": 2,"parentCommentId": null,"commentUrl": "https://www.youtube.com/watch?v=aircAruvnKk&lc=Ugwedfi--9yZVC0eefl4AaABAg","commentId": "Ugwedfi--9yZVC0eefl4AaABAg","text": "I study mathematics, physics and architecture. By definition this man is an ORACLE in the strict meaning of the word...","publishedText": "7 years ago (edited)","publishedAtApprox": "2019-10-19","isEdited": true,"likeCount": 13000,"replyCount": 173,"isHeartedByCreator": false,"isByVideoCreator": false,"isPinned": false}
Videos with comments turned off
{ "status": "error", "videoId": "XXXXXXXXXXX", "errorCode": "NO_DATA", "errorMessage": "Comments are turned off or unavailable for this video." }
Not charged.
Pricing
Pay per comment (replies count as comments). Proxy and platform costs are included, with no start fee.
| Apify plan | Price per comment | 1,000 comments |
|---|---|---|
| Free | $0.001 | $1.00 |
| Starter (Bronze) | $0.0008 | $0.80 |
| Scale (Silver) | $0.0006 | $0.60 |
| Business (Gold) | $0.0005 | $0.50 |
Use cases
- Sentiment and audience research: what viewers love, hate and ask about a product, launch, trailer or creator.
- Product feedback mining: feature requests and complaints under review and tutorial videos.
- Content ideas and FAQs: the questions your audience keeps asking.
- AI and LLM pipelines: clean, identity-free comment text for classification, topic modelling, RAG or fine-tuning.
- Brand and campaign monitoring: track reactions on your own and competitors' videos over time (schedule the Actor with Newest first).
API, Python and AI agents
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("scrapemole/youtube-comments-scraper").call(run_input={"videos": ["https://www.youtube.com/watch?v=aircAruvnKk"], "maxComments": 200, "sortBy": "newest"})for c in client.dataset(run["defaultDatasetId"]).iterate_items():print(c.get("likeCount"), c.get("text", c.get("errorMessage"))[:120])
Works with n8n, Make, Zapier, LangChain, LlamaIndex and the Apify MCP server, so Claude, ChatGPT or Cursor agents can pull comments on their own.
Test results
Live tests on 2026-10-19 against real YouTube from a cloud server with no proxy: 8 runs over 11 videos (lectures, music videos, tutorials, news, the first YouTube video), Top and Newest, with and without replies.
| Metric | Result |
|---|---|
| Runs finished OK | 8/8 |
| Comments delivered | 2,250 top-level + 343 replies |
| Duplicate rows | 0 |
| Rows with commenter identity fields | 0 |
| Billing | Charged exactly once per row delivered (2,593 events) |
| Newest-first deep paging | 2,500/2,500 comments on a video with millions of comments |
| Edge cases | not-found and invalid links (not charged), empty input, budget cap stops at exactly 7 of 100: all pass |
| Blocks | 0 |
FAQ
Why do I get about 1,000 comments with "Top comments"? That's a YouTube limit: the Top list stops around 1,000. Choose Newest first to get everything.
Can I get commenter names or channel IDs? No, on purpose. This Actor is built for analysing what is said without collecting personal data. If you need to know who commented, this isn't the right tool.
Are replies included? Only if you turn on Include replies. Each reply is one row with type: "reply" and the parentCommentId.
Does it work for Shorts and live streams? Yes for Shorts and finished streams with comments. Live chat isn't comments, so it isn't included.
Age-restricted or members-only videos? YouTube requires sign-in for these. The Actor doesn't log in, so they return a clear error and aren't charged.
Is it legal? The Actor only reads publicly visible comments and doesn't collect commenter identities. Respect YouTube's terms and applicable law when you reuse the data.
Found a problem? Open an issue with the run link. Each run stores a RUN_SUMMARY (requests, retries, errors) to help debug it.
More from ScrapeMole
ScrapeMole builds focused, reliable scrapers for public data: pay per result, no start fees, clear error rows that are never charged, and a RUN_SUMMARY on every run.
- YouTube Transcript & Subtitles Scraper
- Google Trends Scraper
- YouTube Scraper
- Telegram Channel Scraper
- Amazon Product & Search Scraper
Building an AI agent with its own wallet? The YouTube and Google Trends data is also sold per call over x402 (USDC on Base, no account): see scrapemole.pages.dev. Questions or a missing field? Open an issue on this Actor. ScrapeMole is the maker of this Actor.