YouTube Comments Scraper - Replies, Likes & Shorts avatar

YouTube Comments Scraper - Replies, Likes & Shorts

Pricing

from $0.50 / 1,000 results

Go to Apify Store
YouTube Comments Scraper - Replies, Likes & Shorts

YouTube Comments Scraper - Replies, Likes & Shorts

Scrape comments and replies from any YouTube video or Short: text, likes, reply counts, author channel, pinned and hearted flags, comment IDs and links. Sort by Top comments or Newest first, skip replies or stop at a date.

Pricing

from $0.50 / 1,000 results

Rating

4.8

(28)

Developer

Zebu Data

Zebu Data

Maintained by Community

Actor stats

30

Bookmarked

111

Total users

4

Monthly active users

19 days ago

Last modified

Share

What does YouTube Comments Scraper do?

YouTube Comments Scraper exports the comments and replies of any YouTube video or Short as clean, structured data: comment text, likes, reply count, author and channel, whether the creator pinned or hearted it, comment ID and a direct link, plus the video's exact like and comment counts. It works as an unofficial YouTube comments API alternative: no API key, no quota and no login.

Paste video links or video IDs, choose Top comments or Newest first, and download the results as JSON, CSV or Excel. Every comment and every reply is its own row, and each reply row also shows the comment it answers.

Why use YouTube Comments Scraper?

  • 💬 Comments and replies in one table: each comment is followed by its replies, oldest first. Filter type to get only comments or only replies.
  • 🔢 Numbers you can sort: likes, reply counts and the video's exact like and comment counts are numbers, not text.
  • 📌 Creator signals: see which comments the creator pinned or hearted, and which comments and replies come from the creator's own channel.
  • 🎛️ Same controls as YouTube: Sort by Top comments or Newest first, cap comments per video and replies per comment, skip replies entirely, or stop at a date to get only recent comments.
  • 🎬 Videos, Shorts and live replays: paste any video link, or just the video ID.
  • 🔗 IDs and links on every row: comment IDs, reply IDs, author channel IDs and a link that opens each comment on YouTube.

Popular use cases: sentiment analysis, audience and product research, community management, finding questions and feature requests, tracking reactions to a launch, influencer vetting, and building comment datasets for AI.

YouTube Comments ScraperYouTube Data APICopying by hand
API key / Google Cloud projectNot neededRequiredNot needed
Daily quotaNone10,000 units per day by default—
Pinned and hearted flagsYesNot availableYes, slowly
Export to CSV / Excel / JSONYesNeeds codeManual

What data can you extract?

Comment fields (on every row; on reply rows they describe the comment being replied to)

FieldDescriptionExample
typecomment or replycomment
comment_contentComment textSo happy to collab with small channels like Linus Tech Tips ...
comment_userComment author@BocaBola_
comment_like_countLikes (rounded like YouTube shows them above 1,000)14000
comment_reply_countNumber of replies119
comment_timePosting time as YouTube shows it6 days ago (edited)
comment_date_approxApproximate posting date2026-09-29
comment_is_pinnedPinned by the creatorfalse
comment_is_heartedHearted by the creatortrue
comment_author_is_creatorWritten by the video's own channelfalse
comment_author_is_verifiedAuthor has the verified badgetrue
comment_is_editedThe comment was editedtrue
comment_rankPosition in the Sort by order1
comment_idYouTube comment IDUgwuR991jUmcKQrNWhl4AaABAg
comment_urlOpens the video with this comment highlightedhttps://www.youtube.com/watch?v=y1hZ3EalPQU&lc=Ugwu...
comment_author_channel_id, comment_author_url, comment_author_avatar_urlAuthor's channel ID, link and profile pictureUCBur6ZOAqhjRs9PadDArozQ

Reply fields (filled on reply rows)

