YouTube Comments Scraper: Videos, Shorts, Channels & Replies
Pricing
from $1.05 / 1,000 comment scrapeds
YouTube Comments Scraper: Videos, Shorts, Channels & Replies
Scrape YouTube comments and replies from videos, Shorts, channels and playlists: text, likes, reply count, author, verified/creator flags, pinned and hearted comments, video title and stats. Top or newest first. No API key, no browser. Pay per comment.
Pricing
from $1.05 / 1,000 comment scrapeds
Rating
0.0
(0)
Developer
Torix
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Comments Scraper — Comments & Replies from Videos, Shorts, Channels and Playlists
Export YouTube comments and replies in bulk: comment text, likes, reply count, author name, channel ID, avatar, verified / channel-owner / artist badges, pinned and hearted-by-creator flags, posting time, plus the video title, channel and view count on every row.
Paste videos, Shorts, channels or playlists — channels and playlists are expanded into their latest videos automatically. No YouTube API key, no quota, no login and no browser.
How to run it in 3 steps
- Add your input. In Videos, Shorts, channels or playlists paste video, Shorts or @channel links — e.g.
https://www.youtube.com/watch?v=jNQXAC9IVRw. The form is already filled with a working example, so you can skip this step for a first try. - Press Start. The prefilled run returns 40 comments in about 4 s and costs about $0.060. Set Max results (cost cap) to cap the cost of bigger runs; you only pay for comments actually delivered.
- Get the data. Open the Output tab and export JSON, CSV or Excel — or run it from the API, Make, Zapier, n8n or an AI agent (see below).
Features
- Videos, Shorts, channels and playlists in one input. Give
@mkbhdand get comments from the channel's latest N videos. - Top or Newest first. Use Newest to monitor new comments on your own or competitors' videos.
- Replies included on request, as separate rows linked with
parentCommentId— to rebuild threads, group byparentCommentId. - Rich flags:
isPinned,isHeartedByCreator,authorIsChannelOwner,authorIsVerified,isEdited. - Ready for analysis: likes are numbers (
219K→219000), the total comment count of each video is on every row, andpublishedAtApproxturns "3 weeks ago" into a date. - Fast: pure HTTP against YouTube's own web API; thousands of comments per minute with a small memory footprint.
- Pay per comment, with a hard cost cap (
maxResults) and your Apify spending limit respected exactly.
Use cases
- Audience research & sentiment analysis — feed comments into ChatGPT/Claude or a sentiment model.
- Product feedback mining from review and unboxing videos.
- Influencer vetting — check real engagement, creator replies and hearted comments.
- Lead generation — find people asking for a product or service in comments of niche videos.
- Community management — export new comments daily (
sortBy: newest). - Giveaways — collect every commenter of a video.
Input
{"startUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw","https://www.youtube.com/shorts/0e3GPea1Tyg","@mkbhd"],"maxCommentsPerVideo": 100,"sortBy": "top","includeReplies": true,"maxRepliesPerComment": 20,"maxVideosPerChannel": 10}
| Option | Default | Notes |
|---|---|---|
startUrls | — | Video/Shorts URLs or IDs, channels (@handle, /channel/UC…), playlists. |
maxCommentsPerVideo | 100 | Top-level comments per video; 0 = all. |
sortBy | top | top or newest. |
includeReplies | false | Replies become extra rows (isReply: true). |
maxRepliesPerComment | 20 | Cap per thread. |
maxVideosPerChannel | 10 | Latest videos taken from each channel/playlist. |
maxResults | 0 | Cost cap for the whole run (comments + replies). |
maxConcurrency | 10 | Videos in parallel. |
proxyConfiguration | off | Only for very large runs that hit HTTP 429. |
Output
Real output (default input)
First 2 of 40 records from a run with the prefilled input (3.7 s on a test machine; long values shortened here):
[{"videoId": "0e3GPea1Tyg","commentId": "UgzH8vliQSJKHQMGZjx4AaABAg","text": "Like I said in the video, subscribe if you haven’t already and you could win $10,000!","author": "@MrBeast","authorChannelId": "UCX6OQ3DkcsbYNE6H8uQQuVA","authorChannelUrl": "https://www.youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA","authorAvatar": "https://yt3.ggpht.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s88-c-k-c0x00ffffff-no-rj","authorIsVerified": true,"authorIsChannelOwner": true,"authorIsArtist": false,"likes": 1100000,"replyCount": 739,"publishedTimeText": "4 years ago","publishedAtApprox": "2022-10-16T12:03:29.799Z","isEdited": false,"isPinned": true,"isHeartedByCreator": false,"isReply": false,"parentCommentId": null,"commentUrl": "https://www.youtube.com/watch?v=0e3GPea1Tyg&lc=UgzH8vliQSJKHQMGZjx4AaABAg","videoTitle": "$456,000 Squid Game In Real Life!","videoUrl": "https://www.youtube.com/watch?v=0e3GPea1Tyg","channelName": "MrBeast","channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA","videoViewCount": 973482287,"source": "https://www.youtube.com/shorts/0e3GPea1Tyg","videoCommentCount": 660074,"scrapedAt": "2026-10-15T12:03:29.802Z"},{"videoId": "0e3GPea1Tyg","commentId": "UgwDhFNTCbfck5apuUJ4AaABAg","text": "Huge props to the set designers, everything was spot on!","author": "@DoodleChaos","authorChannelId": "UCnVimh35ecf46P_Bt-2AArg","authorChannelUrl": "https://www.youtube.com/channel/UCnVimh35ecf46P_Bt-2AArg","authorAvatar": "https://yt3.ggpht.com/ytc/AIdro_luPgVjRv0QRKfNIssTr6Tb21b7UvM84AQEc_nkrB9ZqLI=s88-c-k-c0x00ffffff-no-rj","authorIsVerified": true,"authorIsChannelOwner": false,"authorIsArtist": false,"likes": 574000,"replyCount": 697,"publishedTimeText": "4 years ago","publishedAtApprox": "2022-10-16T12:03:29.799Z","isEdited": false,"isPinned": false,"isHeartedByCreator": false,"isReply": false,"parentCommentId": null,"commentUrl": "https://www.youtube.com/watch?v=0e3GPea1Tyg&lc=UgwDhFNTCbfck5apuUJ4AaABAg","videoTitle": "$456,000 Squid Game In Real Life!","videoUrl": "https://www.youtube.com/watch?v=0e3GPea1Tyg","channelName": "MrBeast","channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA","videoViewCount": 973482287,"source": "https://www.youtube.com/shorts/0e3GPea1Tyg","videoCommentCount": 660074,"scrapedAt": "2026-10-15T12:03:29.802Z"}]
{"videoId": "jNQXAC9IVRw","commentId": "UgzuC3zzpRZkjc5Qzsd4AaABAg","text": "San Diego Zoo","author": "@SanDiegoZoo","authorChannelId": "UC1aIs0qJ6R4o1dZQmwF8Hzw","authorChannelUrl": "https://www.youtube.com/channel/UC1aIs0qJ6R4o1dZQmwF8Hzw","authorAvatar": "https://yt3.ggpht.com/…","authorIsVerified": true,"authorIsChannelOwner": false,"authorIsArtist": false,"likes": 1200000,"replyCount": 985,"publishedTimeText": "2 years ago","publishedAtApprox": "2024-10-14T19:10:27.833Z","isEdited": false,"isPinned": true,"isHeartedByCreator": true,"isReply": false,"parentCommentId": null,"commentUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw&lc=UgzuC3zzpRZkjc5Qzsd4AaABAg","videoTitle": "Me at the zoo","videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw","channelName": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","videoViewCount": 443808773,"videoCommentCount": 10639435,"source": "https://www.youtube.com/watch?v=jNQXAC9IVRw","scrapedAt": "2026-10-13T19:30:00.000Z"}
Ask in plain English
Using Apify AI, Claude, ChatGPT or another MCP client? Just describe what you need, the agent fills the input for you:
| You ask | Input the agent sends |
|---|---|
| "Get the top 200 comments of this video: https://www.youtube.com/watch?v=dQw4w9WgXcQ" | {"startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "maxCommentsPerVideo": 200} |
| "Collect comments with replies from the last 5 videos of @mkbhd" | {"startUrls": ["https://www.youtube.com/@mkbhd"], "maxVideosPerChannel": 5, "includeReplies": true} |
Use with AI agents (MCP), LangChain, RAG & the API
This actor is a ready-made tool for AI agents: an LLM can call it, wait for the run and read clean JSON back.
MCP server (Claude Desktop, Claude Code, Cursor, VS Code, any MCP client) — add Apify's hosted MCP server with this actor enabled as a tool:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=torix33/youtube-comments-scraper","headers": { "Authorization": "Bearer <APIFY_TOKEN>" }}}}
LangChain / LangGraph (pip install langchain-apify, set APIFY_API_TOKEN):
from langchain_apify import ApifyActorsTool, ApifyWrapperfrom langchain_core.documents import Document# 1) give the actor to an agent as a tooltool = ApifyActorsTool("torix33/youtube-comments-scraper")# 2) or load results as Documents for a RAG indexloader = ApifyWrapper().call_actor(actor_id="torix33/youtube-comments-scraper",run_input={"startUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw", "https://www.youtube.com/shorts/0e3GPea1Tyg", "@mkbhd"], "maxCommentsPerVideo": 100, "sortBy": "top", "includeReplies": True, "maxRepliesPerComment": 20, "maxVideosPerChannel": 10},dataset_mapping_function=lambda item: Document(page_content=item["text"], metadata={"url": item.get("url")}),)docs = loader.load()
REST API — one synchronous call, dataset items in the response:
curl -X POST "https://api.apify.com/v2/acts/torix33~youtube-comments-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw", "https://www.youtube.com/shorts/0e3GPea1Tyg", "@mkbhd"], "maxCommentsPerVideo": 100, "sortBy": "top", "includeReplies": true, "maxRepliesPerComment": 20, "maxVideosPerChannel": 10}'
Also works with the Apify Python/JS clients, Make, Zapier, n8n, Google Sheets, webhooks and schedules. Export as JSON, CSV, Excel, XML or RSS.
RAG tip: For sentiment analysis or "what do viewers ask for?" summaries, group rows by videoId and pass text + likes to the model — high-like comments first.
Pricing
- $1.50 per 1,000 comments ($0.0015 per comment).
- The prefilled input returns 40 comments → $0.06.
- Example: 1,000 comments → $1.50; 10,000 → $15.00. Set Max results (cost cap) to limit any run.
Videos with comments turned off cost nothing.
Limitations
- YouTube shows like counts rounded above 1,000 (
219K); thelikesfield carries that value as a number. publishedAtApproxis derived from YouTube's relative time ("3 weeks ago"), so it is approximate by design.- Only public comments are collected. Please respect YouTube's terms and privacy laws when processing personal data such as author names.
FAQ
Do I need a YouTube Data API key? No. The actor reads YouTube's public web API, so there is no API quota and no key.
Are replies included?
Turn on includeReplies. Replies are separate rows linked to the parent with parentCommentId.
Can I get comments from a whole channel?
Yes. Give a channel URL or @handle and set maxVideosPerChannel; the actor takes the latest videos.