YouTube Transcript & Subtitles API – AI, Channels, Shorts avatar

YouTube Transcript & Subtitles API – AI, Channels, Shorts

Pricing

from $3.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcript & Subtitles API – AI, Channels, Shorts

YouTube Transcript & Subtitles API – AI, Channels, Shorts

Get YouTube transcripts, subtitles and captions from any video, Short, playlist or channel as clean text, timestamps or SRT. Whisper AI for videos without captions. $0.004 per transcript, failed videos are free. Built for ChatGPT, Claude, RAG and n8n.

Pricing

from $3.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

TubeText Labs

TubeText Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

a few seconds ago

Last modified

Share

By TubeText Labs – see all our tools at the end of this page.

Turn YouTube videos, whole playlists or entire channels into clean transcripts ready for ChatGPT, Claude, RAG pipelines, content repurposing and research.

Why this one

  • 💸 You only pay for transcripts delivered. Videos without captions and failed videos are free.
  • ⚡ Fast and reliable – lightweight requests with automatic retries through rotating proxies.
  • 📺 Bulk input – paste video links, playlist links or channel links (@handle, /channel/…). Use …/@handle/shorts for a creator's Shorts only or …/@handle/streams for live replays. youtu.be links work too.
  • 🌍 Language choice – pick preferred languages in order; falls back to the original auto-generated track.
  • 🤖 AI transcription for videos without captions (optional) – turn on AI transcription and videos that have no captions are transcribed with Whisper AI. Billed per started minute, only when a transcript is delivered.
  • 🔁 Only new videos – turn on Only new videos and scheduled runs skip everything you already got. Never pay twice for the same video.
  • 🧩 RAG chunks – optional ~N-word chunks with start/end timestamps, ready for vector databases.
  • 🧠 AI-ready output – plain text, timestamped text, SRT subtitles and raw segments.
  • 📊 Rich metadata – title, channel, publish date, views, likes, category, description, thumbnail and duration.

Input example

{
"urls": [
"https://www.youtube.com/watch?v=aircAruvnKk",
"https://www.youtube.com/@3blue1brown"
],
"maxVideosPerSource": 20,
"languages": ["en"]
}

If you leave out maxVideosPerSource (for example when calling the API), up to 50 videos per channel or playlist are transcribed.

Output example

{
"status": "ok",
"videoId": "aircAruvnKk",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"channelName": "3Blue1Brown",
"durationSeconds": 1120,
"viewCount": 24662699,
"likeCount": 564664,
"publishDate": "2017-10-05T08:11:25-07:00",
"category": "Education",
"description": "What are the neurons, why are there layers, and what is the math underlying it? ...",
"thumbnailUrl": "https://i.ytimg.com/vi_webp/aircAruvnKk/sddefault.webp",
"language": "en",
"isAutoGenerated": false,
"availableLanguages": ["ar", "en", "es", "zh"],
"transcript": "This is a 3. It's sloppily written and rendered at an extremely low resolution of 28x28 pixels, ...",
"timestampedText": "[00:04] This is a 3.\n[00:06] It's sloppily written ...",
"wordCount": 3720
}

Turn on Include SRT subtitles to also get an srt field you can save as a .srt file.

Videos without captions return "status": "no_transcript" and are not charged – unless you enable AI transcription, in which case they come back with "source": "ai" and aiMinutes.

Pricing examples

What you runWhat you pay
1,000 videos that have captions$4.00 (less on paid Apify plans)
A channel with 200 videos, 20 of them without captions, AI off180 × $0.004 = $0.72
Same channel with AI on, the 20 caption-less videos average 3 minutes$0.72 + 60 min × $0.006 = $1.08
Videos that fail, are private/age-restricted, or have no speech$0

You are charged per transcript delivered, never per run attempt. Set Maximum cost per run in the run options to cap spend.

Use it from n8n, Make, Zapier or your code

Easiest: one HTTP request that runs the Actor and returns the transcripts (works in n8n HTTP Request, Make HTTP, Zapier Webhooks):

POST https://api.apify.com/v2/acts/tubetext~youtube-transcript-fast/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN
Content-Type: application/json
{ "urls": ["https://www.youtube.com/watch?v=aircAruvnKk"] }

The response body is the JSON array of transcripts. Put YouTube links in the urls array – nothing else is required.

  • n8n: use the official Apify node → Run Actor and get dataset, Actor tubetext/youtube-transcript-fast, input {"urls": ["{{ $json.videoUrl }}"]}.
  • Make / Zapier: use the Apify app → Run an Actor (wait for finish) → Get dataset items.
  • Google Sheets: in Make, map title, url and transcript from the dataset items to a Add a row module.
  • Python: pip install apify-client, then client.actor("tubetext/youtube-transcript-fast").call(run_input={"urls": [...]}).

