YouTube Comments Scraper - Free Comment Extractor
Pricing
Pay per usage
YouTube Comments Scraper - Free Comment Extractor
Extract YouTube comment threads at scale. Returns one structured row per comment — text, author, channel URL, like count, reply count, relative publish time, plus flat reply rows linked by parentCommentId. Sort by top or new, cap comments per video, filter by minimum likes.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Web Data Labs
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
YouTube Comments Scraper — Extract Comment Threads & Sentiment Data
Extract comment threads from any YouTube video at scale. Get structured JSON with comment text, author details, like counts, reply counts, timestamps and full reply threads — ready for sentiment analysis, brand monitoring and audience research.
What you get
- videoId — YouTube video identifier
- commentId — Unique comment ID
- text — Full comment text content
- author — Display name of the commenter
- authorChannelUrl — Link to the commenter's YouTube channel
- likeCount — Number of likes on the comment
- replyCount — Number of replies to a top-level comment (
0on reply rows) - publishedAt — Age of the comment as YouTube renders it, e.g.
"1 year ago"(relative text, not an ISO timestamp) - updatedAt — Always
null; this feed does not expose a comment edit timestamp - isReply —
truewhen the row is a reply to another comment - parentCommentId — ID of the top-level comment the reply belongs to (
nullon top-level rows)
Replies are returned as flat rows, not nested objects — rebuild a thread by grouping on parentCommentId.
Input parameters
| Field | Type | Description | Required |
|---|---|---|---|
videoUrl | string | Full YouTube video URL | Yes (or videoIds) |
videoIds | array | List of YouTube video IDs to process | No |
maxComments | integer | Maximum comments to extract per video | No |
includeReplies | boolean | Whether to include reply threads | No |
sortBy | string | Sort order: top or new | No |
minLikes | integer | Only return comments with at least this many likes | No |
Defaults and limits for every field are shown in the Input tab — it is generated from the Actor's own input schema, so it is always current.
Example input
{"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","maxComments": 100,"includeReplies": true,"sortBy": "top"}
Example output
A real row from a run of this Actor:
{"videoId": "dQw4w9WgXcQ","commentId": "Ugzge340dBgB75hWBm54AaABAg","text": "can confirm: he never gave us up","author": "@YouTube","authorChannelUrl": "https://www.youtube.com/@YouTube","likeCount": 313000,"replyCount": 963,"publishedAt": "1 year ago","updatedAt": null,"isReply": false,"parentCommentId": null}
Reply rows have the same keys, with isReply: true and parentCommentId set to the top-level comment's ID.
If a video has comments disabled, the run finishes with zero items rather than an error.
Use cases
Brand sentiment monitoring: Track what viewers say about your brand, product launch video, or sponsored content. Identify praise, complaints, and feature requests in bulk.
Content moderation research: Analyze comment toxicity, spam patterns, or policy violations across a channel. Feed data into classification models for automated moderation.
Audience research: Understand what resonates with your audience. Mine top-liked comments to discover which messages, jokes, or reactions your viewers amplify.
Competitive analysis: Scrape competitor video comments to understand their audience pain points and desires. Use insights to sharpen your own content and product positioning.
Pricing
See the Pricing tab on this Actor's page for the current, authoritative pricing — it is the only place that is guaranteed to be up to date.