FieldDescriptionExample
reply_contentReply textheyo
reply_userReply author@rennohenno
reply_like_countLikes3
reply_time, reply_date_approxPosting time as shown, and approximate date6 days ago, 2026-09-29
reply_is_hearted, reply_author_is_creator, reply_author_is_verified, reply_is_editedCreator heart, written by the creator, verified author, editedfalse
reply_id, reply_urlReply ID (parent comment ID, a dot, then the reply's ID) and linkUgwuR991jUmcKQrNWhl4AaABAg.AbJNy82gG6tAbJO-A3eHWX
reply_author_channel_id, reply_author_url, reply_author_avatar_urlAuthor's channel ID, link and profile pictureUCezkU2pwg8bR5jUsZSHTmew

Video fields (on every row)

FieldDescriptionExample
video_titleVideo titleI Found these Computers in a Ditch…
video_url, video_idVideo link from your input and video IDhttps://www.youtube.com/watch?v=y1hZ3EalPQU
post_like_countExact like count of the video41729
post_comment_countExact number of comments on the video2753
crawl_timeWhen the row was scraped (GMT)Mon, 05 Oct 2026 09:49:20 GMT

How to scrape YouTube comments

  1. Click Try for free on this page and sign in to Apify (a free account is enough).
  2. In YouTube video links, paste video or Shorts links, or video IDs, one per line.
  3. Set Max top-level comments per video and Max replies per comment, and pick Sort by.
  4. Click Start. The log shows each page of comments as it's scraped.
  5. Download the results as JSON, CSV, Excel or HTML, or get them through the API.

How much does it cost to scrape YouTube comments?

You only pay for the rows you get: each comment and each reply is one row. See the Pricing tab for the current price.

To keep a run within budget:

  • Set Max top-level comments per video and Max replies per comment, or turn off Include replies.
  • Set a Max cost per run in the run options. The Actor stops as soon as the limit is reached.

New to Apify? The free plan includes monthly platform credit, so you can try this Actor at no cost.

Input

FieldTypeDefaultDescription
YouTube video links (urls)List—Video, Shorts or live links, or video IDs, one per line. Required.
Max top-level comments per video (max_comments)Number0 (all)How many top-level comments to take from each video, in the Sort by order.
Max replies per comment (max_replies)Number0 (all)How many replies to take for each comment. Replies come oldest first, so a limit keeps the earliest ones.
Include replies (include_replies)CheckboxtrueTurn off to get only top-level comments.
Sort by (sort_by)Selecttoptop (Top comments) or newest (Newest first), like the menu above the comments on YouTube.
Comments published after (comments_published_after)Date or period—Only comments posted on or after this date, e.g. 2026-10-01 or 7 days. Scrapes by Newest first.

The 100 top comments of a video, with up to 5 replies each

{
"urls": ["https://www.youtube.com/watch?v=y1hZ3EalPQU"],
"max_comments": 100,
"max_replies": 5
}

Only top-level comments from several videos and Shorts

{
"urls": ["dQw4w9WgXcQ", "https://www.youtube.com/shorts/CEJXqm2eiJ0"],
"max_comments": 500,
"include_replies": false
}

Everything posted in the last 7 days

{
"urls": ["https://www.youtube.com/watch?v=y1hZ3EalPQU"],
"comments_published_after": "7 days"
}

Output

Each comment and each reply is one item in the dataset. Comments follow the Sort by order, and each comment is followed by its replies, oldest first. Here is a real comment row (avatar link shortened):

{
"video_url": "https://www.youtube.com/watch?v=y1hZ3EalPQU",
"post_like_count": 41729,
"post_comment_count": 2753,
"comment_user": "@BocaBola_",
"comment_content": "So happy to collab with small channels like Linus Tech Tips\n\nPS: I also cringe everytime Linus calls me BocaBola",
"comment_time": "6 days ago (edited)",
"comment_like_count": 14000, // Rounded like YouTube shows it (14K)
"comment_reply_count": 119,
"reply_user": null, // The reply_* fields are filled on reply rows
"reply_content": null,
"reply_time": null,
"reply_like_count": null,
"crawl_time": "Mon, 05 Oct 2026 09:49:20 GMT",
"type": "comment",
"video_id": "y1hZ3EalPQU",
"video_title": "I Found these Computers in a Ditch…",
"comment_rank": 1,
"comment_id": "UgwuR991jUmcKQrNWhl4AaABAg",
"comment_url": "https://www.youtube.com/watch?v=y1hZ3EalPQU&lc=UgwuR991jUmcKQrNWhl4AaABAg",
"comment_author_channel_id": "UCBur6ZOAqhjRs9PadDArozQ",
"comment_author_url": "https://www.youtube.com/@BocaBola_",
"comment_author_avatar_url": "https://yt3.ggpht.com/W06WOQyhTCE4KMf9wCvQnpcrp_...",
"comment_author_is_verified": true,
"comment_author_is_creator": false,
"comment_is_pinned": false,
"comment_is_hearted": true,
"comment_is_edited": true,
"comment_date_approx": "2026-09-29",
"reply_id": null,
"reply_url": null,
"reply_author_channel_id": null,
"reply_author_url": null,
"reply_author_avatar_url": null,
"reply_author_is_verified": null,
"reply_author_is_creator": null,
"reply_is_hearted": null,
"reply_is_edited": null,
"reply_date_approx": null
}

The next row is one of its replies: the same video and comment fields, with the reply filled in:

{
"type": "reply",
"comment_id": "UgwuR991jUmcKQrNWhl4AaABAg",
"reply_user": "@rennohenno",
"reply_content": "heyo",
"reply_time": "6 days ago",
"reply_like_count": 3,
"reply_id": "UgwuR991jUmcKQrNWhl4AaABAg.AbJNy82gG6tAbJO-A3eHWX",
"reply_url": "https://www.youtube.com/watch?v=y1hZ3EalPQU&lc=UgwuR991jUmcKQrNWhl4AaABAg.AbJNy82gG6tAbJO-A3eHWX",
"reply_author_channel_id": "UCezkU2pwg8bR5jUsZSHTmew",
"reply_author_url": "https://www.youtube.com/@rennohenno",
"reply_author_is_verified": false,
"reply_author_is_creator": false,
"reply_is_hearted": false,
"reply_is_edited": false,
"reply_date_approx": "2026-09-29"
}

Tips and limitations

  • One row per comment or reply: filter type = comment for top-level comments only. Reply rows repeat their parent comment, so you can read each conversation without joining tables.
  • Like counts above 1,000 are rounded the way YouTube shows them (14K becomes 14000). Smaller counts are exact.
  • Dates: YouTube shows relative times such as "6 days ago". comment_date_approx is worked out from that and crawl_time: exact for recent comments, only the month or year for older ones.
  • Get only new comments: set Comments published after (for example 1 day) and schedule the run daily. The pinned comment is skipped if it is older.
  • Big videos: videos with tens of thousands of comments take a while. Set Max top-level comments per video to get a sample quickly.
  • Comments turned off: the video is skipped and the status message says so. YouTube shows the same message when a video can't be played in the United States, where the Actor runs.
  • Need the video's full stats, all videos of a channel, or videos for a keyword? See the related Actors below.

FAQ

This Actor only collects data that YouTube shows publicly. Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Do I need a YouTube API key or account?

No. Paste the video links and start the run.

Is one row the same as one comment?

Yes. Every comment and every reply is its own row, and type tells you which is which.

Why are the replies in a different order than on YouTube?

The Actor returns each comment's replies in the order they were posted, oldest first. On its website, YouTube groups replies into conversations (a reply to a reply is shown under it) and puts those conversations in its own order, which can differ from viewer to viewer. With Max replies per comment set to 0 you get every reply, just in posting order; with a limit you get the earliest replies. A reply that answers another reply usually starts with that person's @handle.

Can I scrape comments from YouTube Shorts?

Yes. Paste the Shorts link (or its video ID) like any other video.

Why did I get fewer comments than the video shows?

The comment count YouTube shows can include comments that are held for review, removed or hidden by YouTube, so the number you can scrape is usually a little lower. Your limits, Include replies and Comments published after also reduce the number of rows.

Can I use it through the API or with AI agents?

Yes. You can run it with the Apify API, the Python and JavaScript clients, integrations such as Make, Zapier and n8n, or the Apify MCP server for AI agents. Set the limits so an agent always gets a predictable number of rows.

ActorWhat it does
YouTube Transcript Scraper - Subtitles & Captions APITranscripts and subtitles of any video, in every language it has
YouTube Video Details Scraper - Views, Likes & Channel StatsFull details of any list of video links
YouTube Channel Scraper - All Videos, Views & DatesEvery video, Short and live stream of a channel
YouTube Search Scraper - Videos & Shorts by KeywordVideos that match a search term

Support

Found a problem or need another field? Open an issue in the Issues tab and we'll get back to you.