YouTube Transcript Scraper & API for AI (Bulk, RAG-ready) avatar

YouTube Transcript Scraper & API for AI (Bulk, RAG-ready)

Pricing

from $2.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper & API for AI (Bulk, RAG-ready)

YouTube Transcript Scraper & API for AI (Bulk, RAG-ready)

Scrape YouTube transcripts, subtitles and captions in bulk from videos, Shorts, channels, playlists or search. Clean text, Markdown, timestamps and RAG chunks for LLMs. $2 per 1,000, free without captions.

Pricing

from $2.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

mohamed senator

mohamed senator

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

Scrape YouTube transcripts, subtitles and captions in bulk and feed them straight into ChatGPT, Claude, LangChain, LlamaIndex or your vector database. Give it video URLs, Shorts, whole channels, playlists or YouTube search terms. You get clean text, Markdown, timed segments and ready-made RAG chunks, each with a link to the exact moment in the video.

$2 per 1,000 transcripts. Videos without captions are free.

YouTube Transcript Scraper for AI: videos, Shorts, channels, playlists or search terms go in; captions in your languages are read; clean text, Markdown and RAG chunks with timestamps come out

Why use it

  • Bulk input. Mix video URLs, Shorts, whole channels (@handle), playlists and YouTube searches in one run.
  • Ready for AI. Each video comes back as plain text, Markdown with timestamps, and RAG chunks of about 300 words with start and end times and a &t= link.
  • Video facts included. Title, channel, publish date, length, views, category, description and keywords at no extra cost.
  • Any language. Pick your preferred caption languages, allow or block auto-generated captions, or have YouTube translate the captions into another language.
  • Reliable. Requests go through residential proxies with automatic retries, and you only pay when a transcript is returned.

How to get YouTube transcripts in 3 steps

  1. Paste video URLs, @channel handles, playlist URLs or search terms into the input.
  2. Pick your caption languages (English by default) and the RAG chunk size.
  3. Click Start, then download the results as JSON, CSV or Excel, or read them through the API.

Example output for one video: title, channel, publish date, language, word count and RAG chunks with start and end times and a timestamped YouTube link

Input

FieldWhat it doesDefault
videosVideo or Shorts URLs, or video IDs
channelsChannel URLs, @handles or channel IDs (newest videos first)
playlistsPlaylist URLs or IDs
searchQueriesSearch terms (top video results)
maxVideosPerSourceVideos per channel, playlist or search20
languagesPreferred caption languages, in order["en"]
allowAutoGeneratedUse YouTube's automatic captions when neededtrue
translateToTranslate captions into this language, for example ar
chunkWordsRAG chunk size in words (0 = off)300
includeMarkdown, includeSegments, includeDescriptionTurn parts of the output on or offtrue

If no preferred language matches, the actor uses the video's own spoken language.

Output

One dataset row per video:

{
"videoId": "aircAruvnKk",
"url": "https://www.youtube.com/watch?v=aircAruvnKk",
"title": "But what is a neural network? | Deep learning chapter 1",
"channelName": "3Blue1Brown",
"channelId": "UCYO_jab_esuFRV4b17AJtAw",
"publishDate": "2017-10-05T08:11:25-07:00",
"durationSeconds": 1120,
"viewCount": 24895211,
"category": "Education",
"language": "en",
"isAutoGenerated": false,
"isTranslated": false,
"wordCount": 3357,
"text": "This is a 3. It's sloppily written and rendered at an extremely low resolution...",
"markdown": "# But what is a neural network? ...\n\n## Transcript\n\n[0:04](https://www.youtube.com/watch?v=aircAruvnKk&t=4s) This is a 3...",
"segments": [{ "start": 4.22, "duration": 1.18, "text": "This is a 3." }],
"chunks": [{ "index": 0, "text": "This is a 3. ...", "start": 4.22, "end": 100.26, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=4s" }],
"availableLanguages": [{ "code": "en", "name": "English", "isAutoGenerated": false }],
"error": null
}

Videos without captions still get a row with the video facts and "errorCode": "no_captions". You are not charged for them.

Use it from code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("s3nafps/youtube-transcripts-for-ai").call(run_input={
"channels": ["@3blue1brown"],
"maxVideosPerSource": 50,
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
print(video["title"], video["wordCount"])

LangChain documents for RAG

from langchain_core.documents import Document
docs = [
Document(page_content=c["text"], metadata={"title": v["title"], "url": c["url"], "start": c["start"]})
for v in client.dataset(run["defaultDatasetId"]).iterate_items() if v.get("chunks")
for c in v["chunks"]
]

Each chunk keeps a link to its moment in the video, so your AI's answers can cite the exact timestamp.

AI agents (MCP)

Add the actor to Apify's MCP server and Claude, Cursor or any MCP client can call it as a tool.

Pricing

Price per 1,000 transcripts: $2 for this actor, $5, $7 and $10 for other popular Store actors

WhatPrice
Transcript returned$0.002 ($2 per 1,000)
Run start$0.005
Video with no captions, unavailable or failedFree
Listing videos from channels, playlists or searchesFree

Set a maximum cost per run in the run options and the actor stops cleanly when it is reached.

FAQ

Does it transcribe videos that have no captions? Not yet. It reads the captions YouTube already has, including auto-generated ones, which covers most videos with speech.

Can I get transcripts in another language? Yes. Set languages to pick from existing captions, or translateTo to have YouTube translate them.

Does it work for YouTube Shorts? Yes. Paste Shorts URLs like any video, or find them through search.

Can I use it as a YouTube transcript API? Yes. Start a run through the Apify API or the Python and JavaScript clients and read the dataset, as shown above.

Is there a limit? No hard limit. Use maxVideosPerSource for channels, playlists and searches.

Is it legal? It only reads public captions. Check that your use follows YouTube's terms and copyright law where you live.

Found a bug or need a field? Open an issue on the actor's Issues tab. If it saves you time, a review on the Store helps others find it.