YouTube Transcript Scraper - Bulk, Timestamps, SRT, Chapters avatar

YouTube Transcript Scraper - Bulk, Timestamps, SRT, Chapters

Pricing

from $3.00 / 1,000 video transcript scrapeds

Go to Apify Store
YouTube Transcript Scraper - Bulk, Timestamps, SRT, Chapters

YouTube Transcript Scraper - Bulk, Timestamps, SRT, Chapters

YouTube transcript scraper and API: extract captions for many videos in bulk as timestamped segments, full text or SRT, with chapters, metadata and any caption language. Charged only when a transcript is returned. For LLM/RAG, SEO and subtitles. No API key.

Pricing

from $3.00 / 1,000 video transcript scrapeds

Rating

0.0

(0)

Developer

Ha Phan Thanh Hai

Ha Phan Thanh Hai

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

YouTube Transcript Scraper: bulk transcripts, timestamps, SRT, chapters

Get YouTube transcripts for many videos in one run: timestamped segments, full text or SRT, chapters and metadata, in the caption language you choose. No login, no API key.

What does YouTube Transcript Scraper do?

  • Accepts watch, youtu.be, shorts and embed URLs or bare video IDs.
  • Prefers manual captions, then auto-generated, in your language priority list.
  • Output as JSON (segments + full text), plain text or SRT.
  • Video metadata: title, channel, publish date, duration, available caption languages.
  • Chapters parsed from the description.
  • Optional translateTo using YouTube's own translation (best effort).

Why use it

  • Pay only for transcripts returned: videos with errors are free.
  • Bulk-ready, with clear per-video error codes.
  • Reliable via residential proxy by default, with retries on bot checks.
  • No API key, no video download.

Use cases

  • Feeding video content to LLMs, RAG and summarisers.
  • Content research and keyword analysis of competitor channels.
  • Subtitles (SRT) for repurposing, translation or accessibility.
  • Searchable archives with timestamped quotes.
  • Podcast and course transcripts for study notes.

How to use

  1. Open the Actor on Apify and click Try for free (or call it through the API).
  2. Paste video URLs or IDs and set preferred languages and format.
  3. Click Start, then download the dataset as JSON, CSV, Excel or HTML, or read it through the API.

Input example

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/9bZkp7q19f0", "https://www.youtube.com/shorts/xxxxxxxxxxx", "aircAruvnKk"],
"languages": ["en"],
"format": "json",
"includeChapters": true,
"translateTo": "es",
"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}
}
  • videoUrls: watch / youtu.be / shorts / embed URLs or bare 11-char IDs.
  • languages: priority list. For each language: manual captions first, then auto-generated. Nothing matches: the first available track is returned (see language).
  • format: json (segments + fullText), text (fullText only), srt (adds srt).
  • translateTo: optional machine translation of the track (see limitations).

Output example

{
"videoId": "aircAruvnKk",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"channel": "3Blue1Brown",
"channelId": "UCYO_jab_esuFRV4b17AJtAw",
"publishedAt": "2017-10-05T08:15:00-07:00",
"durationSec": 1112,
"language": "en",
"isAutoGenerated": false,
"availableLanguages": [{"code": "en", "autoGenerated": false, "translatable": true}],
"segments": [{"start": 4.22, "dur": 1.18, "text": "This is a three."}],
"fullText": "This is a three. ...",
"srt": null,
"chapters": [{"start": 0, "title": "Introduction example"}],
"error": null
}

Videos that cannot be transcribed are still returned (not charged) with error set to one of: no_captions, age_restricted, bot_check, private_video, login_required, unavailable, invalid_url, transcript_fetch_failed.

Pricing

Pay per event, no subscription. You pay only for what is returned:

EventPrice per 1,0001,00010,000100,000
video$3.00$3.00$30.00$300.00

Example: 1,000 videos cost $3.00; 10,000 cost $30.00.

Videos without a returned transcript are not charged. Residential proxy traffic is not included: it is billed to you as Apify platform usage, about 0.2 MB per video. Check the run cost in the Apify console for your own mix.

Integrations & API

Run it from code with the Apify API. Replace <APIFY_TOKEN> with your API token.

Python (pip install apify-client)

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("bachiembmt/youtube-transcript-batch").call(run_input={"videoUrls": ["https://www.youtube.com/watch?v=aircAruvnKk"], "languages": ["en"], "format": "json", "includeChapters": True})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

cURL (run synchronously and get dataset items)

curl -X POST "https://api.apify.com/v2/acts/bachiembmt~youtube-transcript-batch/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"videoUrls": ["https://www.youtube.com/watch?v=aircAruvnKk"], "languages": ["en"], "format": "json", "includeChapters": true}'

Works with:

  • Make and Zapier: use the Apify app/module to run this Actor and pass the dataset on.
  • n8n: use the Apify node or an HTTP Request node with the API call above.
  • Google Sheets: export the dataset as CSV, or use the Apify integration to append rows automatically.
  • Webhooks: trigger your own endpoint when a run finishes; combine with Apify schedules for recurring jobs.
  • AI agents: expose the Actor as a tool through the Apify MCP server.

FAQ

Does it work for videos without captions? No. It returns existing manual or auto-generated captions only; there is no speech-to-text. Those videos come back with error: no_captions and are free.

Why a residential proxy? YouTube challenges most datacenter IPs. Residential is the default; on a bot check the Actor retries on new sessions, and if all fail the video is reported as bot_check (free, retry later).

Does it download the video? No, only caption text.

Do I need an account or API key for the source? No. The Actor needs no login or source API key. You only need an Apify account to run it.

Is it legal to scrape this data? Only public caption data is read. Respect YouTube's Terms of Service and the creators' copyright when reusing transcripts. This is general information, not legal advice.

Limitations

  • Only videos that have captions (manual or auto-generated). No speech-to-text is performed.
  • Age-restricted and private videos are not accessible without login and are reported as errors.
  • Proxy: the actor uses Apify Proxy by default and, on a bot check, retries up to 3 times on a new proxy session and tries other YouTube client profiles. Default is the RESIDENTIAL group: YouTube challenges most datacenter IPs. Residential traffic is billed as platform usage (~0.2 MB per video).
  • YouTube may show a "Sign in to confirm you're not a bot" check for some IPs; if all retries fail the video is reported as bot_check (not charged, retry later). Requests are throttled to ~1/s with retries.
  • translateTo relies on YouTube's tlang endpoint, which may be rate-limited or refused; then the original language is returned (check language) and a warning is logged.
  • publishedAt is read from the public watch page; it may be null if unavailable.
  • Chapters are parsed from timestamps in the description (needs at least 3, first at 0:00).
  • YouTube's internal API can change and temporarily break extraction.