YouTube Transcript Scraper - 100% Free avatar

YouTube Transcript Scraper - 100% Free

Pricing

Pay per usage

Go to Apify Store
YouTube Transcript Scraper - 100% Free

YouTube Transcript Scraper - 100% Free

Completely free - no charge per transcript, ever. Clean timestamped transcripts from any YouTube video: watch links, youtu.be, Shorts, embeds or bare IDs. Reads YouTube's own first-party player endpoint - no API key, no cookies. Full text, per-line segments, language, word count.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

omar khandji

omar khandji

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

7

Monthly active users

4 days ago

Last modified

Share

YouTube Transcript API — Subtitles & Captions in Any Language

Paste YouTube links, get clean timestamped transcripts. No API key, no cookies, no proxies, nothing that expires.

100% free

This Actor is free. There is no charge per transcript and no charge per run from us — you pay only Apify's own platform usage for the run, exactly as you would for any Actor you wrote yourself.

It is free because it costs us nothing to operate: it reads YouTube's own first-party endpoint, so there is no upstream scraper to pay for. No API key, no cookies, nothing that expires.

Need whole channels or playlists in bulk? YouTube Channel & Playlist Transcripts does that for $0.001 per transcript.

Why this one

Most transcript actors scrape the watch page, which means cookies, consent walls, and a scraper that breaks every time YouTube ships a redesign.

This Actor calls YouTube's own player endpoint — the same first-party API the mobile app uses — and then downloads the caption file YouTube itself serves. Three consequences:

  1. It doesn't break. No HTML parsing, no anti-bot to fight.
  2. It's complete. You get every caption language the video publishes, and human-written subtitles are always preferred over auto-generated ones when both exist.
  3. It's cheap. There is no upstream scraper to pay for, so the price stays low.

What you pass

Any mix of these works, in one list:

FormExample
Watch URLhttps://www.youtube.com/watch?v=aircAruvnKk
Short linkhttps://youtu.be/dQw4w9WgXcQ
Shortshttps://www.youtube.com/shorts/tPEE9ZwTmy0
Embedhttps://www.youtube.com/embed/aircAruvnKk
Bare IDaircAruvnKk

Duplicates are removed before anything is fetched, so you are never billed twice for the same video.

Output

One row per video:

{
"video_id": "aircAruvnKk",
"video_url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network?",
"channel": "3Blue1Brown",
"language": "en",
"is_generated": false,
"available_languages": ["en", "es-419", "ja"],
"duration_seconds": 1105.64,
"segment_count": 286,
"word_count": 3357,
"text": "Full transcript as one clean string ...",
"segments": [
{ "start": 12.4, "duration": 3.1, "text": "Let me start with a question." }
]
}

Set Include timestamped segments to off if you only want text — handy when you are feeding an LLM and paying per token.

Languages

Leave Preferred language empty for English (falling back to the video's default), or pass fr, es, de, pt, ja... If the exact code is missing, the closest regional variant is used (pt matches pt-BR). Every row's available_languages lists every caption track the video actually publishes, so you can see what else was on offer if your preferred one wasn't there.

Good to know

  • Hard cost cap. Set maxTotalChargeUsd and the run can never bill above it.
  • A video without captions is never billed. It is reported in source_errors with code NO_TRANSCRIPT and costs you nothing.
  • Agent-ready. RUN_SUMMARY.json gives an LLM agent the counts and total word volume without re-reading the dataset.

Typical uses

  • Feed video content into a RAG index or a summarizer
  • Build searchable archives of a channel or a conference playlist
  • Translate or repurpose long-form video into articles and newsletters
  • Analyse what competitors actually say in their videos

Same data, other sources — all with the same free tier, the same clean schema and the same pay-only-for-what-you-get billing:

Actor
[YouTube Channel Transcripts
YouTube Search Scraper - Videos, Views & Channels
YouTube Channel Videos Scraper - Views & Velocity
[ATS Jobs Search API
[Hiring Signals
[Career Site Job Listing API

All input fields

Every field the Start form accepts, so nothing in the schema is undocumented. Most runs only need the fields already covered above — these are the rest, including advanced/bring-your-own-data options.

  • includeSegments (Include timestamped segments) — Keep the per-line segments with start time and duration. Turn off for a plain-text transcript only.
  • proxyConfiguration (Proxy configuration) — YouTube blocks datacenter IPs, so this Actor routes through a proxy. Leave the default (Apify Proxy) unless you have your own.

Support

Found a bug or have a feature request? Use the Issues tab on this Actor's Apify Store page, or message the author (om_kh) directly through Apify — every report gets a reply.