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
2
Total users
1
Monthly active users
4 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.
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: 100, maxItems: 200, 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.
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.
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.
If this actor saved you time, a short review on its Store page genuinely helps other people find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab.