Pricing
from $1.00 / 1,000 results
Go to Apify Store
Youtube Comment Scraper
Scrape YouTube video comments with full metadata. Extracts comment text, author info, likes, timestamps, pinned/hearted status, and reply threads. Supports sorting by Top comments or Newest first.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer
Actor stats
0
Bookmarked
41
Total users
10
Monthly active users
a day ago
Last modified
Categories
Share
Scrape YouTube video comments with full metadata including author info, likes, timestamps, pinned/hearted status, and reply threads. Supports sorting by Top comments or Newest first.
Input
| Field | Type | Default | Description |
|---|---|---|---|
videoUrls | array | required | YouTube video URLs, short links (youtu.be), shorts URLs, or plain video IDs |
maxComments | integer | 100 | Max top-level comments per video (1โ50,000). Replies don't count toward this limit |
includeReplies | boolean | true | Whether to fetch reply threads for each comment |
maxRepliesPerComment | integer | 5 | Max replies to fetch per comment (0โ100) |
sortBy | string | "top" | Sort order: "top" (most relevant) or "newest" (chronological) |
Supported URL Formats
https://www.youtube.com/watch?v=dQw4w9WgXcQhttps://youtu.be/dQw4w9WgXcQhttps://www.youtube.com/shorts/dQw4w9WgXcQhttps://www.youtube.com/embed/dQw4w9WgXcQhttps://www.youtube.com/live/dQw4w9WgXcQdQw4w9WgXcQ(bare video ID)
Example Input
{"videoUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxComments":100,"includeReplies":true,"maxRepliesPerComment":5,"sortBy":"top"}
Output
Each row in the dataset is either a top-level comment (replyDepth: 0) or a reply (replyDepth: 1). Replies appear immediately after their parent comment.
| Field | Type | Description |
|---|---|---|
commentId | string | Unique comment identifier |
text | string | Comment text content |
authorName | string | Author's display name |
authorChannelId | string | Author's YouTube channel ID |
authorChannelUrl | string | Author's channel URL |
authorProfileImageUrl | string | Author's profile image URL |
authorIsChannelOwner | boolean | Whether the author is the video's channel owner |
likeCount | integer | Number of likes on the comment |
replyCount | integer | Number of replies (top-level comments only) |
publishedTimeText | string | Relative publish time (e.g., "2 days ago") |
isHearted | boolean | Whether the creator hearted this comment |
isPinned | boolean | Whether this comment is pinned |
isReply | boolean | Whether this is a reply (true) or top-level comment (false) |
parentCommentId | string/null | Parent comment ID (replies only, null for top-level) |
replyDepth | integer | 0 for top-level comments, 1 for replies |
videoId | string | YouTube video ID |
videoUrl | string | Full video URL |
videoTitle | string | Video title |
videoChannelName | string | Video channel name |
videoChannelId | string | Video channel ID |
scrapedAt | string | ISO 8601 timestamp of when the data was scraped |
Example Output
{"commentId":"UgxB...","text":"Great video!","authorName":"John Doe","authorChannelId":"UCxxx...","authorChannelUrl":"https://www.youtube.com/@johndoe","authorProfileImageUrl":"https://yt3.ggpht.com/...","authorIsChannelOwner":false,"likeCount":42,"replyCount":3,"publishedTimeText":"2 days ago","isHearted":false,"isPinned":false,"isReply":false,"parentCommentId":null,"replyDepth":0,"videoId":"dQw4w9WgXcQ","videoUrl":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","videoTitle":"Rick Astley - Never Gonna Give You Up","videoChannelName":"Rick Astley","videoChannelId":"UCuAXFkgsw1L7xaCfnd5JJOw","scrapedAt":"2026-02-11T12:00:00.000000+00:00"}
Cost
- Average run: ~$0.01โ0.05 per video (100 comments)
- Uses HTTP requests (no browser) for comment fetching, keeping costs low
- Reply fetching adds minimal cost per reply thread
