YouTube Comments $0.4/1k: Replies & Shorts avatar

YouTube Comments $0.4/1k: Replies & Shorts

Pricing

$0.40 / 1,000 comments

Go to Apify Store
YouTube Comments $0.4/1k: Replies & Shorts

YouTube Comments $0.4/1k: Replies & Shorts

$0.40 per 1,000 comments, failed and empty videos are free. Scrape YouTube comments and replies from videos and Shorts with likes, pins and creator hearts.

Pricing

$0.40 / 1,000 comments

Rating

0.0

(0)

Developer

Wiseus Labs

Wiseus Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

YouTube Comments Scraper

💬 What you get

Paste YouTube video or Shorts links and get every comment as a row in a dataset: the comment text, author handle and channel ID, like count, reply count, relative publish time, and whether the comment is pinned, hearted by the creator, or written by the channel owner. Replies can be included and come right after their parent comment. You pay $0.40 per 1,000 comments. Videos with comments turned off, no comments, or a broken link cost nothing.

Example output from this video: a top-level comment and the creator's reply to it.

[
{
"videoId": "yFuTAKq_j3Q",
"videoUrl": "https://www.youtube.com/watch?v=yFuTAKq_j3Q",
"commentId": "UgxxZvmMljCcyZGlarl4AaABAg",
"text": "Noice video.\nI recently discovered Homer and prefer it to Heimdall because there is no need for user credentials...",
"authorName": "@Clarence-Homelab",
"authorChannelId": "UC8VjOuewZxnD2nv9jIDwjww",
"authorIsChannelOwner": false,
"likeCount": 1,
"likeCountText": "1",
"replyCount": 1,
"publishedTimeText": "5 years ago",
"isPinned": false,
"isHeartedByCreator": false,
"isReply": false,
"parentCommentId": null,
"status": "ok"
},
{
"videoId": "yFuTAKq_j3Q",
"videoUrl": "https://www.youtube.com/watch?v=yFuTAKq_j3Q",
"commentId": "UgxxZvmMljCcyZGlarl4AaABAg.9SCVE2vlgTC9SCVgAAeHV9",
"text": "Nice, I'll be sure to check it out",
"authorName": "@RaidOwl",
"authorChannelId": "UC9evhW4JB_UdXSLeZGy8lGw",
"authorIsChannelOwner": true,
"likeCount": 0,
"likeCountText": "",
"replyCount": 0,
"publishedTimeText": "5 years ago",
"isPinned": false,
"isHeartedByCreator": false,
"isReply": true,
"parentCommentId": "UgxxZvmMljCcyZGlarl4AaABAg",
"status": "ok"
}
]

⚙️ Input

FieldTypeDefaultDescription
videosarray of stringsone example videoVideo URLs or IDs. Accepts youtube.com/watch?v=..., youtu.be/..., /shorts/..., /embed/..., /live/..., m.youtube.com links and bare 11-character IDs. Duplicates are removed.
maxCommentsPerVideointeger100Maximum rows per video, comments and replies together. 0 = no limit.
sortBytop or newesttopOrder of top-level comments.
includeRepliesbooleanfalseAlso save replies. Each reply follows its parent comment.
maxRepliesPerCommentinteger20Maximum replies saved per comment. 0 = all replies.
maxConcurrencyinteger5Number of videos processed at the same time (1 to 20).

Example input:

{
"videos": [
"https://www.youtube.com/watch?v=yFuTAKq_j3Q",
"https://www.youtube.com/shorts/M93h41hyPsM",
"dQw4w9WgXcQ"
],
"maxCommentsPerVideo": 500,
"sortBy": "newest",
"includeReplies": true,
"maxRepliesPerComment": 20
}

📋 Output fields

One row per comment or reply.

FieldDescription
videoIdYouTube video ID.
videoUrlLink to the video.
commentIdComment ID. A reply ID has the form <parentCommentId>.<suffix>.
textComment text. Empty for comments that contain only an image.
authorNameAuthor handle, for example @RaidOwl.
authorChannelIdAuthor channel ID.
authorIsChannelOwnertrue if the video's channel wrote the comment.
likeCountLikes as a number, parsed from the rounded figure YouTube shows: "1.2K" becomes 1200. YouTube does not show exact like counts for comments.
likeCountTextLikes exactly as YouTube shows them, for example "1.2K". Empty when there are no likes.
replyCountNumber of replies to the comment. Always 0 for replies.
publishedTimeTextRelative publish time, for example "3 years ago", with "(edited)" added for edited comments. YouTube does not show exact dates for comments.
isPinnedtrue if the creator pinned the comment.
isHeartedByCreatortrue if the creator gave the comment a heart.
isReplytrue for replies.
parentCommentIdFor replies, the ID of the comment they answer. null for top-level comments.
statusok for comment rows. Other values mark status rows, see below.

You can export the dataset as JSON, CSV, Excel, XML or HTML, or read it through the Apify API.

🚦 Status rows

When a video gives no comments, you get one row that says why, so every input is accounted for. Status rows have videoId, videoUrl, status and reason, and they are free.

statusWhen it appears
comments_disabledThe creator turned comments off, for example on videos made for kids.
no_commentsThe video exists and allows comments but has none yet.
unavailableThe video does not exist, was removed, or cannot be watched.
invalid_inputThe input entry is not a YouTube video link or ID. videoUrl holds the entry as you typed it.
errorThe video could not be read to the end. Comments collected before the error are kept, and reason says what went wrong.
run_summaryThe whole run produced no comments. One row explains why.

💰 Pricing

You pay per comment: $0.0004 per comment or reply, which is $0.40 per 1,000. There is no start fee, and you are not charged for compute.

RunCost
1,000 comments$0.40
100 videos x 100 comments$4.00
50 videos with comments turned off$0.00

To cap what a run can cost, set "Maximum cost per run" in the run options. When the limit is reached, the run stops cleanly and keeps everything collected so far.

🔀 Sorting and replies

Sorting. top returns comments in YouTube's "Top comments" order. That order can leave out some low-engagement comments: on one test video, Top returned 99 top-level comments and Newest returned all 106. Use newest when you need the complete set.

Replies. Popular comments can have hundreds of replies. Without a cap, a few long threads would use up maxCommentsPerVideo before you see many top-level comments. maxRepliesPerComment (default 20) keeps a sample of each thread and leaves room for more top-level comments. Set it to 0 to save every reply.

🎯 Common uses

  • Sentiment analysis of reactions to a video, product launch or announcement.
  • Audience research: what viewers like, dislike and ask for.
  • Brand monitoring on videos that mention your product.
  • Competitor research on other channels' videos and their audiences.
  • Training and test data for NLP models: real, informal text with like counts.
  • Finding viewer questions to answer in new videos or FAQs.

❓ FAQ

Do I need a YouTube API key or a Google login? No. Paste video links and run.

Does it work with YouTube Shorts? Yes. Use the Shorts link (youtube.com/shorts/...) or the video ID.

How do I export the comments? Open the run's dataset in Apify Console and download it as JSON, CSV, Excel, XML or HTML, or fetch it with the Apify API.

How do I get all comments of a video? Set maxCommentsPerVideo to 0, sortBy to newest, includeReplies to true and maxRepliesPerComment to 0.

Why is likeCount a round number? YouTube shows comment likes rounded ("12K"), and no exact figure is available. likeCount is that figure as a number; likeCountText is the original text.

Why is there no exact comment date? YouTube only shows relative times such as "3 years ago" for comments. publishedTimeText gives that text as shown.

Am I charged for videos that have no comments? No. Only comment rows (status = ok) are charged.