YouTube Transcript Scraper avatar

YouTube Transcript Scraper

Pricing

from $1.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper

YouTube Transcript Scraper

Scrape YouTube transcripts and captions from videos, Shorts, channels and playlists. Full text in every result plus downloadable TXT and SRT files, timed segments, and every caption language the video offers. Fast and low cost.

Pricing

from $1.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

Coder

Coder

Maintained by Community

Actor stats

1

Bookmarked

22

Total users

11

Monthly active users

12 days ago

Last modified

Share

Scrape YouTube transcripts and captions from videos, Shorts, live replays, and whole channels or playlists. Every transcript comes as full text in the results, plus downloadable .txt and .srt files, optional timed segments, in any caption language the video has. No YouTube account, no login and no API key needed.

Use it for AI / LLM datasets and RAG, content research and summaries, SEO and keyword research, subtitles and translation workflows, accessibility, and quotes and fact-checking.

What you get

One row per video and language

Each row has the video (ID, link, title, type, channel, duration, publish date), the caption language, whether it is auto-generated, the languages the video offers, a word count, the full transcript text, and links to the .txt and .srt files.

Downloadable files

Every transcript is also saved to the run's key-value store as <videoId>_<language>.txt and .srt (and .json with timed segments when turned on), so you can download subtitles directly or skip the text in the results to keep them small.

Timed segments (optional)

Every caption line with its start time and duration - ready for search-inside-video, clipping or your own subtitle format.

Video details (optional add-on)

Description, views, likes, comment count, tags, category and more for each video, in a separate table.

Input

FieldWhat it does
YouTube linksVideo, Short and live links, youtu.be links, and channel (URL or @handle) or playlist links
Transcript languagese.g. en, es, pt-BR - one row per language the video has. Empty = each video's own language
Include transcript text in resultsOn by default. Turn off to use only the file links
Include timed segmentsEvery caption line with start time and duration (+ a .json file)
Videos per channel or playlistFor channel and playlist links: this many of the newest videos
Published afterFor channel and playlist links: only newer videos
$ Add video detailsAdds a full video row per video in its own table

Example input

{
"startUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://www.youtube.com/@mkbhd"
],
"transcriptLanguages": ["en"],
"maxVideos": 10
}

Example output

{
"type": "transcript",
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"videoType": "video",
"channel": { "id": "UCuAXFkgsw1L7xaCfnd5JJOw", "name": "Rick Astley", "handle": "@RickAstleyYT", "url": "https://www.youtube.com/@RickAstleyYT" },
"duration": "3:34",
"durationSeconds": 214,
"publishedAt": "2009-10-25T06:57:33Z",
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
"wordCount": 402,
"text": "We're no strangers to love You know the rules and so do I ...",
"txtUrl": "https://api.apify.com/v2/key-value-stores/<store>/records/dQw4w9WgXcQ_en.txt",
"srtUrl": "https://api.apify.com/v2/key-value-stores/<store>/records/dQw4w9WgXcQ_en.srt"
}

Pricing

You pay only for transcripts you receive - never for links, retries, or videos without captions in your language.

ResultPrice per 1,000
Transcript (one video, one language, text + files)$2.00
Video details add-on (per video)$1.50

Prices are for the Apify Free plan; paid Apify plans get lower prices automatically. Files, timed segments and date filters are free. You can set a maximum cost per run in the run options - the Actor stops cleanly when it is reached.

Free plan

On Apify's free plan a run uses up to 5 links, 5 videos per channel or playlist and 1 language. Every feature works, so you can try all of them before upgrading.

Good to know

  • Languages: only the caption languages YouTube offers for that video are returned (availableLanguages lists them); a language the video does not have is skipped. Manual captions are preferred over auto-generated ones.
  • Excel: a spreadsheet cell holds about 32,000 characters (roughly a 30-minute video). For longer videos use the .txt link, or export as JSON / CSV.
  • No captions: videos without captions in your languages, upcoming streams, and private or removed videos are skipped and not charged; the run log says how many.
  • Want comments, channel profiles, search results or community posts too? Use our YouTube Scraper.

FAQ

Do I need a YouTube account or API key? No. Everything is public data, collected without logging in.

Where are the files? In the run's key-value store (Storage tab), and each row links to its own files (txtUrl, srtUrl, jsonUrl).

Can I get transcripts for a whole channel? Yes - paste the channel link or @handle and set "Videos per channel or playlist". Use "Published after" for only recent uploads.