Back to blog
tutorial·ScriptBase Team·2 min read

How to Scrape YouTube Comments Without Code

Export every comment from any YouTube video to JSON, CSV or Excel — author, likes, replies and date. No YouTube API key, no quota, no code.

youtubecommentsno-codeapify

The YouTube Data API can read comments, but you pay for it in ceremony: a Google Cloud project, an OAuth screen, and a 10,000-unit daily quota that a single busy video will blow through. If you just want the comments out of a video and into a spreadsheet, that is a lot of setup for a one-line question.

The YouTube Comments Scraper does the same job with a URL and nothing else.

What you get

One row per comment, with the fields you actually use:

{
"text": "Still a banger in 2026",
"author": { "name": "Jane Doe", "verified": false },
"likeCount": 1284,
"replyCount": 12,
"publishedAt": "2026-03-04T11:22:00.000Z",
"publishedAtConfidence": "parsed"
}

That publishedAtConfidence field is worth a word. YouTube renders comment ages as relative text — "2 weeks ago" — not timestamps. When that is all the source gives us, the date is computed from it and marked parsed. exact means a real timestamp came back. Most scrapers hand you a computed date as though it were exact; this one tells you which it is, so you can decide whether it is precise enough for your analysis.

Run it without writing anything

  1. Open the YouTube Comments Scraper on Apify.
  2. Paste a video URL into the input box.
  3. Set Maximum results — this is also your cost ceiling, since you pay per comment delivered.
  4. Click Start, then export the dataset as CSV, JSON or Excel.

That is the whole thing. No key, no OAuth, no Google Cloud project, and your YouTube Data API quota — if you even have one — stays untouched.

Run it from code

If you would rather trigger it from a pipeline, call the Apify API:

Terminal window
curl -X POST \
"https://api.apify.com/v2/acts/scriptbase~youtube-comments-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "maxItems": 500 }'

The response is the dataset — an array of comment rows — ready to drop into your database.

What it does not do

Replies are not expanded: you get top-level comments and each one's replyCount, not the reply threads themselves. It reads one video per run, so for many videos you run it once per URL — which keeps failures isolated and costs attributable. And a video with comments turned off returns zero rows and succeeds, because "no comments" is a real answer, not an error.

Try it first

Want to see the shape of the output before running anything at scale? The free YouTube tool previews results from cache in your browser. When you need every comment from a real video, the actor is one click away.