YouTube Transcript Extractor - Timestamped Segments & Full Text
Pricing
from $5.00 / 1,000 item processeds
YouTube Transcript Extractor - Timestamped Segments & Full Text
Extract YouTube video transcripts as timestamped segments and combined plain text. Accepts video URLs, Shorts links, embed links or bare video IDs.
Pricing
from $5.00 / 1,000 item processeds
Rating
0.0
(0)
Developer
Sam S
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract YouTube video transcripts as timestamped segments and combined plain text. Accepts video URLs, Shorts links, embed links or bare video IDs.
What you get
Every row contains:
inputvideoIdlanguagesegmentCounttimestamptranscripttext
{"input": "https://www.youtube.com/watch?v=jNQXAC9IVRw","videoId": "jNQXAC9IVRw","language": "en","segmentCount": 6,"timestamp": "2026-08-25T12:08:28.018Z","transcript": [{"text": "All right, so here we are, in front of the\nelephants","start": 1200,"duration": 2160},{"text": "the cool thing about these guys is that they\nhave really...","start": 5318,"duration": 2656},{"text": "really really long trunks","start": 7974,"duration": 4642},{"text": "and that's cool","start": 12616,"duration": 1751},{"text": "(baaaaaaaaaaahhh!!)","start": 14421,"duration": 1312},{"text": "and that's pretty much all there is to\nsay","start": 16881,"duration": 2000}],"text": "All right, so here we are, in front of the\nelephants the cool thing about these guys is that they\nhave really... really really long trunks and that's cool (baaaaaaaaaaahhh!!) and that's pretty much all there is to\nsay"}
Input
| Field | Type | Required | Description |
|---|---|---|---|
videoUrl | array | yes | YouTube videos to transcribe. Accepts watch URLs, youtu.be links, /shorts/ links, /embed/ links or bare 11-character video IDs. Default: ["https://www.youtube.com/watch?v=jNQXAC9IVRw"]. |
language | string | no | Language code of the captions to fetch, e.g. 'en' for English, 'es' for Spanish. If the requested language isn't available, the tool falls back to the video's default captions. Default: "en". |
includeTimestamps | boolean | no | When on, the result includes each caption line with its start time and duration, not just the plain text. Default: true. |
combineIntoText | boolean | no | When on, the result also includes a single 'text' field with the entire transcript joined together, handy for pasting into other tools. Default: true. |
proxyConfiguration | object | no | Requests go out through this proxy. YouTube refuses its caption endpoint to datacenter IPs. Default: {"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}. |
Use cases
- Feeding video content into an LLM or RAG pipeline as clean text.
- Building searchable archives of a channel without watching anything.
- Repurposing talks and interviews into articles, show notes or social posts.
Pricing
$5.00 per 1,000 results. You are charged once per record written to the dataset, and never for a result you do not receive — validation failures and duplicates are dropped before billing.
The first 10 items of every run are free, so you can check that the output has the fields you need before paying for any of it.
Notes
- Accepts full watch URLs, youtu.be links, /shorts/ links, /embed/ links, or a bare 11-character video ID.
- Returns both
transcript(segments with start and duration in milliseconds) andtext(everything joined). - Uses YouTube's public caption endpoint — no API key, no login, no quota to manage.
- A video with captions disabled returns an error for that item and does not stop the run.
Support
Open an issue on this Actor if a field stops populating or a run returns nothing. Selector drift is a bug, not a fact of life — these parsers are re-tested weekly against the live site.