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 an AI-generated summary, topics, chapters, action items, sentiment and quotable highlights. Built for research workflows 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

2

Total users

0

Monthly active users

18 hours ago

Last modified

Share

What is YouTube AI Transcript Extractor?

YouTube AI Transcript Extractor returns one dataset row per YouTube video with the full transcript and an AI analysis of it: a summary in the length you choose, topic tags, timestamped chapters, and optionally action items, sentiment and quotable highlights, alongside the video title, channel, publish date, duration, view count and thumbnail. Content marketers, researchers, podcast and interview analysts, and AI agents use it to understand long videos without watching them or pasting thousands of words into a prompt.

Why people use this transcript extractor

  • Structured insight, not just text. aiSummary, aiTopics and aiChapters arrive as clean fields next to transcriptText.
  • Chapters with timestamps. Each entry in aiChapters has startSeconds, a title and a one-line summary, ready for show notes or video descriptions.
  • Pick only what you need. includeSummary, includeTopics, includeChapters, includeActionItems, includeSentiment and includeQuotes switch each AI field on or off.
  • Cross-language output. transcriptLanguage picks the caption track and aiOutputLanguage sets the language of the AI fields, so a Spanish talk can get an English summary.
  • Token transparency. aiModelUsed, aiInputTokens and aiOutputTokens show what each analysis used.
  • Bring your own key. anthropicApiKey runs the AI step on your own quota.

Best fit for this Actor

  • Best fit for summarizing interviews, webinars, tutorials, podcasts and talks into notes, chapters and tags.
  • Designed for individual videos: watch URLs, youtu.be links, Shorts URLs or bare 11-character video IDs.
  • When you only need raw transcripts, or want to start from a channel or search, use YouTube Transcript and Subtitle Data Scraper instead.
  • To build the video list first, start with YouTube Channel Videos Scraper, then pass the video URLs into videoUrls here.

Example workflow: from a webinar backlog to show notes

A B2B marketing team starts with the URLs of their last ten webinars in videoUrls, with summaryLength set to medium and includeQuotes and includeActionItems on. The dataset returns a summary, topic tags, chapters, takeaways and quotable lines per video. They paste aiChapters into each YouTube description, turn aiQuotes into social posts, and feed aiActionItems into a recap newsletter. They then schedule a weekly run on new uploads and export the rows to their content calendar.

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"
}
FieldTypeWhat it controls
videoUrlsarray of stringsYouTube watch URLs, youtu.be links, Shorts URLs or 11-character video IDs. Required.
includeSummarybooleanAdd aiSummary. Default true.
summaryLengthstringshort, medium or long. Default medium.
includeTopicsbooleanAdd aiTopics. Default true.
includeChaptersbooleanAdd timestamped aiChapters. Default true.
includeActionItemsbooleanAdd aiActionItems. Default false.
includeSentimentbooleanAdd aiSentiment. Default false.
includeQuotesbooleanAdd aiQuotes. Default false.
transcriptLanguagestringCaption track language as an ISO 639-1 code. Default en.
aiOutputLanguagestringLanguage for the AI fields. Default English.
anthropicApiKeystringOptional, stored as a secret. Your own key for the AI step.
proxyConfigurationobjectProxy settings. Default uses residential Apify Proxy.

Output

One row per video.

FieldWhat it contains
videoId, videoUrl, title, thumbnailVideo identity
channelName, channelUrlChannel
publishedAt, durationSeconds, viewCountVideo metadata
transcriptText, wordCountFull transcript and its length
languageUsed, isAutoGeneratedCaption track used and whether it was auto-generated
aiSummaryNarrative summary
aiTopicsTopic tags
aiChaptersChapters with startSeconds, title and summary
aiActionItems, aiSentiment, aiQuotesOptional AI fields, when switched on
aiModelUsed, aiInputTokens, aiOutputTokensAI model and token usage
transcriptStatussuccess, or the reason no transcript was available
scrapedAtCollection time

Illustrative row for a short tutorial video (transcript trimmed):

