YouTube Transcript Scraper avatar

YouTube Transcript Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
YouTube Transcript Scraper

YouTube Transcript Scraper

Extract transcripts and captions from YouTube videos via InnerTube API. Support for auto-generated and manual captions in multiple languages. Get timestamped text segments.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

cloud9

cloud9

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Extract transcripts and captions from YouTube videos via InnerTube API. Support for auto-generated and manual captions in multiple languages. Get timestamped text segments.

Use cases

  • Turn videos into searchable text for a RAG pipeline
  • Repurpose video content into blog posts or summaries
  • Generate subtitles or translations from existing captions
  • Analyse what competitors actually say in their videos
  • Build a lecture or podcast transcript archive

Input

ParameterTypeRequiredDefaultDescription
videoUrlsarrayYes["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]List of YouTube video URLs or video IDs to extract transcripts from.
languagestringNo"en"Preferred language code for captions (e.g., 'en', 'ja', 'es'). Falls back to any available language if not found.
includeAutoGeneratedbooleanNotrueWhether to include auto-generated captions when manual captions are not available.

Example input

{
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"language": "en",
"includeAutoGenerated": true
}

Output

Each dataset item has the following shape:

FieldType
videoIdstring
videoUrlstring
titlestring
languagestring
isAutoGeneratedboolean
segmentsarray of {start, duration, text}
fullTranscriptstring
scrapedAtstring

Results are exportable from Apify Console or the API as JSON, CSV, Excel, or XML.

How to run it

In Apify Console — open the Actor, fill in the input form, click Start, then download the results from the Dataset tab.

With the JavaScript client

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('cloud9_ai/youtube-transcript-scraper').call({
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"language": "en",
"includeAutoGenerated": true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

With the Python client

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('cloud9_ai/youtube-transcript-scraper').call(run_input={
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
],
"language": "en",
"includeAutoGenerated": True
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

With the APIPOST https://api.apify.com/v2/acts/cloud9_ai~youtube-transcript-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.

Notes and limits

  • No API key, account, or login is needed — just the input above.
  • Requests to the source are paced to stay inside its rate limits.
  • Only publicly available data is collected. How you use the output is your responsibility, including the source's terms of use and any applicable data-protection law.

Support

Found a bug, or need a field that isn't in the output? Open an issue on the Issues tab of this Actor in Apify Console. Issues there are read and answered.

License

Apache-2.0