YouTube Transcript API: Captions with Timestamps
Pricing
from $5.00 / 1,000 transcripts
YouTube Transcript API: Captions with Timestamps
Get YouTube video transcripts from video URLs or IDs: full caption text, timestamped segments and language. Uses the video's existing captions only, no AI guessing. Videos without captions are free.
Pricing
from $5.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
SteadyScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
43 minutes ago
Last modified
Categories
Security
Limited permissionsShare
Get the transcript of any public YouTube video from its URL or video ID: full caption text, timestamped segments (start/end in seconds) and video link. Paste one link or a list of up to 200 videos and get clean JSON, CSV or Excel back. $0.005 per transcript; videos without captions are free.
Only real captions. We return the captions that exist on the video (creator-uploaded or YouTube auto-generated). No AI guessing, no speech-to-text, no invented text. If a video has no captions, you get a clear no_captions row and you are not charged.
What you can use it for
- Feed video transcripts into LLMs, RAG pipelines and summarizers
- Content research, SEO and repurposing videos into articles
- Searching what was said in a video, with timestamps to jump to
- Subtitle analysis across many videos
Input
| Field | Description |
|---|---|
videos | YouTube links (watch, youtu.be, shorts, embed, live) or 11-character IDs. Duplicates removed. Max 200 per run. |
includeSegments | Timestamped caption lines (default on). Turn off for plain text only. |
mock | Test mode: returns sample text (not real captions) so you can test your integration. Free. |
{ "videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/9bZkp7q19f0"], "includeSegments": true }
Output (one row per video, illustrative example)
{"videoId": "dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","status": "ok","language": null,"requestedLanguage": "en","text": "We're no strangers to love ...","chars": 2089,"segmentCount": 61,"durationSec": 211.3,"segments": [{ "start": 18.6, "end": 21.9, "text": "We're no strangers to love" }],"truncated": false,"chargeEvent": "transcript"}
status is one of: ok, no_captions, unavailable (private, removed or restricted), invalid (not a YouTube video link), timeout, failed, skipped. Only ok rows are charged.
Language fields: language is null in this version because the data source does not reliably report which caption track it returned. requestedLanguage is only the preference sent with the request, not the spoken or caption language. Captions are returned as the video provides them; translation is not offered.
no_captions vs unavailable: the data source often cannot tell a video without captions apart from a deleted, private or mistyped video ID, so those may all show as no_captions. All of them are free.
Pricing
Pay only when you get transcripts:
- $0.005 per transcript returned (status
ok) - $0.003 per run, charged only if the run returned at least one transcript
- Plus Apify's standard $0.00005 Actor start fee.
Videos without captions, unavailable or invalid videos, timeouts, errors, skipped videos and test mode are free. A run where no video had a transcript pays only the Apify start fee.
Examples: 1 video = $0.008. 10 videos with captions = $0.053. 1,000 videos with captions (5 runs of 200) = $5.015.
Limits
- Public videos with existing captions only. No logins, no cookies, no private or members-only videos. No AI or audio transcription.
- Up to 200 videos per run; very long transcripts are cut at 1,000,000 characters (
truncated: true). - Captions are usually ready within a minute; a video still pending after 5 minutes is returned as
timeout(free) so you can retry it. - Maximum charge per run is respected: videos are only sent when the remaining budget can pay for them; the rest are returned as
skipped(free). - Runs full of videos without captions stop early: a run stops after 25 videos without a transcript, plus one more for each transcript returned. Remaining videos are
skipped(free); split very large lists or remove videos without captions. - Free Apify plan: up to 10 videos per run and a daily usage limit per account.
- Comments, video stats and search are not included.
FAQ
Do you generate transcripts with AI? No. Only captions already on the video (uploaded or YouTube auto-generated).
Why is language empty? The data source doesn't reliably say which caption track it returned, so we don't guess.
Can I translate captions? Not in this version.
Can I use it from my code or AI agent? Yes: Apify API, scheduling, webhooks, Make, Zapier, n8n and MCP clients all work with this Actor.
Data source & terms
Captions are retrieved from YouTube via the DataForSEO API. This service is not affiliated with or endorsed by YouTube or Google. The service is not offered to customers in Russia, Belarus, Syria, North Korea, or occupied Crimea.
More from SteadyScrape
- YouTube Search Scraper & API: Views, Transcripts: ranked YouTube search results, video stats and transcripts for any keyword, to find the videos worth transcribing.
- PDF to Text Markdown Extractor (Digital, No OCR): bulk-convert digital PDFs from URLs to clean text and Markdown with page counts; scanned files are flagged and free.
- AI Page to JSON: URL + Schema Extractor: turn public web pages into validated JSON from your own field list or JSON Schema; failed, blocked and JS-only pages are free.
- Google Trends Scraper & API: Breakout Alerts: Google Trends interest, momentum and breakout queries for the topics you watch.
See every SteadyScrape (steady-scrape) Actor on our Apify profile.
Support
Questions or a video that should have worked? Open an issue in the Issues tab.
Built and maintained by SteadyScrape.