Youtube Transcript API
Pricing
from $10.00 / 1,000 transcripts
Youtube Transcript API
YouTubeTranscript.dev turns YouTube videos into text. It uses captions in 100+ languages and AI transcription when captions are missing. Supports single videos and batches, TXT/SRT/VTT/JSON export, translation, and a REST API.
Pricing
from $10.00 / 1,000 transcripts
Rating
0.0
(0)
Developer

Youtube Transcript Dev
Actor stats
1
Bookmarked
5
Total users
3
Monthly active users
7 days ago
Last modified
Categories
Share
YouTubeTranscript.dev - YouTube Transcript API
Real-time API for extracting YouTube transcripts and captions. Supports 100+ languages, batch processing, timestamped segments, and word-level timing. Proxies to the YouTubeTranscript.dev backend.
Standby Mode Endpoints
This Actor runs in Standby mode — use it like a real-time API. No need to click Start; just send HTTP requests to the Actor hostname.
| Endpoint | Method | Description |
|---|---|---|
/ | GET | Health check. Returns service status. |
/transcribe | POST | Transcribe a single YouTube video |
/batch | POST | Transcribe multiple videos (batch) |
/batch/{batch_id} | GET | Poll batch status (when POST /batch returns processing) |
Authentication
Include your Apify API token in one of two ways:
- Query parameter:
?token=YOUR_APIFY_TOKEN - Authorization header (recommended):
Authorization: Bearer YOUR_APIFY_TOKEN
Request Examples
Single video (cURL)
curl -X POST "https://YOUR_ACTOR.apify.actor/transcribe?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"video":"dQw4w9WgXcQ","language":"en"}'
Single video (JavaScript)
const response = await fetch('https://YOUR_ACTOR.apify.actor/transcribe', {method: 'POST',headers: {'Content-Type': 'application/json','Authorization': `Bearer ${process.env.APIFY_TOKEN}`,},body: JSON.stringify({video: 'dQw4w9WgXcQ',language: 'en',format: { timestamp: true },}),});const data = await response.json();console.log(data.data.transcript.text);
Single video (Python)
import requestsresponse = requests.post('https://YOUR_ACTOR.apify.actor/transcribe',headers={'Content-Type': 'application/json','Authorization': f'Bearer {os.environ["APIFY_TOKEN"]}',},json={'video': 'dQw4w9WgXcQ', 'language': 'en'},)data = response.json()print(data['data']['transcript']['text'])
Batch (cURL)
curl -X POST "https://YOUR_ACTOR.apify.actor/batch?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"video_ids":["dQw4w9WgXcQ","jNQXAC9IVRw"],"language":"en"}'
When POST /batch returns status: "processing", poll until completed:
$curl -X GET "https://YOUR_ACTOR.apify.actor/batch/BATCH_ID?token=YOUR_APIFY_TOKEN"
Request Body
POST /transcribe
| Field | Type | Required | Description |
|---|---|---|---|
| video | string | Yes | YouTube URL or 11-character video ID |
| language | string | No | Preferred language code (e.g. en, es). Default: en |
| source | string | No | auto (auto-generated) or manual (creator-provided). Default: auto |
| format | object | No | { timestamp: true, paragraphs: true, words: true } |
POST /batch
| Field | Type | Required | Description |
|---|---|---|---|
| video_ids | array | Yes | Array of video URLs or IDs (max 100) |
| language | string | No | Preferred language code |
| source | string | No | auto or manual |
| format | object | No | Output format options |
Response
Successful responses return JSON with:
request_id/batch_id— Request identifierstatus—completed,partial,processing, orfailed(for batch: poll GET /batch/{batch_id} whenprocessing)data— Transcript withtext,language,source, optionalsegments,paragraphs,wordscredits_used— Credits consumed
Pricing
This Actor uses monthly rental pricing. Subscribe once for unlimited API access within your plan limits. Check the Apify Store for current pricing.
FAQ
Which videos are supported?
Public YouTube videos with captions (manual or auto-generated). Private, unlisted, or age-restricted videos are not supported.
What if a video has no captions?
The API returns 404 with "No captions available for this video."
Which languages are supported?
All languages available on YouTube (100+). Set the language parameter to any ISO 639-1 code (e.g. en, es, de, ja, ko).
Is ASR (audio transcription) available?
No. This Actor supports captions only. Videos without captions cannot be transcribed.