YouTube Comments Scraper
Pricing
from $0.45 / 1,000 results
YouTube Comments Scraper
Collect comments from YouTube videos, Shorts, and community posts. Process multiple URLs or IDs, choose Top or Newest order, paginate automatically, and optionally attach parent content details.
Pricing
from $0.45 / 1,000 results
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
The Actor collects public comments from YouTube videos, Shorts, and community posts. It accepts a mixed list of targets as URLs or IDs, detects which kind each one is, paginates through the comment thread, and can optionally attach the parent video or post to every comment it saved. No YouTube account, API key, or cookie is required.
Accepted input
| Field | Type | Default | Description |
|---|---|---|---|
comment_sources | array | — | Required. Video, Shorts, or community-post URLs or IDs. |
maxItems | integer | 100 | Maximum comments saved across all targets. 0 removes the limit. |
sort_order | enum | top | top for YouTube's ranking, newest for most recent first. |
includeParentDetails | boolean | false | Attaches the parent video or post to each comment. |
owner_channel | string | — | Channel ID owning a community post, when the post is given as a bare ID. |
region_code | string | US | Two-letter country code used to localize results. |
language_code | string | en | Language code for result text. |
{"comment_sources": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" },{ "url": "https://www.youtube.com/shorts/P4-3XTiiogo" }],"sort_order": "top","maxItems": 500}
Response fields
One row per comment.
| Field | Contents |
|---|---|
recordType | video_comment or post_comment |
source | The target the comment came from, as supplied |
commentId | YouTube comment ID |
textDisplay | Comment body as displayed |
authorText | Author's display name |
authorChannelId, authorChannelHandle | Author's channel |
authorThumbnail | Author avatar |
authorIsChannelOwner | Whether the author owns the video's channel |
likesCount | Reported likes on the comment |
replyCount | Reported replies to the comment |
publishedTimeText, publishedAt, publishDate | Relative time, ISO 8601 timestamp, and date |
isVerified, isArtist, isCreator | Author badges YouTube displays |
position | One-based position within the run |
meta | Thread context, including the reported total comment count |
parentDetails | The parent video or post, with includeParentDetails |
{"recordType": "video_comment","commentId": "Ugzge340dBgB75hWBm54AaABAg","textDisplay": "can confirm: he never gave us up","authorText": "@YouTube","authorChannelHandle": "@YouTube","publishedTimeText": "1 year ago","publishDate": "2025-07-30","position": 1}
Note that a comment's like count is likesCount while a video's is likeCount. That inconsistency is YouTube's; the field names are left as returned rather than renamed, so they match the saved rows.
Targets, and how each kind is detected
A target is read as a community post when it is a /post/ URL or a bare ID beginning Ug, and as a video otherwise. Videos and Shorts use the same comment thread, so a Shorts URL needs no special handling.
Community posts given as a bare post ID may also need owner_channel, the UC… ID of the channel that published the post. Posts supplied as full URLs do not.
Pagination and result limits
Comments are collected in pages of about 20 and the cursor is followed until maxItems is reached, YouTube stops serving pages, or a cursor repeats. maxItems is a budget shared across every target in the run: with three videos and maxItems: 100, the first video may consume most of it. Run targets separately when even coverage across them matters.
meta carries YouTube's own reported comment count for the thread, which is useful for judging what fraction of a discussion was collected. That count includes replies, while the collected rows are top-level comments, so it will normally exceed the number of rows saved.
Behaviour on partial results
A target that cannot be parsed is logged and skipped. A target whose comments YouTube declines to serve — comments disabled, or a post that is not publicly readable — is logged and skipped, and the remaining targets still run. Comments already collected are kept. The run fails only when no supplied target was a usable reference.
includeParentDetails is fetched once per target rather than once per comment, and the resulting object is attached to every comment from that target. It is charged once per target on success. A failure leaves the field absent, is not charged, and does not stop the comments from being collected.
Frequently asked questions
Are replies collected as well as top-level comments?
Top-level comments are collected. replyCount records how many replies each one has, so threads worth expanding are identifiable, but the replies themselves are not saved as rows.
Why did a video return no comments? Most often comments are disabled on it, which YouTube reports as an empty thread rather than an error. The run log names the target. It is also possible the thread is genuinely empty — a newly published video, or a community post nobody has replied to.
What is the difference between top and newest?
top is YouTube's own ranking, which weights engagement and tends to surface the same well-liked comments the site shows first. newest is strictly reverse-chronological. For sampling opinion, top is more representative of what viewers actually see; for monitoring, newest is more useful.
Can every comment on a large video be collected?
Only as far as YouTube keeps serving pages. Threads with millions of comments are not served in full to anyone, including the site itself. Set maxItems: 0 to take everything offered and treat the result as a large sample rather than a census.
Why is authorThumbnail sometimes a single URL and sometimes a list?
Comments return one avatar URL; community posts return several sizes. Both are passed through as returned rather than normalised into one shape.
Is a YouTube account or API key required? No. Only publicly visible comments are read, with no credentials or logged-in session, and no YouTube Data API quota is consumed.
Related Actors
| Actor | Purpose |
|---|---|
| YouTube Video Scraper | Full metadata and transcripts for known videos and Shorts |
| YouTube Channel Scraper | Channel details, uploads, and community posts |
| YouTube Search Scraper | Find videos by keyword, hashtag, or chart |
| YouTube Playlist Scraper | Playlist metadata and every video in it |