Alfalfa

YouTube scraper and API: videos, transcripts and comments without an API key

The YouTube Data API is free, official and small: 10,000 units a day, a search costs 100 of them, transcripts are not offered at all. Everything on a public video page is visible without an account, and that is what a scraper reads. This page shows what you get per video, how transcripts and comments work, where the limits are, and what it costs.

Updated September 2026. Fields and limits measured on the live site.

Data API versus scraper

YouTube Data API v3Scraper
SetupGoogle Cloud project, API key, OAuth for some callsa keyword or a URL
Quota10,000 units a day; search = 100 units, video = 1, comment thread page = 1none, pay per row
Transcriptsnot available (captions download needs the owner's OAuth)yes, any public video with captions
Commentsyes, 100 per pageyes, top or newest
Likes, tags, categoryyesyes
Subscriber and comment countsyesyes, when the counts option or comment collection is on; often null in ordinary searches otherwise
Channel record (country, joined date, links)partly (no links)yes
Best foran app that acts on behalf of users, small volumesresearch, monitoring, datasets, AI pipelines

The scraper

The YouTube Scraper on Apify takes search queries, channel URLs, playlist URLs or video URLs and returns one row per video. Transcripts and comments are options on the same run. A row carries:

For a clean export by row type, enable Separate datasets by row type. The original dataset stays intact; the run also offers Videos, Comments and Channels datasets. This makes CSV or Excel exports easier. Extra copies use storage and download transfer but do not add result charges.

A checked search-to-transcript example

In a test run on 19 September 2026, the query python tutorial returned Python Full Course for Beginners with the video details, 4,530 timed caption segments and 263,320 characters of transcript text in one video row. The same run also saved one comment and one channel record. With separate datasets enabled, those rows were copied into three clean exports without changing the original output. The video and transcript would cost $0.0008 at the Actor's current Free-tier event prices; the three-row run with the transcript and channel add-on would cost $0.0023. Counts and search results can change over time.

For comparison, Streamers' official YouTube Scraper currently lists $4 per 1,000 videos on Free and offers existing subtitles in the video row. Smart API's YouTube Scraper lists $0.25 per 1,000 results, but its published examples require a separate video-details task after search to obtain views and likes and do not document a timed transcript. Competitor features and prices here are based on their published pages.

Speed: about 100 videos with details in 10-60 seconds depending on the source; listing only, several hundred a minute.

Calling it from code

curl -X POST "https://api.apify.com/v2/acts/alfalfa~youtube-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"searchQueries":["python tutorial"],"sortBy":"views","uploadDate":"month","maxVideos":50,"transcript":true}'

Longer jobs: start the run, poll it, read the dataset when it finishes. Schedules, webhooks and the n8n, Make and Zapier nodes work as for any Apify Actor; the API overview shows the pattern.

Things to know before you trust the numbers

Uses that pay for themselves

Questions people ask

Is this allowed?

The scraper reads public pages without logging in and stores nothing but the results in your dataset. Respect YouTube's terms and the uploader's copyright when you reuse content, and personal data laws for comment authors.

Why is it this cheap?

A video's details are a few kilobytes and the scraper runs in a few megabytes of memory, so platform costs per thousand videos are cents. Transcripts are bigger, hence their own small price.

Does it download videos?

No. Metadata, transcripts and comments only.

Open the YouTube Scraper Read: the API overview