YouTube Transcripts: Videos, Playlists & Channels avatar

YouTube Transcripts: Videos, Playlists & Channels

Pricing

from $3.50 / 1,000 transcripts

Go to Apify Store
YouTube Transcripts: Videos, Playlists & Channels

YouTube Transcripts: Videos, Playlists & Channels

Get YouTube transcripts as clean text, timestamped segments, SRT, or AI-ready chunks for RAG. Paste videos, whole playlists or channels, pick your languages, and never pay for videos without captions.

Pricing

from $3.50 / 1,000 transcripts

Rating

0.0

(0)

Developer

T3 Data

T3 Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Categories

Share

A YouTube transcript API with no API key and no quota. Paste a video, a playlist or a whole channel and get every transcript as clean text, timestamped segments, SRT subtitles or AI-ready chunks for RAG. You only pay for transcripts you get: videos without captions are free.

💲 Price$5 per 1,000 transcripts. Failed videos are free.
⚡ Speed~60 transcripts in 20–30 seconds
📥 InputVideo URLs or IDs, Shorts, live replays, playlists, channels (@handle)
📤 OutputText, timestamped segments, SRT, RAG chunks, video metadata
🌍 LanguagesAny language YouTube has. You set the order of preference.

What people use it for

  • AI / LLM pipelines: load chunks into a vector database, or feed transcripts to summarizers and agents
  • Content repurposing: turn videos into blog posts, newsletters, show notes and social threads
  • Research and competitor analysis: what does a channel talk about across hundreds of videos?
  • Subtitles and accessibility: ready-made .srt files
  • SEO: text versions of your own videos

How to use it

  1. Paste one or more YouTube URLs (videos, playlists or channels) into YouTube URLs.
  2. Optional: set languages, turn on AI-ready chunks, or add SRT.
  3. Click Start, then download the results as JSON, CSV or Excel, or fetch them through the API.

For AI agents and automations

  • One job: get the transcript (text, timestamps, SRT or RAG chunks) of YouTube videos, playlists or channels. Minimal input: { "urls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"] }
  • Fast enough for a single tool call: 1–10 videos finish in under 15 seconds; ~60 in 20–30 seconds, which fits inside the Apify MCP server's default 30-second wait. For big jobs, start the run asynchronously and read the dataset when it finishes.
  • Where the results are: dataset items (fields below). A run summary is in the key-value store record OUTPUT: status (SUCCEEDED, PARTIAL, STOPPED_AT_SPEND_LIMIT, ABORTED, NO_RESULTS, SOURCE_UNAVAILABLE), results, errorsByCode and a plain-English message.
  • Predictable billing: pay per event. Only successful transcripts are charged; error rows are free.
  • Respects "Max cost per run": it never starts work your budget can't pay for, then stops cleanly with status STOPPED_AT_SPEND_LIMIT. Everything fetched up to that point is kept.
  • Graceful on abort and restarts: partial results are always kept, and a platform restart resumes without duplicates or double charges.
  • Honest failures: if the source blocks every request or changes its format, the run fails with a clear message and you pay $0, instead of quietly returning empty results.
  • Works with the Apify MCP server (Claude, Cursor, other agents), agentic payments, and the API.

Input examples

One video:

{ "urls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"] }

The last 100 uploads of a channel, chunked for RAG:

{ "urls": ["https://www.youtube.com/@mkbhd"], "maxVideosPerPlaylist": 100, "includeChunks": true, "chunkMaxWords": 300, "includeSegments": false }

Spanish first, then English, with SRT included:

{ "urls": ["https://youtu.be/NFvDHYMzj9U"], "languages": ["es", "en"], "includeSrt": true }

Output

One item per video. From a real run (arrays shortened):

{
"status": "ok",
"videoId": "jNQXAC9IVRw",
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"title": "Me at the zoo",
"channelName": "jawed",
"channelId": "UC4QobU6STFB0P71PMvOGN5A",
"durationSeconds": 19,
"viewCount": 444364886,
"language": "en",
"isAutoGenerated": false,
"availableLanguages": [{ "code": "en", "name": "English", "isAutoGenerated": false }, { "code": "de", "name": "German", "isAutoGenerated": false }],
"text": "All right, so here we are, in front of the elephants the cool thing about these guys is that they have really... really really long trunks ...",
"segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }]
}

