PlainRows

YouTube Comments Scraper: Video Comments Export

Export YouTube comments of any video: text, likes, reply count, date and the video's title and comment count. Paste video links, Shorts links or IDs. Top and recent comments, up to 700 per video. No author names. Only-new-comments mode for daily checks. Pay per comment.

Try it on Apify   Actor status

Typical uses

Pricing

Pay per use, no subscription, no monthly fee. The price depends on your Apify plan. Apify's free plan includes $5 of usage every month.

You pay perFree planStarterScaleBusiness
Comment
One YouTube comment returned with its text, likes, reply count and date, plus the video's title and comment count. Videos with no comment, duplicates and input mistakes are free.
$0.0003$0.0003$0.0002$0.0002
Block of 20 comments requested
YouTube comments are fetched in blocks of 20 per video (100 comments = 5 blocks). Charged for each block requested once YouTube has answered, even when the video has fewer comments than requested or is not found, at about what the data source charges us. Not charged when YouTube does not answer.
$0.001$0.001$0.001$0.001

Run it from your code

Get an API token in the Apify Console (Settings → Integrations), then:

curl -X POST \
  "https://api.apify.com/v2/acts/plainrows~youtube-comments-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "videos": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
  ],
  "maxCommentsPerVideo": 100
}'
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("plainrows/youtube-comments-scraper").call(run_input={'videos': ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],
 'maxCommentsPerVideo': 100})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)

Use it in automations and AI agents

Full documentation, input options and output fields: https://apify.com/plainrows/youtube-comments-scraper