YouTube Transcript & Subtitles API – AI, Channels, Shorts
Pricing
from $3.00 / 1,000 transcripts
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
a few seconds ago
Last modified
Categories
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/shortsfor a creator's Shorts only or…/@handle/streamsfor live replays.youtu.belinks 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 run | What 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 off | 180 × $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_TOKENContent-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,urlandtranscriptfrom the dataset items to a Add a row module. - Python:
pip install apify-client, thenclient.actor("tubetext/youtube-transcript-fast").call(run_input={"urls": [...]}).
Transcribe videos without collecting links
Point the Actor at a source and it picks the videos for you:
- Keyword search –
searchQueries(e.g.["how to invest for beginners"]) withsearchPublishedWithin(hour / today / week / month / year / any) andsearchSortBy(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(plusdatasetSortBy: 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
- YouTube Channel to Transcripts
- YouTube Playlist Transcripts
- YouTube Transcript to SRT Subtitles
- YouTube Shorts Transcripts
- YouTube Transcripts for ChatGPT and Claude
- Transcribe YouTube Videos Without Captions (AI)
- Huberman Lab Transcripts
- Lex Fridman Podcast Transcripts
- TED Transcripts
- Y Combinator Transcripts
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
- YouTube Transcript Scraper (this tool) – videos, Shorts, playlists and whole channels to text; Whisper AI when there are no captions
- TikTok Transcript Scraper – TikTok captions plus Whisper AI, SRT and timestamps
- Instagram Reels Transcript – reel links or @usernames to text with Whisper AI
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
- YouTube Channel Analytics – subscribers, recent video performance, Social Blade grade, ranks and estimated earnings
E-commerce & travel
- TikTok Shop Product Scraper – US TikTok Shop prices, items sold, stock per SKU and shop stats
- AliExpress Search Scraper – AliExpress search results by keyword: price, items sold, rating, shipping, badges
- Google Hotels Scraper – hotel prices for any destination and dates, per booking site and as a 90-day price calendar
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_transcriptand 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.