YouTube Comments Scraper without Author Names or IDs avatar

YouTube Comments Scraper without Author Names or IDs

Pricing

from $0.65 / 1,000 comment listeds

Go to Apify Store
YouTube Comments Scraper without Author Names or IDs

YouTube Comments Scraper without Author Names or IDs

Comments from YouTube videos for sentiment analysis, FAQ mining and research: text, likes, reply count, publication time, pinned and owner flags, top or newest first, optional replies, up to 200 videos per run. No author names, handles or channel IDs, so the dataset carries no personal data.

Pricing

from $0.65 / 1,000 comment listeds

Rating

0.0

(0)

Developer

Steadydata Team

Steadydata Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

YouTube Comments Scraper (no author data)

Comments from YouTube videos, up to 200 videos per run: the comment text, likes, reply count, when it was posted, whether it is pinned, hearted or written by the channel owner, in YouTube's Top order or newest first, optionally with the replies under each comment. Deliberately without commenter names, handles, channel ids or avatars. You only pay for comments that are actually delivered.

Why this scraper

  • Comments without people. Most comment scrapers ship the commenter's name and channel id with every row, which turns a dataset of opinions into a dataset of persons. This one reads past those fields on purpose. What you get is what sentiment analysis, FAQ mining, product research and content planning actually use: the text and its signals.
  • Top or newest. YouTube's own ranking for "what resonated", or newest first for "what are people saying right now".
  • Replies, when you want them. Off by default; on, each reply is delivered with parentCommentId so threads can be rebuilt.
  • Built on a lightweight route. About 4.8 KB per comment through YouTube's own internal API, no browser. In testing on 13-09-2026, 100 comments per video took about three seconds per video.
  • Only delivered comments are charged. A video with comments off, or one that does not exist, comes back as a clear error record at no cost.

Who this is for

Brand and product teams reading audience reaction at scale. Researchers coding sentiment or topics across hundreds of videos. Creators and agencies mining questions for FAQ and content ideas. Anyone feeding comments into an LLM and who does not want personal data in the prompt.

Who this is not for

Read this before you buy. If you need to know who commented, to build an outreach list or to track individual users, this is the wrong tool and it will not be extended in that direction. There is also no exact timestamp: YouTube publishes relative times ("2 weeks ago", "1 year ago (edited)") and that is what is delivered.

Input fields

FieldTypeRequired or defaultWhat it does
videoslist of textrequiredVideo URLs or 11-character video ids, one per row. Each video is one input; a video without comments comes back as a free error record.
maxCommentsPerVideonumber100Cost ceiling: at most this many top-level comments per video, in YouTube's order. One delivered comment is one charged event.
sorttext (top, newest)topTop comments (YouTube's ranking) or newest first.
includeRepliestrue/falsefalseAlso fetch the replies under each comment (each reply is a charged comment too, with parentCommentId set). Off by default: top-level comments only.
maxRepliesPerCommentnumber20Only used when replies are on.
languagetextenInterface language for relative dates such as '2 weeks ago' (hl).

Input example

{
"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "9bZkp7q19f0"],
"maxCommentsPerVideo": 100,
"sort": "top",
"includeReplies": false,
"maxRepliesPerComment": 20,
"language": "en"
}

Video URLs (watch, youtu.be, shorts, embed) or bare 11-character ids both work.

Output example

FieldTypeWhat it holdsExample
videoIdtextThe eleven-character YouTube id of the video, the key to join other data on.dQw4w9WgXcQ
commentIdtextThe id of the comment, the key to its own link.Ugzge340dBgB75hWBm54AaABAg
parentCommentIdtextThe comment this one answers; empty on a top-level comment.
ranknumberThe place of the comment in the order that was read, counting from 1.1
texttextThe comment text as the viewer wrote it.can confirm: he never gave us up
likeCountnumberLikes on the comment.321000
replyCountnumberHow many replies hang under the comment; zero on a reply itself.963
publishedTexttextHow long ago YouTube says the comment was written, for example "5 months ago".1 year ago
isOwnertrue/falseTrue when the comment comes from the channel that published the video.
isPinnedtrue/falseTrue when the channel pinned the comment to the top.True
hasCreatorHearttrue/falseTrue when the channel gave the comment a heart.
isReplytrue/falseTrue when the row is a reply instead of a top-level comment.False
commentUrltextA link that opens the video with this comment highlighted.https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dB...
{
"videoId": "dQw4w9WgXcQ",
"commentId": "Ugzge340dBgB75hWBm54AaABAg",
"parentCommentId": null,
"rank": 1,
"text": "can confirm: he never gave us up",
"likeCount": 314000,
"replyCount": 963,
"publishedText": "1 year ago",
"isOwner": false,
"isPinned": true,
"hasCreatorHeart": true,
"isReply": false,
"commentUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg",
"status": "ok"
}

A reply looks the same with isReply: true, parentCommentId set and rank empty. A video that yields nothing produces an error record instead, and is not charged:

{
"input": "aaaaaaaaaaa",
"status": "error",
"errorCode": "NO_COMMENTS",
"error": "Video aaaaaaaaaaa has no comment section (comments off or video unavailable)"
}

Error codes: INVALID_VIDEO_ID, NO_COMMENTS, BLOCKED. INPUT_TRUNCATED appears once when your input is longer than this actor accepts.

Pricing

Pay per event: one comment-listed event per delivered comment, replies included when you switch them on. No charge for videos that fail, no separate platform-usage surcharge. maxCommentsPerVideo (and maxRepliesPerComment) are your hard cost ceiling.

Free Apify plan: this actor delivers up to 25 rows per run for accounts on the Apify free plan, and then stops with a message. That limit is set by us, not by Apify. It exists so the actor keeps paying for itself for the people who do pay. Any paid Apify plan runs it at full size, billed per delivered row, with failed rows never charged.

Reviews: if this actor saves you time, a short review on this page is the one thing that helps most. Ratings are what other buyers look at first, and we have no other way to ask.

FAQ

Why is the like count rounded? YouTube shows "314K", not the exact figure, and the number is converted faithfully from what YouTube shows. Small counts are exact.

Why is a comment from a year ago first when I asked for newest? A pinned comment stays on top in both orders, exactly as on YouTube. isPinned tells you which one it is.

Do I get the total number of comments on the video? No; YouTube's mobile route does not carry it. Use the Video Details actor from the same publisher for counts.

Can I get the commenter's name if I really need it? No. That is the one thing this actor will not do, and the reason it exists.

Is personal data collected? Comment text is what people wrote in public and may itself mention a name; nothing about the commenter's identity is collected, and nothing is linked to a person.

What happens when YouTube changes something? Internal routes shift from time to time. The actor is monitored daily and fixed fast, and while it is broken you are not charged, because only delivered comments cost anything.