YouTube Comments Scraper - Fast & Cheap avatar

YouTube Comments Scraper - Fast & Cheap

Pricing

from $0.50 / 1,000 comment scrapeds

Go to Apify Store
YouTube Comments Scraper - Fast & Cheap

YouTube Comments Scraper - Fast & Cheap

Exports the comments of any YouTube video as clean rows: author, text, likes, reply count, date, pinned and verified flags, with optional replies. Top or newest first. No browser, no API key, no quota. $0.0005 per comment; new comments flagged on scheduled runs.

Pricing

from $0.50 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Antonio del Olmo Tena

Antonio del Olmo Tena

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get the comments of any YouTube video as clean, structured rows. Paste video URLs or ids and the Actor returns one row per comment with author, text, likes, reply count, date, pinned, creator and verified flags, and optionally the replies of each comment. Choose YouTube's top ranking or newest first, and schedule it to catch new comments as they arrive.

No browser, no proxies on your side, no YouTube API key and no daily quota: the Actor reads the same internal endpoints the YouTube website uses, so it is fast and cheap. You pay $0.0005 per comment returned.

What you get

One Dataset row per comment:

  • text, url (direct link to the comment), id.
  • authorName, authorChannelId, authorUrl, authorAvatarUrl, isVerified, isCreator (comment by the video's own channel).
  • likes and likesText, replyCount, isPinned, isHearted (hearted by the creator).
  • publishedText (YouTube's relative date such as 1 year ago) and publishedAt, an approximate ISO date computed from it.
  • parentId: for replies, the id of the comment they answer; null for top-level comments.
  • video, videoId, videoTitle, channelName: the video the comment belongs to.
  • isNew: true when the comment was not in the previous run of that video.

A video that does not exist, is private, or has comments turned off produces no comment rows and is not charged (an unavailable video gives a single row with an error field).

How to use it

  1. Open the Input tab.
  2. In Videos paste one video per line: https://www.youtube.com/watch?v=dQw4w9WgXcQ, https://youtu.be/dQw4w9WgXcQ or just dQw4w9WgXcQ.
  3. Pick the Order: top comments (YouTube's ranking) or newest first.
  4. Set Max comments per video (default 200) and switch on Include replies if you want the full threads.
  5. Click Start. Read the rows in Output or export them as JSON, CSV or Excel.
  6. To monitor a video, schedule the Actor with the order set to newest. Every run compares with the previous one and new comments come with isNew: true. Connect a webhook or an email integration to be notified.

Input

{
"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"sortBy": "top",
"maxComments": 200,
"includeReplies": false
}
FieldDescription
videosVideo URLs or ids. Up to 50 per run.
sortBytop (default) or newest.
maxCommentsPer video, 1 to 5,000. Replies count toward it when included. Default 200.
includeRepliesAlso fetches each comment's replies, with parentId set. Default off.

Output example

{
"video": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"videoTitle": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"id": "Ugzge340dBgB75hWBm54AaABAg",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg",
"text": "can confirm: he never gave us up",
"authorName": "@YouTube",
"authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ",
"authorUrl": "https://www.youtube.com/@YouTube",
"authorAvatarUrl": "https://yt3.ggpht.com/...",
"isVerified": true,
"isCreator": false,
"isPinned": true,
"isHearted": true,
"likes": 323000,
"likesText": "323K",
"replyCount": 962,
"publishedText": "1 year ago",
"publishedAt": "2025-10-04T09:30:00.000Z",
"parentId": null,
"isNew": false,
"timestamp": "2026-10-04T09:30:00.000Z"
}

Pricing

Pay per event, no subscription:

  • Comment scraped: $0.0005 per comment row. 1,000 comments cost $0.50.
  • New comment: $0.001 per comment flagged as new in a scheduled run. Runs with nothing new only pay for the rows.

Videos that cannot be read are free. Compare with typical YouTube comment scrapers at $0.0009 to $0.005 per comment.

Use it as an API

Run it from your code with the Apify API or client libraries:

curl -X POST "https://api.apify.com/v2/acts/aolmo~youtube-comments/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"videos": ["dQw4w9WgXcQ"], "maxComments": 500, "sortBy": "newest"}'

The response is the list of comment rows. You can also call it from AI agents through the Apify MCP server. For the videos of a channel use aolmo/youtube-videos, and for transcripts aolmo/youtube-transcript.

FAQ

Are the like counts exact? YouTube shows rounded figures for large numbers (323K), and likes is the rounded number. Small counts are exact.

How precise is publishedAt? It is computed from YouTube's relative text, so 2 days ago becomes a timestamp two days before the run. Use it for ordering and filtering, not as the exact posting time.

Can I get all comments of a very popular video? Up to 5,000 per video per run. Comments are read in pages of 20, so 5,000 comments take about 250 requests.

What about the replies? Switch on Include replies: each thread with replies costs one extra request, and the replies come right after their parent with parentId set.

Where is the data stored between runs? In a Key-Value Store of your account named micro-saas-state-youtube-comments, one key per video. Delete it to start fresh.