YouTube AI Transcript Extractor avatar

YouTube AI Transcript Extractor

Pricing

from $5.00 / 1,000 transcript extracteds

Go to Apify Store
YouTube AI Transcript Extractor

YouTube AI Transcript Extractor

Extract YouTube transcripts with AI-generated summary, topics, chapters, action items, sentiment, and quotable highlights. MCP-ready for Claude, GPT, and AI agents.

Pricing

from $5.00 / 1,000 transcript extracteds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Pull a YouTube transcript and turn it into structured insight your AI agent can actually use — summary, topic tags, timestamped chapters, action items, sentiment, and quotable highlights. One actor call, one JSON record per video.

Built for Claude, GPT, Gemini, MCP servers, and humans who don't want to dump a 12,000-word transcript into a prompt.

What you get per video

FieldDescription
transcriptTextFull transcript text, decoded, joined
wordCountWord count
languageUsedISO 639-1 of the caption track fetched
isAutoGeneratedTrue for ASR, false for human captions
aiSummaryAI narrative summary (short / medium / long)
aiTopics3-8 topic/keyword tags
aiChaptersTimestamped TOC [{ startSeconds, title, summary }]
aiActionItemsActionable takeaways (tutorials, how-to)
aiSentiment{ overall, confidence }
aiQuotes3-6 quotable lines with timestamp + context
title, channelName, channelUrl, publishedAt, durationSeconds, viewCount, thumbnailVideo metadata
aiModelUsed, aiInputTokens, aiOutputTokensCost transparency
transcriptStatussuccess / no_transcript / private_video / unavailable / error

When to use this actor

  • AI agents that need to "understand" a YouTube video without watching it.
  • Podcast intelligence, customer-interview research, sales-call analysis.
  • Content marketing: auto-generate chapters, topic tags, pull-quotes.
  • Brand monitoring: sentiment + action items across a creator's recent uploads.
  • Newsletter / blog snippets from interviews and panels.

For raw transcript-only scraping at the cheapest possible price, use youtube-transcript-extractor instead — same 8-strategy fetch, no AI layer, $0.005/video.

Price

EventPriceWhen
apify-actor-start$0.00005Per run
transcript-extracted$0.005Per successfully fetched transcript
ai-enrichment$0.03Per video with AI fields (skipped on BYOK)

Typical run cost (1 video, all AI fields, platform key): ~$0.035. BYOK (your own Anthropic key): $0.005/video — AI on us, you only pay your token bill.

Pay-Per-Event AND Pay-Per-Usage both enabled — buyer picks at run time.

Input

{
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"includeSummary": true,
"summaryLength": "medium",
"includeTopics": true,
"includeChapters": true,
"includeActionItems": false,
"includeSentiment": false,
"includeQuotes": false,
"transcriptLanguage": "en",
"aiOutputLanguage": "English"
}

Required: videoUrls. All AI flags default to a sensible mix (summary+topics+chapters ON, action items / sentiment / quotes OFF) so the first cost looks like the bill you expect.

Use via MCP

The actor is exposed at apify--youtube-ai-transcript-extractor in Apify's MCP server. Add it to Claude Code, Claude.ai, ChatGPT, Cursor, Goose, or any MCP client. Pricing signal is in the tool description so agents budget-check before calling.

Use via API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('khadinakbar/youtube-ai-transcript-extractor').call({
videoUrls: ['https://www.youtube.com/watch?v=jNQXAC9IVRw'],
includeSummary: true,
summaryLength: 'short',
includeTopics: true,
includeChapters: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].aiSummary);
console.log(items[0].aiChapters);

Use via API (Python)

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('khadinakbar/youtube-ai-transcript-extractor').call(run_input={
'videoUrls': ['https://www.youtube.com/watch?v=jNQXAC9IVRw'],
'includeSummary': True,
'summaryLength': 'short',
'includeTopics': True,
'includeChapters': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items[0]['aiSummary'])

How it works

  1. 8-strategy transcript fetch (battle-tested in the sibling youtube-transcript-extractor): ANDROID InnerTube client → inline engagementPanel from page HTML → ANDROID_VR InnerTube player → WEB InnerTube get_transcript → signed baseUrl JSON3 → signed baseUrl XML → unsigned timedtext → ScrapeCreators safety-net. If one strategy returns nothing, the next tries.
  2. Apify residential proxy by default — datacenter IPs get blocked by YouTube. Falls back to datacenter if residential is not available on the account.
  3. AI enrichment uses Anthropic Claude Haiku 4.5 with tool_use forcing structured JSON output. Only requested fields are scored as required in the tool schema, so you don't pay for output you didn't ask for.
  4. BYOK supported — drop your own sk-ant-… key into anthropicApiKey and the ai-enrichment event is not charged; you pay only your own Anthropic bill.

Output language

transcriptLanguage (default en) controls which caption track is fetched. aiOutputLanguage (default English) controls which language the AI fields are written in. You can grab a Japanese transcript and have the summary in English.

FAQ

Q: Why is this separate from youtube-transcript-extractor? That one returns raw transcript text with timestamps. This one runs an LLM analysis on top — different price point, different consumer (AI agents, not data analysts).

Q: What if the video has no captions? transcriptStatus = "no_transcript", errorMessage explains why, no charge for transcript-extracted or ai-enrichment — only the start fee.

Q: Does it handle Shorts? Yes. youtube.com/shorts/<id> URLs are normalized the same as standard watch URLs.

Q: Does it handle bulk? Yes — pass an array. Each video is processed independently, results are pushed as they complete, partial failures don't kill the run.

Q: How long can a video be? Practical limit ~3-4 hours. Very long transcripts are truncated to ~280K characters before being sent to the model, with a warning logged.

Use this actor in accordance with YouTube's Terms of Service and applicable law. This actor only fetches public caption data made available by YouTube's own infrastructure. You are responsible for the legality of how you use scraped content (copyright, fair use, attribution). The actor does not bypass authentication, login walls, or private-video restrictions.

See also