logo
EN

YouTube Comments Scraper

Collect public YouTube comments with commenter, engagement, video, and channel context from one or more video URLs.

Developer
YiJacobJohnRaku
Pricing
$0.0006 / record
Last updated
2026-10-10

Overview

Turn public YouTube conversations into a structured dataset without manually opening each video and copying comments one by one. For every available top-level comment, the result keeps the comment text together with its public author handle, engagement signals, and the video and channel context needed to interpret it.

This combination is useful when a research, marketing, support, or content team needs more than an isolated quote. It lets analysts connect what viewers said with the video they reacted to, distinguish creator participation from audience participation, and retain visible engagement snapshots for later comparison.

Data notes

The data comes from publicly accessible YouTube video pages and their visible comment sections. Each record represents one top-level comment. Comment ID identifies the comment, while Video ID and Video URL identify the video that received it. Reply Count reports the number of replies shown for that comment, but reply messages are not separate records in this dataset.

Comment Time preserves YouTube's displayed text and may be relative, such as “10 years ago,” rather than a normalized timestamp. Comment Like Count, Video Like Count, Video View Count, Video Comment Count, and Channel Subscribers are text snapshots observed at collection time and can change later. Channel-owner Comment, Creator Heart, and Comments Disabled are also supplied as source text rather than converted booleans. Private, removed, restricted, or comment-disabled videos may not provide comment records.

What the results look like

Each record represents one public top-level YouTube comment and its video context.

Comment IDComment textComment timeComment like countVideo titleChannel name
UgiH2bCFcyVmAHgCoAECWant to try it out :)10 years ago1What is web scraping - Octoparse, your first web scraper!Octoparse
UgxExampleComment002This walkthrough answered my setup question.2 years ago3What is web scraping - Octoparse, your first web scraper!Octoparse

Other available fields include Commenter Handle, Commenter Avatar URL, Reply Count, Creator Heart, Video ID, Video URL, Video Description, Video View Count, Video Like Count, Video Comment Count, Video Thumbnail URL, Channel Handle, Channel URL, Channel Avatar URL, and Channel Subscribers.

Use cases

  • For audience feedback analysis, group Comment Text by Video Title to identify recurring questions, objections, praise, and requests around each video.
  • For engagement review, compare Comment Like Count and Reply Count to find comments that generated the strongest visible reaction from other viewers.
  • For creator-community analysis, use Channel-owner Comment and Creator Heart to distinguish direct creator participation from ordinary audience discussion.
  • For channel research, combine Channel Name, Channel Subscribers, Video View Count, and Video Like Count to retain the public context surrounding each collected comment.

Scope and boundaries

Each run accepts 1 to 10,000 public YouTube video URLs; an optional limit can request 20 to 5,000 comments per video, while unavailable, private, restricted, or comment-disabled videos may return no comment records.

  • Good for
  • Use it when you need public comment text and engagement details for one or more YouTube videos.
  • Use it to study audience questions, reactions, recurring topics, or creator interaction around public videos.
  • Do not use for
  • Do not use it for private, removed, age-restricted, region-restricted, or otherwise inaccessible videos.
  • Do not use it when you need reply-thread records rather than top-level comment records.

Failure handling

Failure and retry behavior declared by the developer. We recommend including it in your system prompt when integrating.

  1. 1If a run fails, retry the same small URL set once; if it fails again, split a large batch into smaller groups.
  2. 2If no records are returned, confirm that the video is public, still available, and has comments enabled before retrying.

Input

Parameters required to call this App, generated from the input.schema in manifest.json.

  • YouTube video URLsvideo_urlsRequiredarray<string>
    Public YouTube video page URLs whose comments you want to collect. Provide between 1 and 10,000 URLs per run.
    Itemsup to 10000 itemsExample["https://www.youtube.com/watch?v=xBBAD407zzU"]
  • Comments per videocomment_limitOptionalinteger
    Maximum number of comments to request for each video, from 20 to 5,000. When omitted, the collector decides the limit; set it explicitly when predictable depth is important.
    Range20–5000

Output

Field structure of a single record, generated from the output.schema in manifest.json.

  • Channel avatar URLaccount_avatar_urlstring
    Image address for the channel avatar observed with the video.
    Examplehttps://yt3.ggpht.com/F2Tcm5xLoN764EY8s9e35Pn3FA--I-hVTIySlAJ8EQKp6--Je1KHMUbfVBGYJfrj45hgMM7mBnY=s48-c-k-c0x00ffffff-no-rj
  • Channel subscribersaccount_fans_countstring
    Subscriber-count text displayed for the video channel at collection time.
    Example12.5K
  • Channel URLaccount_home_urlstring
    YouTube channel page address associated with the video.
    Examplehttps://www.youtube.com/@Octoparsewebscraping
  • Channel handleaccount_idstring
    Channel identifier or handle associated with the video.
    Example@Octoparsewebscraping

Sample data

Generated from output.schema. Fields without a sample value use structural placeholders.

output.example
{
  "account_avatar_url": "https://yt3.ggpht.com/F2Tcm5xLoN764EY8s9e35Pn3FA--I-hVTIySlAJ8EQKp6--Je1KHMUbfVBGYJfrj45hgMM7mBnY=s48-c-k-c0x00ffffff-no-rj",
  "account_fans_count": "12.5K",
  "account_home_url": "https://www.youtube.com/@Octoparsewebscraping",
  "account_id": "@Octoparsewebscraping",
  "account_name": "Octoparse",
  "author_is_channel_owner": "false",
  "comment_count": "22",
  "comment_id": "UgiH2bCFcyVmAHgCoAEC",
  "comment_text": "Want to try it out :)",
  "comment_time": "10 years ago",
  "comment_type": "comment",
  "comment_user_avatar_url": "https://yt3.ggpht.com/ytc/AIdro_kgZ5qNQYtjliDe_8XSTjzgtZ-pVBvmRF57LzBS9U7xgg=s88-c-k-c0x00ffffff-no-rj",
  "comment_user_id": "@nanachoi9361",
  "comments_turned_off": "false",
  "content_id": "xBBAD407zzU",
  "content_text": "Subscribe and Visit Us https://www.octoparse.com\n✨What is a web crawler?\n✨How does a web crawler work?\n✨What are the differences between it and a web scraper?",
  "content_title": "What is web scraping - Octoparse, your first web scraper!",
  "content_url": "https://www.youtube.com/watch?v=xBBAD407zzU",
  "content_like_count": "44",
  "cover_image_url": "https://i.ytimg.com/vi/xBBAD407zzU/hqdefault.jpg",
  "has_creator_heart": "false",
  "keyword": "https://www.youtube.com/watch?v=xBBAD407zzU",
  "like_count": "1",
  "play_count": "103538",
  "reply_count": "0"
}

Integration

This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way. This App runs asynchronously and can be canceled midway: After you cancel, the run stops. Records already delivered are kept and billed.

With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.

Client config

Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.

mcpServers config
{
  "mcpServers": {
    "octoparse_datahub": {
      "type": "http",
      "url": "https://mcp-v2.octoparse.com?pin=YiJacobJohnRaku/youtube-comments-scraper",
      "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
    }
  }
}

Let AI set it up for you

Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)

detail.access.mcp.composeHint

Pricing

returned comment record

Charged by the number of records successfully returned. Failed runs are not charged.

$0.0006/ record

Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.

View credits

Try it now

Fill in the parameters and run. Results come from a real call.

Example
Parameters are validated against input.schema before submission
$0.0006 / record