YouTube Comments Scraper & New-Comment Monitor — No API Key avatar

YouTube Comments Scraper & New-Comment Monitor — No API Key

Pricing

from $0.50 / 1,000 comment delivereds

Go to Apify Store
YouTube Comments Scraper & New-Comment Monitor — No API Key

YouTube Comments Scraper & New-Comment Monitor — No API Key

Scrape any YouTube video or channel's comments — author, text, likes, replies, timestamps & avatars — or run monitor mode to get ONLY the new comments since the last run (never re-pay for old ones). Reply threads, pinned/hearted flags, no API key, no quota. Pay-per-use, first run free.

Pricing

from $0.50 / 1,000 comment delivereds

Rating

0.0

(0)

Developer

SlothTechLabs

SlothTechLabs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Watch any YouTube video or channel and get only the comments posted since your last run — never re-pay for old comments again. Or bulk-export a whole comment section in one go. No API key, no quota, no browser. Your first run on each video is a free baseline.

Scrape YouTube comments into a flat, spreadsheet-ready row per comment — author, text, likes, replies, pinned/hearted flags, timestamps, avatar and a deep link to each comment. In monitor mode, every scheduled run returns only the new comments since the last run, per video, so the same comment is never delivered (or billed) twice. Point it at videos or whole channels, run it on a schedule, and turn a comment section into a live feed — no API key, no quota, no subscription.

✨ What does this Actor do?

FeatureDetails
🔔 Monitor modeEach scheduled run returns only the comments new since the last run, per video — no duplicates, no re-paying for old data. First run per video is a free baseline
📦 Bulk modeOne-off export of a video's comment section, sorted by Top or Newest
📡 Channel watchingPaste @handles or channel URLs — each channel's latest uploads are found automatically and their comments scraped/monitored
💬 Reply threadsOptionally expand replies (in monitor mode, only for new comments — keeps cost down)
🏷️ Rich comment fieldsLike & reply counts, 📌 pinned flag, ❤️ hearted-by-creator flag, channel-owner / verified / artist author flags, avatar, and a deep link to each comment
🧵 Thread reconstructionEvery reply carries its parentCommentId, so you can rebuild full conversation threads
🔑 No API key, no login, no browserNo quota to manage and no accounts to connect — just clean, structured comment rows

⚡ Zero-config start

Just click Start. The prefilled input runs a bulk scrape of a sample video so your first dataset has comment rows in seconds. When you're ready to track a video or niche, switch mode to monitor, add your videos or channels, and put it on a schedule — see the 3 steps below.

💰 Why use this instead of…?

OptionCostNew-comments-only feed?No quota wall?
YouTube Data API v3Free, but quota-capped then blocked
One-shot comment scrapersRe-scrape the whole thread every run
This ActorPay-per-use — first run per video free✅ (monitor mode, raw rows you own)

To "watch" a video with a snapshot scraper you must re-scrape the entire comment section every run and de-duplicate it yourself. This Actor delivers only the genuinely new comments, so a busy video costs pennies to monitor — and you still get a full bulk export whenever you want one.

🎯 Use cases

  • 🔔 Community & brand managers — monitor your channel's latest uploads for new comments daily (auto-discovered from your @handle); get on top of questions and complaints the day they land.
  • 🎁 Giveaway & contest runners — collect every new entry comment as it arrives, with author and timestamp, without re-pulling the whole thread each time.
  • 📊 Creator analysts — bulk-export a video's comment section for sentiment/topic analysis, or track sentiment over time with a daily monitor.
  • 🏢 Agencies — watch many client videos for new comments in a single run, exported straight to Sheets or a webhook.
  • 🤖 Data & AI teams — feed only fresh comments into your pipeline each run (no de-duplication code on your side), with structured author and engagement fields ready to embed.

📖 How to use — first run in 3 steps

  1. Click Start — the prefill (a bulk scrape of a sample video) is safe and completes in seconds.
  2. Open the Dataset tab — one flat row per comment. Export as CSV / JSON / Excel, or open in Google Sheets.
  3. Turn it into a monitor — set mode to monitor, add your own videos or channels, Save as Task, and add a daily Schedule. The first run per video is a free baseline; from the next run on, only genuinely new comments arrive.

🧾 Input

The form is built to be tried in seconds: paste video URLs and click Start. Everything else is optional.

What to scrape

FieldTypeRequiredDescription
videoUrlsarray of stringsYouTube video URLs, one per line — watch, Shorts, youtu.be, and live links all work

