YouTube AI Transcript Extractor
Pricing
from $5.00 / 1,000 transcript extracteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
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,aiTopicsandaiChaptersarrive as clean fields next totranscriptText. - Chapters with timestamps. Each entry in
aiChaptershasstartSeconds, atitleand a one-linesummary, ready for show notes or video descriptions. - Pick only what you need.
includeSummary,includeTopics,includeChapters,includeActionItems,includeSentimentandincludeQuotesswitch each AI field on or off. - Cross-language output.
transcriptLanguagepicks the caption track andaiOutputLanguagesets the language of the AI fields, so a Spanish talk can get an English summary. - Token transparency.
aiModelUsed,aiInputTokensandaiOutputTokensshow what each analysis used. - Bring your own key.
anthropicApiKeyruns 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.belinks, 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
videoUrlshere.
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"}
| Field | Type | What it controls |
|---|---|---|
videoUrls | array of strings | YouTube watch URLs, youtu.be links, Shorts URLs or 11-character video IDs. Required. |
includeSummary | boolean | Add aiSummary. Default true. |
summaryLength | string | short, medium or long. Default medium. |
includeTopics | boolean | Add aiTopics. Default true. |
includeChapters | boolean | Add timestamped aiChapters. Default true. |
includeActionItems | boolean | Add aiActionItems. Default false. |
includeSentiment | boolean | Add aiSentiment. Default false. |
includeQuotes | boolean | Add aiQuotes. Default false. |
transcriptLanguage | string | Caption track language as an ISO 639-1 code. Default en. |
aiOutputLanguage | string | Language for the AI fields. Default English. |
anthropicApiKey | string | Optional, stored as a secret. Your own key for the AI step. |
proxyConfiguration | object | Proxy settings. Default uses residential Apify Proxy. |
Output
One row per video.
| Field | What it contains |
|---|---|
videoId, videoUrl, title, thumbnail | Video identity |
channelName, channelUrl | Channel |
publishedAt, durationSeconds, viewCount | Video metadata |
transcriptText, wordCount | Full transcript and its length |
languageUsed, isAutoGenerated | Caption track used and whether it was auto-generated |
aiSummary | Narrative summary |
aiTopics | Topic tags |
aiChapters | Chapters with startSeconds, title and summary |
aiActionItems, aiSentiment, aiQuotes | Optional AI fields, when switched on |
aiModelUsed, aiInputTokens, aiOutputTokens | AI model and token usage |
transcriptStatus | success, or the reason no transcript was available |
scrapedAt | Collection 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 ApifyClientclient = 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 situation | Helpful action | Expected outcome |
|---|---|---|
| Show notes for a long video | Keep includeChapters on and set summaryLength to long | Detailed chapters and summary |
| Tutorials and how-tos | Turn on includeActionItems | Step-by-step takeaways |
| Social clips | Turn on includeQuotes | Quotable lines with context |
| A non-English video | Set transcriptLanguage to its language and aiOutputLanguage to yours | Translated analysis |
| High volume | Add your own anthropicApiKey | AI step billed to your own quota |
| Raw text only | Switch off every AI field | Transcript 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.