YouTube Comments Scraper (with Replies) avatar

YouTube Comments Scraper (with Replies)

Pricing

from $2.00 / 1,000 scraped comments

Go to Apify Store
YouTube Comments Scraper (with Replies)

YouTube Comments Scraper (with Replies)

Extract comments and replies from YouTube videos by URL or ID. Returns author, text, likes, reply count, timestamps, pinned/hearted status. MCP/API-ready.

Pricing

from $2.00 / 1,000 scraped comments

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

22

Total users

1

Monthly active users

7 days ago

Last modified

Share

Extract YouTube Comments & Replies — No API Key

This Apify Actor is built for analysts, researchers, and automation workflows that need structured YouTube comment data from public videos. It accepts either full YouTube video URLs or bare 11-character video IDs, and it can process multiple videos in one run. Each output record represents one comment or reply, with fields such as author name, comment text, like count, reply count, relative publish time, pinned status, hearted status, and the source video reference. The result is a dataset you can export, read through the Apify API, or use from Apify MCP.

Best fit and connected workflows

This Actor fits workflows centered on comment-level analysis from public YouTube videos, especially when you need clean records for AI, reporting, or enrichment.

Common routing patterns include:

  • Video research workflows that start from a list of YouTube URLs or IDs and need comment text plus metadata.
  • Social listening workflows that review likes, replies, pinned comments, and creator hearts across several videos.
  • AI and automation workflows that consume structured comment records through Apify API or Apify MCP.
  • Multi-video collection jobs where each comment record keeps its source video ID and source URL for traceability.

Focused standalone workflow

Extract YouTube Comments & Replies — No API Key is designed as a focused standalone workflow.

Example scenario

Maya is preparing a content brief for a product tutorial video. She already has the video URL and wants to understand what viewers are asking in the comments. She runs this Actor with the video URL, a moderate comment cap, and replies enabled. The dataset returns author names, comment text, like counts, reply counts, pinned status, hearted status, and relative timestamps. Maya uses those fields to identify repeated questions, then drafts follow-up topics for the next video.

Input

FieldTypePurposeNotes
startUrlsarrayYouTube video URLsUse for full URLs, short links, and Shorts URLs. Multiple URLs are supported.
videoIdsarrayBare YouTube video IDsUse for 11-character video IDs. Multiple IDs are supported.
maxCommentsintegerMaximum comments per videoMinimum 1, maximum 10000. Replies count toward this total when included.
includeRepliesbooleanInclude reply commentsWhen enabled, reply comments are collected under top-level comments.

Valid focused JSON example

