Youtube Comments [$0.4💰] Scraper [with replies] avatar

Youtube Comments [$0.4💰] Scraper [with replies]

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Youtube Comments [$0.4💰] Scraper [with replies]

Youtube Comments [$0.4💰] Scraper [with replies]

💰 $0.4 per 1,000 comments – No limits, no quotas, unlimited extraction. Extract YouTube comments from any video with full comment text, reply threads, author details, vote counts, posting dates, and video metadata. Download in JSON, CSV, and Excel.

Pricing

from $0.40 / 1,000 results

Rating

5.0

(12)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

8

Bookmarked

127

Total users

6

Monthly active users

0.78 hours

Issues response

12 hours ago

Last modified

Categories

Share

YouTube Comments Scraper

Overview

Dive deep into audience engagement and sentiment analysis with our YouTube Comments Scraper! Extract valuable insights from video comments, including user reactions, discussions, and feedback. Perfect for content creators, marketers, and researchers looking to understand their audience better.

Explore More Scrapers

If you found this YouTube Comments Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.

How it works

This actor allows you to scrape comments from YouTube videos, extracting important details such as the comment text, author information, engagement metrics, and more. It provides valuable insights into audience reactions and discussions around specific videos or channels.

Features

  • Single or Multiple Video Scraping: Supports scraping comments from one or multiple YouTube video URLs.
  • Detailed Comment Information: Extracts comprehensive data about each comment, including unique identifiers, author details, and engagement metrics.
  • Sort Order: Choose YouTube's own "Top comments" ranking or strict "Newest first" ordering.
  • Date Filtering: Keep only comments published after a date you set — and under "Newest first" the run stops paging the moment it reaches older comments, instead of reading the whole comment section.
  • Reply Tracking: Identifies and links reply comments to their parent comments.
  • Engagement Metrics: Captures vote counts and reply counts for each comment.
  • Author Information: Retrieves non-sensitive author details like username and channel ownership status.
  • Customizable: Flexible configuration options to suit various scraping needs.

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Configure Input: Set the YouTube video URL(s) you want to scrape comments from (see Input Data section).
  3. (Optional) Set Max Items to limit the number of comments to scrape. Note: accounts on the Apify free plan are limited to 30 comments per run; any paid Apify plan removes this limit.
  4. (Optional) Set Sort comments by to "Top comments" or "Newest first". Leave it empty and the actor picks for you.
  5. (Optional) Set Oldest comment date to keep only recent comments — an ISO date (2026-01-31) or a span (3 days, 6 months).
  6. (Optional) Configure proxy settings for enhanced reliability and to avoid potential IP blocks.
  7. Run the Scraper: Execute the scraper on the Apify platform.
  8. Data Collection: The scraper will output data in your chosen format, which can include JSON, CSV, or others as supported by Apify.

Input Configuration

Here's an example of how to set up the input for the YouTube Comments Scraper:

