YouTube Comments Scraper: Comments, Replies & Likes avatar

YouTube Comments Scraper: Comments, Replies & Likes

Pricing

$0.50 / 1,000 comments

Go to Apify Store
YouTube Comments Scraper: Comments, Replies & Likes

YouTube Comments Scraper: Comments, Replies & Likes

Scrape comments and replies from YouTube videos, Shorts, playlists and channels: text, author, likes, reply count, creator hearts and date. Sort by top or newest, set a limit per video. No API key or login. $0.50 per 1,000 comments.

Pricing

$0.50 / 1,000 comments

Rating

0.0

(0)

Developer

Santiago Marcos

Santiago Marcos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Security

Limited permissions

Share

YouTube Comments Scraper: comments, replies and likes

Scrape the comments of any YouTube video, Short or live replay, or of the videos in a playlist or channel. Paste links and get one row per comment with:

  • the comment text, its link and its ID,
  • the author: name, channel ID and URL, avatar, verified badge, and whether it's the video's own creator,
  • likes, reply count and whether the creator hearted it,
  • when it was posted (YouTube's "3 weeks ago" plus an approximate date) and whether it was edited,
  • optionally the replies, as their own rows linked to the parent comment.

No YouTube API key, no Google account, no browser, no quota. The actor's event fee applies only to comments you get.

Why this one

  • $0.50 per 1,000 comments, proxies included.
  • Top or newest. Take YouTube's top comments, or sort newest first to track what people are saying right now.
  • Replies when you want them. Off by default to keep runs cheap; turn them on and set a cap per comment.
  • A limit per video, so 50 videos × 200 comments is one run with a predictable cost.
  • No charge for failures. Videos with comments turned off, private or removed videos and invalid links are listed in FAILURES and aren't charged a comment fee.
  • Every link format. watch?v=, youtu.be/, /shorts/, /embed/, /live/, music.youtube.com, or the bare 11-character ID.
  • Playlists and channels. Paste a playlist or channel link (@handle or /channel/UC…) and get comments from its videos, with hard caps on videos and pages so a big channel can't run away with your budget.

What you can use it for

  • Sentiment and feedback analysis: what viewers think of a product launch, a trailer, a review or an ad.
  • Audience research: questions, pain points and language your audience uses, ready for an LLM or a spreadsheet.
  • Content ideas: find the questions commenters keep asking under your or your competitors' videos.
  • Brand and community monitoring: sort by newest and run on a schedule to catch new comments.
  • Giveaways: export every comment on a video to pick a winner.
  • AI datasets: comment threads for classification, toxicity or topic models.

Input

FieldExampleNotes
Videoshttps://www.youtube.com/watch?v=aircAruvnKkURLs or IDs, one per line. Duplicates are removed.
Playlists and channelshttps://www.youtube.com/playlist?list=UU_x5XG1OV2P6uZZ5FSM9TtwPlaylist, @handle or /channel/UC… URLs. See below.
Max videos per run100Unique videos in total, from both fields. Up to 10,000.
Max playlist/channel pages10YouTube listing pages read in total. Up to 100.
Max comments per video100Top-level comments. 0 = all.
Sort bytop / newestSame as the YouTube menu.
Include repliesoffReplies become extra rows with isReply: true.
Max replies per comment100 = all.
Videos in parallel3Up to 10.

Fill in Videos, Playlists and channels, or both. If you paste more than 100 video links, raise Max videos per run.

Playlists and channels

  • Playlists: youtube.com/playlist?list=… links. A watch?v=…&list=… link in Videos is just that one video; put it in Playlists and channels to get the whole playlist.
  • Channels: youtube.com/@handle (or /@handle/videos) and youtube.com/channel/UC… links, using the channel's Videos tab only (no Shorts, live or podcast tabs). Example: https://www.youtube.com/@GoogleDevelopers. A handle is looked up once per run, with up to 4 tries; looking it up is free and doesn't use up Max playlist/channel pages. If YouTube won't resolve a handle, it shows up in FAILURES and the rest of the run carries on; paste the /channel/UC… link instead. Old /c/ and /user/ links aren't supported.
  • Order and duplicates: videos you pasted come first, then each playlist or channel in the order you listed them. A video found twice is scraped once.
  • Caps: expansion stops at Max videos per run or Max playlist/channel pages, whichever comes first. A playlist page holds up to about 100 videos and a channel page about 30, so with the defaults you get up to 100 videos. It reads what YouTube lists; it doesn't promise every video of a large channel or a particular order.
  • Report: SOURCE_EXPANSION in the key-value store shows, for each playlist or channel, the pages read, videos added, whether a cap stopped it, and any error or notice from YouTube. Playlists or channels that fail are also listed in FAILURES.

Output

{
"videoId": "aircAruvnKk",
"videoUrl": "https://www.youtube.com/watch?v=aircAruvnKk",
"videoTitle": "But what is a neural network? | Deep learning chapter 1",
"commentId": "Ugwedfi--9yZVC0eefl4AaABAg",
"commentUrl": "https://www.youtube.com/watch?v=aircAruvnKk&lc=Ugwedfi--9yZVC0eefl4AaABAg",
"text": "I study mathematics, physics and architecture. By definition this man is an ORACLE ...",
"authorName": "@kummer45",
"authorChannelId": "UCqArZkt3NAOU0tcgIi6xmFQ",
"authorChannelUrl": "https://www.youtube.com/channel/UCqArZkt3NAOU0tcgIi6xmFQ",
"authorAvatar": "https://yt3.ggpht.com/ytc/...=s88-c-k-c0x00ffffff-no-rj",
"authorIsVerified": false,
"authorIsChannelOwner": false,
"likeCount": 13000,
"replyCount": 173,
"isHeartedByCreator": false,
"isEdited": true,
"publishedTimeText": "7 years ago",
"publishedAtApprox": "2019-10-22T17:05:39.085Z",
"isReply": false,
"parentCommentId": null,
"scrapedAt": "2026-10-22T11:05:39.085Z"
}

likeCount is what YouTube shows, so large numbers are rounded (13K → 13000). publishedAtApprox is worked out from the relative time, so it's only as precise as that text: roughly the right day for recent comments, and only the month or year for old ones.

Use it from code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("santiagomv/youtube-comments").call(run_input={
"videos": ["https://www.youtube.com/watch?v=aircAruvnKk"],
"maxComments": 200,
"sortBy": "newest",
})
for c in client.dataset(run["defaultDatasetId"]).iterate_items():
print(c["likeCount"], c["authorName"], c["text"][:80])

For a playlist or channel, pass "sources": ["https://www.youtube.com/@GoogleDevelopers"] plus "maxVideos" and a low "maxComments" to keep the run small.

More examples (Python, Node.js, cURL, n8n) are in the code examples repository, including a playlist and channel tutorial.

Which YouTube actor do I need?

  • Comments and replies: this actor.
  • Just the video list (URLs, titles, views, durations, approximate upload dates): YouTube Channel Videos. It reads the channel's Videos tab only, and views and dates are rounded or approximate as YouTube lists them.
  • What's said in the videos: YouTube Transcripts, for videos that have captions available.

All three accept channel and playlist links directly.

Pricing

$0.50 per 1,000 comments ($0.0005 each), charged as an actor event for each comment returned; replies cost the same. Listing the videos of a playlist or channel and looking up @handles aren't charged as events, and neither are failed videos, failed playlists or channels and invalid links. Your run's maximum cost limit is always respected: the run stops when it's reached.

FAQ

Can it get every comment on a huge video? Set Max comments to 0 and it pages through everything YouTube serves. Very large videos can have millions of comments, so set a run cost limit.

Why is the comment count lower than the number YouTube shows? YouTube's counter includes replies and comments it hides (held for review, removed spam). Turn on replies to get closer.

Why is an old comment first when sorting by newest? That is the pinned comment; YouTube always shows it first.

Exact timestamps? YouTube shows only relative times to logged-out visitors, so you get that text and an approximate date.

Channels and playlists? Yes, with limits: playlist links and channel links (@handle or /channel/UC…, Videos tab only), capped by Max videos per run and Max playlist/channel pages. Comments add up fast across a channel: 100 videos × 100 comments is 10,000 comments, or $5. /c/ and /user/ links aren't supported; open an issue if you need them.

Do I need a YouTube API key or proxies? No.

Is this allowed? Read this before using it. This actor collects publicly visible comments without logging in. Automated access may be against YouTube's Terms of Service, and YouTube may block or rate-limit the IP addresses or accounts involved. Comments are personal data of their authors: you are responsible for how you use this actor and the data, including privacy laws (such as GDPR), copyright and YouTube's terms.

This actor is not affiliated with, endorsed by or sponsored by YouTube or Google LLC. YouTube is a trademark of Google LLC.