{
"startUrls": [
{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
],
"videoIds": [
"dQw4w9WgXcQ"
],
"maxComments": 250,
"includeReplies": true
}

Output

Each dataset record represents one scraped comment or reply. The dataset schema includes identifiers for the source video and comment, author details, engagement signals, reply structure, timestamps, and provenance fields.

FieldTypePurpose
video_idstringYouTube video ID for the source video.
video_titlestring or nullTitle of the source video when available.
video_urlstringFull URL of the source video.
comment_idstring or nullUnique identifier for the comment.
comment_textstring or nullFull comment text.
author_namestring or nullDisplay name of the commenter.
author_channel_urlstring or nullURL of the author channel.
author_channel_idstring or nullInternal YouTube channel ID for the author.
like_countinteger or nullNumber of likes on the comment.
reply_countinteger or nullNumber of replies on a top-level comment.
is_replybooleanTrue for reply comments.
parent_comment_idstring or nullParent comment ID for replies.
published_atstring or nullRelative timestamp shown by YouTube.
is_pinnedbooleanTrue when the creator pinned the comment.
is_heartedbooleanTrue when the creator hearted the comment.
scraped_atstringISO 8601 timestamp of when the record was scraped.
source_urlstringExact YouTube video URL used for the scrape.

Illustrative JSON record

{
"video_id": "dQw4w9WgXcQ",
"video_title": "Rick Astley - Never Gonna Give You Up (Official Music Video)",
"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"comment_id": "UgxK8eTB1234abcdefg",
"comment_text": "This song is a timeless classic. Never gets old!",
"author_name": "John Doe",
"author_channel_url": "https://www.youtube.com/@johndoe",
"author_channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"like_count": 142,
"reply_count": 5,
"is_reply": false,
"parent_comment_id": null,
"published_at": "3 months ago",
"is_pinned": false,
"is_hearted": false,
"scraped_at": "2026-04-09T12:00:00.000Z",
"source_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}

How it works

This Actor opens YouTube video pages in a browser context and uses YouTube InnerTube API calls from that context to collect comments and reply threads. The current contract states that it supports multi-video input, reply threading, and pagination through continuation tokens. The dataset output keeps source references so each comment can be tied back to the originating video.

The live contract also shows a soft-fail validation behavior for invalid or empty inputs, which ends the run with a terminal warning status and preserves the run as successful.

Pricing

Extract YouTube Comments & Replies — No API Key uses Pay per event pricing on the Apify platform. Pricing includes a small Actor start event plus per-comment events, and Apify platform usage is charged separately according to the live Pricing tab in the Apify Store.

The charged events are:

  • Actor start: charged once when the Actor starts, based on allocated memory
  • Scraped comment: charged for each comment scraped, including replies when replies are enabled

For example, a run that scrapes one hundred comments generates one hundred scraped-comment events, plus one Actor start event. For current charge details and platform usage information, review the live Pricing tab before running.

Use with AI agents (MCP)

This Actor is usable through Apify MCP as a structured comment-scraping tool for public YouTube videos. The exact Actor identity is khadinakbar/youtube-comments-scraper.

A practical MCP prompt might look like this:

Extract comments from these public YouTube videos, keep replies enabled, and return author names, comment text, likes, reply counts, pinned status, hearted status, and source URLs for each record.

Output interpretation is straightforward: each dataset item is one comment or reply, and the fields include enough provenance to map each record back to the source video. The is_reply and parent_comment_id fields show reply structure, while video_id, video_url, and source_url preserve the source context. Pagination is handled by the Actor, and each additional comment or reply adds to the per-event charge described in Pricing.

Run it with the Apify API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/youtube-comments-scraper').call({
startUrls: [
{ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' }
],
maxComments: 50,
includeReplies: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use direct video URLs when you already have links, and use bare video IDs when your source list is just IDs. If you want a broader view of the conversation, enable replies. If you need a tighter top-level summary, keep replies off and focus on comment_text, like_count, and reply_count. For multi-video jobs, keep each input item separate so the resulting dataset preserves source context across videos.

Focused standalone workflow

🎯 Extract YouTube Comments & Replies — No API Key is designed as a focused standalone workflow for the public input and structured output contract described above.

Design note

I found that the output contract always includes video_id, video_url, is_reply, is_pinned, is_hearted, scraped_at, and source_url as required fields. That visible contract fact makes provenance and comment-type handling consistent across every record.

FAQ

When should I use startUrls instead of videoIds?

Use startUrls when you have full YouTube links, including standard watch URLs, short links, or Shorts URLs. Use videoIds when your source data contains bare 11-character video IDs.

Can one run process several videos?

Yes. Both startUrls and videoIds accept multiple entries, so one run can collect comments from more than one video.

What fields are most useful for comment review?

comment_text, author_name, like_count, reply_count, is_reply, is_pinned, is_hearted, and published_at are the most direct review fields. video_title and source_url help keep records organized across videos.

Is this Actor usable from Apify MCP?

Yes. The live contract identifies it as MCP-ready, and it can be used as an Apify Actor through MCP tooling.

How are replies represented?

Replies appear as separate records with is_reply set to true and parent_comment_id pointing to the parent comment when available. Top-level comments have is_reply set to false.

Where can I find the live pricing details?

Use the Pricing tab in the Apify Store page for the current Pay per event setup and platform usage information.

Responsible use

YouTube is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by YouTube.

Use this Actor for public YouTube content and follow applicable laws, platform terms, and data protection rules for your use case.