{
"startUrls": [
{
"url": "https://www.youtube.com/watch?v=o72NpKj0nxw"
}
],
"maxItems": 1000,
"sortCommentsBy": "newest",
"oldestCommentDate": "3 months",
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 10,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Sorting and date filtering

  • sortCommentsBy"top" (YouTube's relevance ranking) or "newest" (strictly newest to oldest). Leave it out entirely and the actor asks for no order at all: YouTube serves the comment section as it would to a visitor, which is normally its Top ranking. The one exception is oldestCommentDate — set that without a sort and the actor picks "newest", so the crawl can stop at the cutoff.

  • oldestCommentDate — keep only comments published on or after this point. Accepts an ISO date (2026-01-31, 2026-01-31T08:30:00Z) or a relative span (3 days, 2 weeks, 6 months). An unreadable value fails the run rather than being ignored.

    The filter is approximate on purpose. YouTube publishes no exact comment timestamp — only a rounded age such as "2 weeks ago" — so a comment is only ever known to a bucket, and the filter takes the inclusive edge of that bucket so nothing that might fall inside your range is dropped. Each row carries publishedAtApprox (ISO) next to the original publishedTimeText.

    Note that the pinned comment is returned first by YouTube whatever its age, so under "newest" the first row can be older than the rest. Replies are kept or dropped with their parent comment, never on their own date, so a kept thread always arrives whole — and those replies count towards maxItems like any other row.

    Under "top" the ranking is not chronological, so there is no point at which the rest of the section is guaranteed older and the crawl has nothing to stop at. It reads on under a budget (20 comments read per item requested, at least 1,000) and, if that runs out, ends with the reason and the fix in the run's status message. "newest" is the input that makes a date filter cheap.

Output Structure

The output data typically includes:

{
"comment": "0l9",
"cid": "Ugy9D_h58HxTs5o0z1Z4AaABAg",
"author": "@jenadkins",
"videoId": "",
"pageUrl": "https://www.youtube.com/watch?v=undefined",
"commentsCount": 0,
"replyCount": 0,
"voteCount": 0,
"authorIsChannelOwner": false,
"hasCreatorHeart": false,
"type": "comment",
"replyToCid": null,
"publishedTimeText": "1 year ago",
"publishedAtApprox": "2025-09-09T12:00:00.000Z"
}

Output Fields Explanation

  • comment: The text content of the comment.
  • cid: Unique identifier for the comment.
  • author: The username of the comment author.
  • videoId: The ID of the YouTube video (if available).
  • pageUrl: The URL of the video page.
  • commentsCount: Total number of comments on the video (if available).
  • replyCount: Number of replies to this comment.
  • voteCount: Number of votes (likes) on the comment.
  • authorIsChannelOwner: Boolean indicating if the comment author is the channel owner.
  • hasCreatorHeart: Boolean indicating if the comment has been hearted by the creator.
  • type: Type of the item (e.g., "comment" or "reply").
  • replyToCid: The CID of the parent comment if this is a reply.
  • publishedTimeText: When the comment was published, exactly as YouTube words it ("1 year ago", "3 days ago (edited)"). This is the only date YouTube publishes.
  • publishedAtApprox: The same value read as an ISO timestamp, or null when the wording could not be read. Approximate — see Sorting and date filtering above.

Support

Additional Services

🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/youtube-comments-scraper).

Purpose: extract all comments and replies from one or more YouTube videos into flat JSON rows, with author, engagement metrics, and reply-to-parent threading.

Minimal input:

{ "startUrls": [{ "url": "https://www.youtube.com/watch?v=o72NpKj0nxw" }], "maxItems": 50 }

Output: one dataset row per comment or reply — comment (text), cid (unique comment id), author, videoId, pageUrl, commentsCount, replyCount, voteCount, authorIsChannelOwner, hasCreatorHeart, type (comment | reply), replyToCid (parent comment's cid for replies), publishedTimeText (relative, e.g. "1 year ago" — the only date YouTube publishes) and publishedAtApprox (that value as an ISO timestamp, approximate, null when unreadable).

Behaviors an agent should know:

  • startUrls is required — each entry is a { "url": "…" } object naming ONE video: a watch?v= URL, a youtu.be/ link, or a /shorts/, /live/ or /embed/ link, which are normalized for you. Pass several to scrape multiple videos in one run. Channel, playlist and search URLs have no comment section of their own; they are skipped with a note in the log, and a run with nothing else fails and says so.
  • Always set maxItems (default 100, minimum 1) — popular videos can carry hundreds of thousands of comments. It counts rows that reach the dataset, replies included.
  • Replies come back as their own rows with type: "reply" and replyToCid pointing at the parent comment's cid; top-level rows have type: "comment".
  • sortCommentsBy is "top" or "newest"; omit it and the actor requests no order, leaving YouTube's own (normally Top) — except when oldestCommentDate is set, where it picks "newest".
  • oldestCommentDate takes an ISO date or a span ("3 days", "6 months") and keeps only top-level comments at least that recent. It is bucket-accurate, not exact — YouTube publishes no comment timestamp — and never drops a comment that might be in range. Combine it with "newest" to make the run stop at the cutoff instead of reading on under a budget. Replies follow their parent, so kept threads arrive whole whatever the age of the individual replies.
  • maxConcurrency (default 10, 1–100), minConcurrency (default 1, 1–100), and maxRequestRetries (default 3, 0–20) tune throughput and retry resilience.
  • Built-in residential proxy is on by default, on every plan. Set proxy only to override it — your own proxyUrls, or an apifyProxyGroups/apifyProxyCountry selection when you need exits in a particular place; that replaces the built-in pool for every request and is billed to your account. Choosing Apify Proxy with no group and no country is not an override. Public comment data only — no login, and no age-restricted or private content.
  • Pay-per-event billing — see the Pricing tab on the actor page.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google LLC. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available YouTube comment data that any visitor can view — no authenticated endpoints, no age-restricted or private content, and nothing behind the YouTube login. Users are responsible for ensuring their use complies with YouTube's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.

SEO Keywords

YouTube comments scraper, scrape YouTube comments, YouTube comment scraper, YouTube comments API, youtube.com scraper, Apify YouTube, YouTube reply scraper, video comments scraper, comment extractor, youtube engagement data, audience sentiment analysis, comment sentiment data, youtube audience insights, social media comments scraper, youtube data export, content creator analytics, video engagement metrics, youtube comment export, social listening data, youtube marketing research