YouTube Comments Scraper — Top, Newest & Replies
Pricing
from $0.17 / 1,000 additional comment or replies
YouTube Comments Scraper — Top, Newest & Replies
First delivered comment: $0.0005; additional comments/replies: $0.000165 each. Export public YouTube comment text, author IDs and reply threads. Top/newest sorting, global output and spending caps. Zero-result runs have no Actor event charges.
Pricing
from $0.17 / 1,000 additional comment or replies
Rating
0.0
(0)
Developer
Datamule
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
YouTube Comments Scraper — Comments & Replies
Export public YouTube comments and reply threads for audience research and content analysis. No API key or login required. Get comment text, author/channel IDs, parent IDs, source timestamps and URLs in JSON, CSV or Excel.
Pricing per run: first delivered comment $0.0005; each additional comment $0.000165 ($0.165 per 1,000 additional comments). This is NOT a flat per-comment rate. The first delivered comment includes a small fixed-compute premium. Comments and replies are billed identically. Runs delivering zero comments incur no Actor event charges; partial successful results remain billable if later extraction fails.
| Delivered comments and replies | Total Actor charge (USD) |
|---|---|
| 0 | $0 |
| 1 | $0.000500 |
| 10 | $0.001985 |
| 100 | $0.016835 |
| 1,000 | $0.165335 |
| 10,000 | $1.650335 |
The first-comment event replaces—not adds to—the regular comment event for that row. There is no charge merely for starting a run. Set maxComments and a positive Apify maximum-charge amount to control spending; a positive budget below $0.0005 delivers no rows. Do not enter zero as the Apify maximum charge: the platform treats zero as an unset limit and substitutes its default/account allowance. For a zero-output spending gate, use a positive limit below the first-comment price (for example $0.000499).
Quick start
{"videoUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxComments":100,"sort":"top","includeReplies":false}
Use sort: "newest" for recent audience feedback or includeReplies: true for bounded thread context. Analyze exported text in your own workflow; this Actor does not invent sentiment scores, leads or inferred personal attributes.
Input and coverage
videoUrls: 1–10 HTTPS YouTube video URLs or 11-character IDs. Duplicate videos are deduplicated. Shorts/live URLs are accepted, but livestream chat is not supported.maxComments: integer 1–10,000, default 100; a global hard cap across all videos and replies, not per video. Inputs are processed sequentially; the first video may consume the cap. No unlimited mode.sort:top(default) ornewest. The source may put a pinned comment first even in newest mode. There is no chronological sorting of relative dates by this Actor.includeReplies: false by default. When true, each page of top-level comments is emitted before following its reply threads in source order; a popular first thread may consume the remaining cap. Comments and replies count equally toward the cap and price.
Output and provenance
Every row retains the source commentId, requested videoId, explicit parentCommentId for replies, and commentUrl. publishedTimeText is the exact relative source string; publishedAt is null because this source does not provide an absolute posting date. scrapedAt is the actual UTC observation time, not posting time. likeCountText and replyCountText retain source display values; numeric fields are null for rounded values such as 312K.
Limits and diagnostics
Uses the anonymous YouTube WEB comments surface. It is undocumented and may change, block cloud IPs, omit comments, or personalize ranking. No completeness or continuous-availability guarantee is made. No retries, proxy rotation or access-control workarounds. Age-gated, private, unavailable, restricted and members-only sources are out of scope.
SUMMARY in the default key-value store describes videos and stop reasons. Explicit comments-disabled responses produce no dataset row and no event. Unavailable/restricted/unrecognized sources fail rather than look like an empty success. Partial rows may remain after failure; inspect run status and SUMMARY. Mixed unavailable input fails after preserving valid rows.
Finite safety bounds: 150 HTTP requests, 8 MB decoded per response, 80 MB decoded total and 240 seconds of extraction per process lifetime; platform timeout 300 seconds. A safety-limit failure is not source exhaustion. Failed storage/charging calls propagate; they are never swallowed. Diagnostic records are not billed comments.
On restart, physical dataset rows restore the global cap and dedupe keys. Paid runs also reconcile stored event counts; ambiguous billing/storage history fails for operator review instead of replaying charges. Storage and charging are not a distributed exactly-once transaction. Do not blindly resurrect a failed run; inspect its records first.
Independent implementation; not affiliated with YouTube or Google. Use public content lawfully and respect privacy and platform terms.