YouTube transcripts for RAG and LLMs
Turn a channel, a course playlist or a list of videos into text an LLM can search and cite, with timed segments for links back to the moment in the video.
Steps
- Give the actor channel, playlist or video links, and a date range if you want only recent videos.
- Read
transcriptfor the text andsegmentsfor timestamps. - Chunk by segment, embed, and store the video URL with the start time for citations.
Actors for this job
YouTube Transcript & Subtitles Scraper
Give it YouTube video, Shorts, channel or playlist links (or plain video IDs) and it returns each transcript (subtitles, captions) as JSON: full text, timed segments, language, whether it was auto-generated, every caption language the video has, and the video's title, channel, length, publish date and views. From $2.48 per 1,000 transcripts (less on higher Apify plans); you pay only for rows you get.
$2.48 per 1,000 transcripts on the Free plan, down to $1.80 on higher plans
- RAG and knowledge bases: index a channel's or a course playlist's transcripts with timestamps for citations.
- Summaries and notes: feed
transcriptto an LLM;wordCounttells you how many tokens to expect. - Content and competitor research: what a channel talked about this month (
publishedAfter).
YouTube Scraper
Give it YouTube channels, playlists, search terms, hashtags or video links and it returns one JSON row per video or Short: title, channel, exact publish date, duration, views, likes, category, Shorts and live flags, tags, hashtags, description, thumbnail and caption languages. Shorts also get comment count and sound. $3.60 per 1,000 videos, or $1.17 in fast listing mode; you pay only for rows you get.
$3.60 per 1,000 videos on the Free plan, down to $2.16 on higher plans
- Channel tracking: every new video of your competitors' channels each day, with views and likes.
- Influencer research: recent output, average views and posting rhythm of a list of channels.
- Search monitoring: who ranks for your keywords on YouTube (
position), and how that changes.
Quick start
Run the first actor from Python (set APIFY_TOKEN):
# pip install apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("arcadium/youtube-transcripts").call(run_input={
"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"languages": [],
"captionType": "any",
"maxVideosPerSource": 10,
"subtitleFormat": "none",
})
items = client.dataset(run.default_dataset_id).list_items().items # apify-client 3.x returns a Run object
print(items)
Or give an AI assistant both actors as tools:
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/youtube-transcripts,arcadium/youtube-videos",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}