Point the Actor at a source and it picks the videos for you:

  • Keyword search – searchQueries (e.g. ["how to invest for beginners"]) with searchPublishedWithin (hour / today / week / month / year / any) and searchSortBy (views / relevance / date; "views" re-sorts by actual view count).
  • Today's trending by country – trendingCountries (e.g. ["us","jp","gb"]), from daily YouTube trending lists (via kworb.net).
  • A channel's most viewed videos – a channel link plus channelSort: "popular" (default "newest").
  • YouTube links from another Actor's results – datasetId (plus datasetSortBy: views or original order).

Each source is capped by maxVideosPerSource (default 50). Finding videos is free; each transcript is billed as usual.

Ready-made examples

TubeText Labs tools

TubeText Labs builds 9 pay-per-result Apify Actors for video, social and e-commerce data – no login, JSON/CSV/Excel output, and ready for ChatGPT and Claude (Apify MCP), n8n, Make and Zapier. All tools: apify.com/tubetext

Transcripts

Video & ad analysis

  • Video Breakdown AI – hook analysis, shot list, cut pacing, products shown and script of any TikTok, Reel or YouTube video
  • Video Ad Analyzer – competitors' YouTube video ads by brand or domain (Google Ads Transparency), torn down by AI

Channel analytics

E-commerce & travel

FAQ

Does "1,000 results" mean 1,000 transcripts? Yes – one charge per delivered transcript (one video = one result).

Why do some videos return no_transcript? The video has no captions (common for kids' content and short clips), is private/members-only/age-restricted, or is a live replay with protected captions. You are not charged. Turn on AI transcription to transcribe caption-less videos.

Which language do I get? The first language in your Preferred languages list that the video has. If none match, the original auto-generated track is returned. availableLanguages lists every caption track on the video. If the track you get is a translation (e.g. you asked for ja on an English video), the row has isTranslation: true and spokenLanguage tells you the original language (en).

Can I monitor a channel every day? Yes – create a schedule with Only new videos turned on; each run only returns (and charges) new uploads. The run's status message tells you how many videos were skipped as already delivered (free).

What if a link is wrong? Bare @handles work (@mkbhd). A channel or playlist that doesn't exist returns channel_not_found / playlist_not_found right away, free. Anything that isn't a YouTube link (e.g. Vimeo) returns an error row instead of being skipped silently, and every transcript row includes the input it came from.

Can I cap what a run costs? Yes – set Maximum cost per run in the run options. The run stops cleanly when the next item would go over it: you are never charged more, and you get a clear "stopped at your limit" status message.

What happens if a big run hits the time limit? It stops cleanly shortly before the limit: everything finished so far is delivered, the run ends as succeeded, and the status message says how many items weren't started. Raise the run timeout, or run again with Only new turned on to continue where it stopped.

Can I download just the text for many videos? Yes – in the run's Storage tab export the dataset as CSV or JSON, or call the API with ?format=csv&fields=title,url,publishDate,transcript to get one row per video with only those columns.

Use cases

  • Feed transcripts into LLMs for summaries, Q&A and knowledge bases
  • Repurpose videos into blog posts, newsletters and social threads
  • Research what creators and competitors say across a whole channel
  • Build datasets for NLP and market research

YouTube to text

Turn any YouTube video, Short, playlist or whole channel into plain text, timestamped segments or SRT. Videos without captions are transcribed with Whisper AI (aiFallback).

YouTube Shorts transcripts

Paste Shorts links (youtube.com/shorts/...) or a channel's Shorts tab (youtube.com/@handle/shorts) and get transcripts for every Short in bulk.

Summaries and RAG

Use chunkWords to get ~N-word chunks with timestamps, ready for embeddings, a vector store or an LLM summary step (n8n, Make, LangChain).

Pricing

Pay per transcript delivered. Optional AI transcription of caption-less videos is billed per started minute of audio. Set Maximum cost per run to control spend – the run stops cleanly when the limit is reached.

Notes

  • Only publicly available captions are returned (creator-uploaded or YouTube auto-generated). Private, members-only and age-restricted videos are returned with status: no_transcript and are not charged.
  • Language order matters: with ["ja", "en"], an English video that also has Japanese captions returns the Japanese track. Put the language you want first.
  • Use the data in line with YouTube's Terms of Service and applicable laws.