YouTube Transcript Scraper
Pricing
from $2.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
12
Total users
1
Monthly active users
17 hours 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
videoUrls | array | Yes | ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] | List of YouTube video URLs or video IDs to extract transcripts from. |
language | string | No | "en" | Preferred language code for captions (e.g., 'en', 'ja', 'es'). Falls back to any available language if not found. |
includeAutoGenerated | boolean | No | true | Whether 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:
| Field | Type |
|---|---|
videoId | string |
videoUrl | string |
title | string |
language | string |
isAutoGenerated | boolean |
segments | array of {start, duration, text} |
fullTranscript | string |
scrapedAt | string |
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 ApifyClientclient = 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 API — POST 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