With AI-ready chunks on, each video also gets a chunks array. Every chunk carries its own timestamped link and metadata, so you can embed it as is:

{ "chunkId": "QVv3mQzlrN0-1", "index": 1, "text": "And I'm gonna try to make it quick...", "wordCount": 193, "startSeconds": 50.76, "endSeconds": 104.8, "url": "https://www.youtube.com/watch?v=QVv3mQzlrN0&t=50s", "videoId": "QVv3mQzlrN0", "title": "Apple Homeview Impressions: Not Convinced!", "channelName": "Marques Brownlee" }
FieldMeaning
textFull transcript as one string
segments{start, duration, text} per caption line, in seconds
srtReady-to-save SRT subtitles (optional)
chunksOverlapping RAG chunks with timestamps, links and metadata (optional)
language / isAutoGeneratedWhich caption track you got, and whether YouTube generated it automatically
availableLanguagesEvery caption track on the video
title, channelName, channelId, durationSeconds, viewCount, isLive, descriptionVideo metadata (the description is optional)
status / errorCodeok, or why there's no transcript (free)

Cost examples

JobTranscriptsCost
10 videos10$0.05
A channel's last 200 videos200$1.00
5,000 videos for an AI dataset5,000$25.00

Videos without captions in any of these jobs cost $0. Set Max cost per run to cap any run, and the actor stops cleanly at the limit.

Integrations

  • API: client.actor("t3data/youtube-transcripts").call({ urls: [...] }) (JS), or client.actor("t3data/youtube-transcripts").call(run_input={"urls": [...]}) (Python). Full snippets are on the API tab.
  • AI agents (MCP): available as a tool through the Apify MCP server, so Claude, Cursor and other agents can fetch transcripts on demand.
  • n8n node: install n8n-nodes-t3data-youtube-transcripts (n8n → Settings → Community Nodes → Install) for a ready-made node with all the options above, also usable as an AI Agent tool. npm package
  • No-code: Make, Zapier, Google Sheets, Slack and webhooks, through Apify integrations.
  • Export: JSON, CSV, Excel, XML, HTML or RSS.

Error codes (never charged)

CodeMeaning
NO_CAPTIONSThe video has no captions or auto-generated transcript
EMPTY_TRANSCRIPTA caption track exists but is empty
VIDEO_UNAVAILABLEPrivate, deleted or unavailable in this region
AGE_RESTRICTED_OR_PRIVATENeeds a signed-in account
INVALID_URLNot a YouTube video, playlist or channel link
PLAYLIST_NOT_FOUND / CHANNEL_NOT_FOUNDThe playlist is private, or the channel handle doesn't exist
SOURCE_UNAVAILABLE (run status)Every request was blocked, or the source changed its format. The run fails with $0 charged; retry later
BLOCKEDYouTube kept refusing after every retry (rare; try again)

FAQ

No transcript for a video? Check whether the video shows a "Show transcript" button on YouTube. If it doesn't, there are no captions to fetch, and the video comes back as NO_CAPTIONS, free.

Wrong language? languages is an order of preference. If none of your languages exist on the video, you get the video's own language. availableLanguages shows everything the video has.

Do I need a proxy or a YouTube API key? No. A residential proxy and IP rotation are built in, and their cost is included in the price.

Is it legal? It reads only publicly available captions, the same text anyone can open on YouTube. How you use the data is up to you, so respect copyright and YouTube's terms for your use case.

Something broke? Open an issue on the Issues tab with the video URL. Fixes usually ship within a day.

Limits

  • Private, members-only and age-restricted videos aren't supported, since they need a signed-in account.
  • Streams that are still live have no transcript until they end.
  • Translation isn't offered. You get the caption tracks the video actually has.

More from T3 Data


This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by YouTube or Google. It only accesses publicly available captions.