YouTube Transcript Scraper: Videos, Shorts, Channels avatar

YouTube Transcript Scraper: Videos, Shorts, Channels

Pricing

from $3.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper: Videos, Shorts, Channels

YouTube Transcript Scraper: Videos, Shorts, Channels

Extract YouTube transcripts, subtitles and captions from videos, Shorts, playlists and entire channels. Get clean text, timestamped segments or SRT in any language, with auto-translation. Built for AI, RAG and content repurposing. Pay only for transcripts delivered.

Pricing

from $3.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

Sergio Cantu Salazar

Sergio Cantu Salazar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

YouTube Transcript Scraper

Get the transcript (subtitles) of any YouTube video as clean text, timestamped segments or an SRT file. Paste videos, Shorts, whole playlists or channels, choose your languages, and optionally translate everything into one language. You only pay for transcripts that are delivered: videos without captions cost nothing.

What you can do with it

  • Feed AI tools and LLMs. Turn videos into text for summaries, RAG pipelines, embeddings or fine-tuning datasets.
  • Repurpose content. Get blog posts, newsletters, show notes and social posts out of your own videos.
  • Research and monitoring. Search what a channel or a whole playlist says about a topic without watching hours of video.
  • Subtitles. Download SRT files for editing, archiving or accessibility.
  • Multilingual work. Get transcripts in Spanish, Portuguese, English or any language YouTube supports, or translate them.

Features

  • Works with videos, Shorts, live replays, playlists and channels (newest videos first). Plain video IDs also work.
  • Language preferences in order, for example ["es", "en"]. es also matches regional variants such as es-419 and es-ES.
  • Human-made captions first, auto-generated captions only when there is nothing better.
  • Translation into any language YouTube supports, using YouTube's own translation.
  • Three output formats at once: plain text, segments with start time and duration, and SRT.
  • Video details included: title, channel name and channel URL.
  • Clear errors: every video that has no transcript still appears in the results with the reason (no captions, unavailable, blocked), so nothing silently disappears.
  • Light and fast: it calls YouTube's player API directly instead of loading full web pages.

Input

FieldWhat it doesDefault
startUrlsVideo, Shorts, playlist or channel URLs (or video IDs)required
languagesPreferred language codes, in order["en"]
fallbackToAnyLanguageIf no preferred language exists, return any available transcripttrue
translateToTranslate every transcript into this language codeempty
includeTimestampsAdd timestamped segmentstrue
includeSrtAdd an SRT subtitle filefalse
maxVideosPerSourceVideos taken from each playlist or channel50
maxTranscriptsStop after this many videos in total (0 = no limit)0
maxConcurrencyVideos processed at the same time3
residentialFallbackRetry blocked videos through residential IPstrue
proxyConfigurationProxy for the first attemptApify Proxy

Example:

{
"startUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://www.youtube.com/@veritasium",
"https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI"
],
"languages": ["es", "en"],
"translateTo": "es",
"maxVideosPerSource": 20
}

Output

One item per video:

{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"channelUrl": "https://www.youtube.com/@RickAstleyYT",
"languageCode": "es-419",
"language": "Spanish (Latin America)",
"isAutoGenerated": false,
"translatedTo": null,
"availableLanguages": ["de-DE", "en", "es-419", "ja", "pt-BR"],
"wordCount": 308,
"durationSeconds": 211,
"text": "Conocemos bien el amor Tú conoces las reglas, igual que yo ...",
"segments": [
{ "start": 18.64, "duration": 3.24, "text": "Conocemos bien el amor" }
],
"status": "ok"
}

Videos without a transcript come back with "status": "error" and an error message, and they are not charged.

You can export the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

Pricing

Pay per transcript delivered. Failed videos, videos without captions and playlist or channel listings are free. You can set a maximum cost per run in the run options and the Actor stops when it reaches it.

Tips

  • Blocked videos are retried through residential IPs automatically. If some still fail, lower Parallel requests or choose the RESIDENTIAL group under Proxy.
  • To get every video of a channel, raise Max videos per playlist or channel.
  • To get Shorts from a channel, use its Shorts tab URL, such as https://www.youtube.com/@channel/shorts.

FAQ

Does it work for videos without captions? No. It reads the captions YouTube already has, either uploaded by the creator or auto-generated. Most videos with speech have auto-generated captions.

Is it legal? It only reads publicly available captions and does not log in to any account. Make sure your use of the data follows YouTube's terms and the laws that apply to you.

Can I call it from my code? Yes. Use the Apify API or the Apify clients for JavaScript and Python with the same input as above.