Options

FieldTypeDefaultDescription
modemonitor | bulkmonitormonitor = only comments new since the last run · bulk = export the comment section (the one-click sample run is prefilled to bulk)
sorttop | newesttopOrder for bulk scraping — Top comments or Newest first
maxCommentsPerVideointeger100Cap on top-level comments per video. In monitor mode this is a ceiling per run
includeRepliesbooleanfalseAlso fetch reply threads (in monitor mode, only for new comments)
maxRepliesPerCommentinteger100Cap on replies fetched per comment (only when replies are on)

Monitor whole channels (optional)

FieldTypeDefaultDescription
channelUrlsarray of stringsOptional — watch whole channels instead of (or in addition to) specific videos; their latest uploads are found automatically and scraped/monitored. Accepts channel URLs or @handles
maxVideosPerChannelinteger3Latest videos per channel to scrape/monitor

Advanced

FieldTypeDefaultDescription
proxyConfigurationobjectApify datacenterUses Apify's datacenter proxy by default — no extra setup needed

Advanced (API only): the filters commentTextFilter (deliver only comments containing a phrase), onlyChannelOwner (only the creator's own comments), and minLikeCount (a like threshold) are still honored if you pass them in JSON input — they narrow delivery (and your bill) to just the comments you care about. They're hidden from the Console form to keep the first run simple.

Example input — daily monitor of a video + a channel

{
"videoUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],
"channelUrls": ["@mkbhd"],
"maxVideosPerChannel": 3,
"mode": "monitor",
"maxCommentsPerVideo": 100,
"includeReplies": false,
"proxyConfiguration": { "useApifyProxy": true }
}

Schedule that daily and each run returns just the new comments across that video plus MKBHD's three latest uploads.

📊 Output

One flat row per comment — perfect for spreadsheets, pivots, and pipelines. Each row reads like a YouTube comment — avatar, author, then the comment — so a comments spreadsheet is scannable at a glance.

FieldTypeDescriptionExample
authorAvatarUrlstringAuthor avatar image"https://yt3.ggpht.com/…"
authorNamestringComment author handle"@SanDiegoZoo"
textstringComment body"We're so honored…"
likeCountinteger | nullLikes as a number4500000
likeCountTextstringLikes as YouTube's abbreviated label"4.5M"
replyCountinteger | nullReplies as a number985
replyCountTextstringReplies as YouTube's abbreviated label"985"
publishedTimeTextstringRelative publish time (as shown on YouTube)"6 years ago"
publishedAtApproxstring | nullApproximate absolute post time"2020-06-12T09:00:00.000Z"
videoTitlestringTitle of the source video"Me at the zoo"
videoChannelNamestringUploader channel name"jawed"
isReplybooleanWhether this row is a replyfalse
isPinnedboolean📌 Pinned commentfalse
isHeartedByCreatorboolean❤️ Hearted by the creatorfalse
isEditedbooleanComment was editedfalse
authorIsChannelOwnerbooleanAuthor is the video's channelfalse
authorIsVerifiedbooleanVerified authortrue
authorIsArtistbooleanArtist channelfalse
commentUrlstringDeep link to the comment"https://www.youtube.com/watch?v=…&lc=…"
videoUrlstringWatch link for the source video"https://www.youtube.com/watch?v=jNQXAC9IVRw"
commentIdstringUnique comment ID"UgzuC3zz…AaABAg"
parentCommentIdstring | nullParent comment ID for replies (null for top-level) — use it to rebuild threadsnull
authorChannelIdstring | nullAuthor's YouTube channel ID"UCC5NfQ6Mf0dq_eEwv4P_hWA"
videoIdstringSource video ID"jNQXAC9IVRw"
videoChannelIdstring | nullSource video's channel ID"UC4QobU6STFB0P71PMvOGN5A"
isNewbooleanNew since the previous run (always meaningful in monitor mode)true
scrapedAtstringUTC timestamp of the run (ISO 8601)"2026-06-12T09:15:00.000Z"

Thread reconstruction: parentCommentId is null for top-level comments and carries the parent's ID for replies — group rows by it (with includeReplies on) to rebuild full conversation threads. The *Text like/reply fields keep YouTube's abbreviated display form ("4.5K", "1.2M"), which is handy at a glance alongside the parsed numbers.

Example row (JSON)

{
"authorAvatarUrl": "https://yt3.ggpht.com/…",
"authorName": "@SanDiegoZoo",
"text": "We're so honored that the first ever YouTube video was filmed here!",
"likeCount": 4500000,
"likeCountText": "4.5M",
"replyCount": 985,
"replyCountText": "985",
"publishedTimeText": "6 years ago",
"publishedAtApprox": "2020-06-12T09:00:00.000Z",
"videoTitle": "Me at the zoo",
"videoChannelName": "jawed",
"isReply": false,
"isPinned": false,
"isHeartedByCreator": false,
"isEdited": false,
"authorIsChannelOwner": false,
"authorIsVerified": true,
"authorIsArtist": false,
"commentUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw&lc=UgzuC3zzpRZkjc5Qzsd4AaABAg",
"videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"commentId": "UgzuC3zzpRZkjc5Qzsd4AaABAg",
"parentCommentId": null,
"authorChannelId": "UCC5NfQ6Mf0dq_eEwv4P_hWA",
"videoId": "jNQXAC9IVRw",
"videoChannelId": "UC4QobU6STFB0P71PMvOGN5A",
"isNew": true,
"scrapedAt": "2026-06-12T09:15:00.000Z"
}

Export the dataset as CSV, JSON, Excel or HTML from the run's Dataset tab, or connect Google Sheets / BigQuery / Slack / Make / Zapier via Apify integrations.

🔔 How monitor mode works

  1. First run per video = free baseline. You start watching a video without a surprise bill — the initial batch of comments is delivered free.
  2. Every later run = new only. From the second run on, you receive only the comments posted since your last run, per video, deduplicated automatically.
  3. Quiet runs are cheap. A run that finds nothing new costs only a tiny per-video check fee, so you can schedule it as often as you like.

📅 Daily scheduling for a continuous feed

  1. Configure your input once (mode: "monitor", your videos and/or channels) and Save as Task.
  2. Add a Schedule — daily or hourly.
  3. Connect an integration — Google Sheets, Slack webhook, BigQuery, Make, n8n or Zapier — to act on each batch of new comments automatically.

💵 Pricing

Pay-per-event — no subscription. You're charged per run start, per video checked, and per comment delivered — with the first run per video delivered free. Empty monitor checks (no new comments) cost only the run + per-video check fees, so scheduling is cheap. Exact per-event rates are shown on the Actor's Pricing tab.

EventWhen it's charged
Actor startOnce per run
Video checkedPer video inspected, even when no new comments are found
Comment deliveredPer comment row delivered — free on the first (baseline) run per video

With Apify's free tier ($5 credit), a daily multi-video comment monitor runs for a long time before you pay anything.

💡 Pro tips

  • Best monitor setup: mode = monitor, leave includeReplies off, and schedule daily — every row in a monitor run is new by definition.
  • Cheapest runs: keep includeReplies off; reply threads cost extra requests. Turn it on only when you need full conversations (monitor mode expands replies for new comments only).
  • Busy videos: if more new comments arrive between runs than maxCommentsPerVideo, raise the cap or run more often — the Actor emits the newest cap and logs a warning so you know.
  • Trim your bill for free: pass commentTextFilter, onlyChannelOwner, or minLikeCount in JSON input (see Input note) to deliver only the comments you care about — you aren't charged for the ones filtered out.
  • Rebuild threads: turn on includeReplies and group rows by parentCommentId to reconstruct full conversations.

ℹ️ Good to know

  • Publish time is relative. YouTube shows "2 hours ago"; publishedAtApprox is an approximate absolute time that grows less precise with age (a "3 years ago" comment is only roughly accurate). The verbatim label is always kept in publishedTimeText.
  • Counts are abbreviated. likeCount / replyCount are parsed from YouTube's short labels ("4.5M"4500000), so large numbers are approximate; the exact display strings are kept in likeCountText / replyCountText.
  • Monitor scope = new top-level comments. New replies to old comments are not flagged as new. (Replies to new comments are captured when includeReplies is on.)
  • Resilient by design — videos with comments disabled, deleted, or made private produce a warning and 0 rows, never a failed run, so one bad video never breaks the whole run.

▶️ Ready?

Click Start with the prefilled input — your first comment rows arrive in seconds. Then set mode to monitor, add your videos or channels, schedule it, and never miss a new comment again.

📬 Feedback & support

If you have any questions, feature requests, or encounter any issues, please open an issue on the Actor's page. We'd love to hear from you!