YouTube Comments Scraper avatar

YouTube Comments Scraper

Pricing

from $0.29 / 1,000 comment records

Go to Apify Store
YouTube Comments Scraper

YouTube Comments Scraper

Public YouTube comments scraper — one typed, null-safe row per comment with author, text, likes, replies and timestamp. Search mode finds the videos to pull comments from. No API key, no login.

Pricing

from $0.29 / 1,000 comment records

Rating

0.0

(0)

Developer

Leonardo Santos

Leonardo Santos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Public YouTube comments in one typed, null-safe dataset: give it a video URL and get the comment threads — author, text, likes, replies and timestamp, each as a clean JSON row that maps directly onto YouTube's own public vocabulary (commentId, videoId, publishedAt, …). A search mode finds the videos to pull comments from. No API key, no login, no download.

Why this actor?

  • Comments as data, not HTML — every comment is a typed row: commentId, author, text, likeCount, replyCount, publishedAt plus the parent video's title, channel and URL. No DOM scraping, no selectors to break.
  • Typed, null-safe flat rows — absent optional fields are explicit null, never dropped rows or crashes. *Count fields are integers, not "1.2K" strings.
  • Price at the floor — pay per comment (or per search video), and the platform usage is on us; there is no compute bill on top.
  • Self-discoveringsearch mode returns the top matching videos so you can pick which videos to pull comments from, then detail does the rest.
  • No upstream cost — the public comments surface needs no key and no per-comment fee; you pay only for the delivered, typed rows.

Input

{
"mode": "detail",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"maxResults": 50
}

mode is required — detail (comments for one video) or search (video rows for a keyword). videoUrl (URL or bare 11-char id) or query are required for their mode. maxResults (default 50, hard cap 100) is the total row budget and is enforced locally — in detail mode it is the number of top-level comments; replies are counted, not enumerated, in v1.

Output

One row per comment (detail) or per video (search); recordType discriminates the two:

{
"recordType": "comment",
"commentId": "Ugx…",
"author": "Alice",
"authorChannelId": "UC…",
"text": "Great video! Learned a lot.",
"likeCount": 1200,
"replyCount": 15,
"videoTitle": "Never Gonna Give You Up",
"videoId": "dQw4w9WgXcQ",
"videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"channelName": "Rick Astley",
"publishedAt": "2026-09-04T…Z",
"error": null,
"scraped_at": "2026-09-06T…Z"
}

Search rows carry the video shape instead (recordType: "video", videoTitle, viewCount, durationSeconds). Dataset views (comments, videos) split the two shapes for you.

Pricing

Pricing

Pay per event, and the platform usage is on us — the price you see is the price you pay, with no compute bill on top.

EventPriceWhat one charge buys
Comment record$0.00045Charged once per delivered public comment row (detail mode; one dataset row per top-level comment). Rows are charged only after they are pushed to the dataset; a missing or invalid mode/videoUrl, a video with no reachable comments, an empty search, and an upstream bot-wall/5xx/timeout are free error items and never charged.
Video record$0.00045Charged once per delivered public video row (search mode; one dataset row per search result). Rows are charged only after they are pushed to the dataset; errors are free.
Actor Start$0.002One run, whatever it returns.

Higher Apify subscription tiers pay less on every event (Silver −20%, Gold −35%).

Use cases

  • Engagement research — how do viewers react to a launch video? Pull the comments with likes and timestamps, no login needed.
  • Community analysis — topics, sentiment and repeat commenters across your own or competitors' video libraries.
  • Content repurposing — mine the questions and corrections in the comments of a video to drive follow-up content.
  • LLM/MCP tooling — clean, typed JSON with YouTube-native field names; no scraping or parsing the site yourself.

FAQ

Does this actor need an API key or login? No. It reads YouTube's public comments surface; there is no upstream cost. (Reachability from datacenter IPs is gated on an on-platform probe before this actor goes live.)

Which comments does detail return? Top-level comment threads — one row per thread, newest first as YouTube serves them. Each row carries the thread's public reply count; enumerating replies is not part of v1.

How many rows can I get? Up to maxResults (default 50, hard cap 100). The cap is enforced locally before/instead of trusting upstream, so you are never billed for more than you asked for.

What is a "record" for billing? One dataset row — one comment (detail mode) or one search video (search mode), each a separate PPE event.

What happens when nothing matches? A video with no reachable comments, a search that matches nothing, a missing mode, or an upstream bot-wall becomes a free error item with the message in the error field — never a charged empty success.

Is this personal data? No. Only public comment fields the author chose to publish — display name, channel id, text, counts and timestamp. No email, no contact, no account-level data.


This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by YouTube or Google LLC. It reads only public comments and video metadata.