{
"videoId": "abc123XYZ00",
"videoUrl": "https://www.youtube.com/watch?v=abc123XYZ00",
"title": "How to Price a Freelance Project in 5 Minutes",
"channelName": "Example Studio",
"channelUrl": "https://www.youtube.com/channel/UCexample000000000000000",
"publishedAt": "2025-03-14T09:00:00-07:00",
"durationSeconds": 312,
"viewCount": 48210,
"thumbnail": "https://i.ytimg.com/vi_webp/abc123XYZ00/maxresdefault.webp",
"transcriptText": "Today I'll show you the three numbers I use to price every project...",
"wordCount": 912,
"languageUsed": "en",
"isAutoGenerated": true,
"aiSummary": "The creator explains a three-step method for pricing freelance work: estimate hours, set a target day rate, then add a risk buffer.",
"aiTopics": ["Freelancing", "Pricing", "Project Estimates"],
"aiChapters": [
{ "startSeconds": 0, "title": "Why pricing goes wrong", "summary": "Common reasons freelancers undercharge." },
{ "startSeconds": 74, "title": "The three numbers", "summary": "Hours, day rate and risk buffer explained." }
],
"aiActionItems": null,
"aiSentiment": null,
"aiQuotes": null,
"aiModelUsed": "claude-haiku-4-5-20251001",
"aiInputTokens": 1976,
"aiOutputTokens": 785,
"transcriptStatus": "success",
"scrapedAt": "2026-10-01T13:32:15.715Z"
}

Pricing

This Actor uses Pay per event plus Apify platform usage. Each video with a transcript is one Transcript extracted event, and each video that gets AI fields is one AI enrichment event; with your own anthropicApiKey the AI enrichment event is skipped. Every run also has one Actor Start event plus the platform usage of the run. For example, ten videos with summaries are ten Transcript extracted events, ten AI enrichment events and one start event. Videos without an available transcript add no transcript or AI events. The live Pricing tab on this page shows the current event prices.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~youtube-ai-transcript-extractor/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"], "summaryLength": "short", "includeChapters": true}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/youtube-ai-transcript-extractor").call(run_input={
"videoUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
"includeQuotes": True,
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
print(video["title"], video["aiSummary"])
for chapter in video.get("aiChapters") or []:
print(chapter["startSeconds"], chapter["title"])

Use with AI agents (MCP)

Connect the Actor to Claude, ChatGPT or Cursor through Apify MCP and ask:

Summarize this YouTube interview in five sentences, list its chapters with timestamps, and pull three quotable lines.

The agent passes the URL in videoUrls with includeQuotes on, reads the row with get-dataset-items, and answers from aiSummary, aiChapters and aiQuotes, linking back to videoUrl. It checks transcriptStatus first, and each video costs one transcript event plus one AI event, so the cost of a request scales with the number of URLs.

Best results

Starting situationHelpful actionExpected outcome
Show notes for a long videoKeep includeChapters on and set summaryLength to longDetailed chapters and summary
Tutorials and how-tosTurn on includeActionItemsStep-by-step takeaways
Social clipsTurn on includeQuotesQuotable lines with context
A non-English videoSet transcriptLanguage to its language and aiOutputLanguage to yoursTranslated analysis
High volumeAdd your own anthropicApiKeyAI step billed to your own quota
Raw text onlySwitch off every AI fieldTranscript rows for your own pipeline

Builder's note

I built this because pasting a full transcript into a chat is slow and expensive, while a summary, tags and chapters answer most questions about a video. I made each AI field a separate switch so a run only produces, and pays for, the analysis you actually use, and I kept the transcript in every row so the AI output can always be checked against the source.

FAQ

What happens when a video has no captions?

The row's transcriptStatus names the reason, and only the start event applies to that video.

Does it work with Shorts?

Yes. Shorts URLs are handled like standard watch URLs.

Can I analyze a whole channel?

Collect the channel's video URLs first with the YouTube Channel Videos Scraper linked above, then pass them in videoUrls.

Responsible use

This Actor reads public YouTube captions and video metadata. Transcripts are the creators' content, so respect copyright and fair-use rules, attribute creators when you quote them, and follow YouTube's terms and applicable laws.