YouTube Comments Scraper (no login, text + likes, monitor)
Pricing
from $0.40 / 1,000 result items
YouTube Comments Scraper (no login, text + likes, monitor)
Get YouTube video comments without login: text, like count, reply count and pin/heart status for a list of videos. No author names, channel ids or avatars collected. Monitor mode alerts on new comments; pay only per comment returned.
Pricing
from $0.40 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Get the top-level comments of any YouTube video: text, like count, reply count, pin/heart status and a relative + estimated publish date. No YouTube account, no cookies, no API key. Runs the same Innertube endpoint the official Android app uses.
Try it: the prefilled example returns 19 rows in about 5 seconds and costs about $0.010. Results cost $0.50 per 1,000.
What you get
Real rows from the example dataset (video dQw4w9WgXcQ):
| text | likeCount | replyCount | publishedText | isPinned / isHearted |
|---|---|---|---|---|
| "can confirm: he never gave us up" | 318000 | 962 | 1 year ago | true / true |
| "I Rick rolled my entire French class because we had to study a city in France…" | 101000 | 548 | 6 years ago (edited) | false / false |
| "Gonna flag this for nudity so I can rick roll the YouTube staff" | 566000 | 700 | 6 years ago | false / false |
Full row: id, url, videoId, videoUrl, text, likeCount, replyCount, publishedText, publishedAt, isPinned, isHearted, isReply, query, scrapedAt.
Not collected, ever: commenter display name, channel id/handle, avatar image, verification/creator badges. Only the comment content and its counters.
Use cases
- Read sentiment and reactions on your own or a competitor's video without opening YouTube.
- Track how many likes a pinned comment collects over time (monitor mode).
- Feed comment text into a summariser or moderation pipeline.
Try it in 10 seconds
Hit Start/Try it — the input already works: videoUrls: ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], maxCommentsPerVideo: 20, maxItems: 20, nothing required.
To track a video's comment section over time: save the task, set Mode to monitor, and put it on a schedule (Apify → Schedules → cron 0 */6 * * * every 6 hours). Each run then returns only comments that are new since the previous check.
Related actors
- Reddit Scraper (subreddit posts, search, comments, no login) — the same text-and-counters shape for Reddit posts and comment threads.
- Threads Scraper — Posts, Profiles, Replies & Search, No Login — reply feeds on Threads instead of YouTube.
- Facebook Reels Scraper (page reels, views, MP4, no login) — the video and view-count side of the same content, on Facebook.
How it works
- Entry — the video's Innertube
nextresponse carries the comment section's continuation token, if the video has comments open at all. - Pages — each continuation page returns up to ~20 comments with their like/reply counters, pin status and
whether the creator hearted them; the actor walks continuations until
maxCommentsPerVideois reached, a page repeats the same ids, or comments run out. - Comments turned off (private uploads, some made-for-kids videos) or an invalid video id come back as a normal empty result for that video — not a block, not a charge. If every proxy tier YouTube answers with a wall for a video, the run stops and reports a block instead of silently returning nothing.
Input
| Field | Meaning | Default |
|---|---|---|
videoUrls | Video URLs (watch?v=, youtu.be/…, /shorts/…) or bare 11-character ids | required |
maxCommentsPerVideo | Stop fetching comments for one video after this many | 100 |
sort | top or newest — see Limits, only top is actually served | top |
maxItems | Stop the whole run after this many comment rows | 200 |
mode | scrape or monitor (only new comments since last run) | scrape |
monitorStateId, webhookUrl, telegramBotToken, telegramChatId | Monitor-mode state key and alert targets | empty |
Pricing
| Event | Price |
|---|---|
| result | $0.0005 per comment ($0.50 per 1,000) |
| monitor-check | $0.005 per monitor run |
| change | $0.0005 per new comment |
Charged only for comments actually pushed. Residential proxy traffic is billed by Apify on top of these prices when YouTube walls the datacenter tier.
Found it useful? A short review on the Store page helps other people find this actor and tells us what to improve. If something is wrong, open an issue on the actor page — issues are answered within a day.
Why this actor
- No login, no cookies, no API key or quota to manage.
- Comment counters (likes, replies) alongside the text in one row — most comment scrapers on the Store return text only.
- A run that finds nothing pushes nothing and charges no result events; the run summary explains why.
Limits
- Top-level comments only. Replies are not expanded in this version;
isReplyis alwaysfalse. - Sort order. YouTube's Android client (the one this actor reads) does not expose the "Newest first" sort
chips in its response, only the default "Top comments" order.
sort: "newest"is accepted on input for forward compatibility but every run currently returns the same top-comments order. publishedAtis an estimate, computed from YouTube's own relative text ("1 year ago") at scrape time, not an exact timestamp.- Live/upcoming streams and members-only comments are not specifically handled and may return fewer rows than expected.
FAQ
Does it need a YouTube account or cookies? No — every request is made as a logged-out Android app client.
Why is there no commenter name or avatar? By design: this actor collects comment content and counters only, never person-level identity of individual commenters.
What happens when comments are off for a video? No rows are pushed for that video and nothing is charged; the
run continues with the rest of videoUrls.
Changelog
- 0.1: initial release — top-level comments with text, counters, pin/heart status and an estimated publish date; monitor mode; walled videos are reported as a block instead of an empty dataset.