Youtube Video Summarizer & Most-Replayed Highlights
Pricing
from $3.99 / 1,000 results
Youtube Video Summarizer & Most-Replayed Highlights
YouTube Video Summarizer extracts and summarizes video content with most-replayed highlights, key moments, video details, and audience engagement insights. Ideal for content research, competitor analysis, audience analysis, and YouTube trend discovery.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapio
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
YouTube Scraper β Extract Transcripts, Chapters & Replay Highlights
Youtube Video Summarizer & Most-Replayed Highlights turns any YouTube video link into structured JSON: full video and channel metadata, a timestamped transcript, every published chapter, and the audience's most-replayed key moments β the exact seconds real viewers rewatched most, each with a clickable timestamped link. Unlike scraping frameworks that hand back raw HTML or an embed player, it returns typed JSON ready for a database, a spreadsheet, or an LLM context window with no parsing step. Optional AI summaries run on your own API key across 19 models from 7 providers. This guide covers every field returned and how teams wire it into enrichment, monitoring and dataset-building pipelines.
π§ What Does Youtube Video Summarizer & Most-Replayed Highlights Do?
It reads any public YouTube video β a watch link, a youtu.be short link, or a Shorts link β and returns full video and channel metadata, a timestamped transcript, the video's published chapters, and its audience "most replayed" key moments in one structured row. No YouTube account or sign-in is required; every field comes from data YouTube serves on the public watch page. When you don't have specific links on hand, search topics can discover matching videos and the same pipeline runs on each one.
Key capabilities:
- π Full video metadata β views, likes, comments, engagement rate, category, upload type, live status, tags and hashtags
- πΊ Channel details β name, handle, subscriber count, verification badge, plus the channel's own About-page description, country and join date
- π Timestamped transcript β the caption track as
{start, dur, text}entries, from creator subtitles or YouTube's auto-captions - π Video chapters β every published chapter with start/end timestamps, a deep link, and the transcript text spoken inside it
- π₯ Most-replayed key moments β the ranked peaks of the audience replay curve, each with a replay-intensity score and a
&t=deep link - π€ Optional AI summaries β a short summary, a structured long summary, and per-chapter mini-summaries, generated with your own AI provider key
- π Topic-based discovery β search YouTube by topic instead of pasting links, and run the full pipeline on the matches
β‘ Features & Capabilities
Capabilities split into two groups: what gets extracted per video, and how this Actor fits alongside the rest of Scrapio's YouTube tooling.
Core features
- Every video is returned as one row containing
chapters[],keyMoments[]andtranscript[]alongside metadata β no separate calls needed keyMoments[]links each replay peak tochapterTitleand the exacttranscriptTextspoken there, so a "hot moment" is never just a bare timestampchapterSourcedistinguishes creator-written chapters from YouTube's auto-generated onesmostReplayedAvailabletells apart "no peaks found" from "replay data isn't published for this video yet"minReplayIntensityandmaxKeyMomentsfilter the replay curve down to just the moments worth acting on, ranked byreplayIntensityPercent- Every row carries the same key set whether the video succeeded or failed β failed rows return
status: "error"and a plain-Englisherrormessage instead of missing keys - Rows are written to the dataset as soon as each video finishes, not batched at the end of the run
Youtube Video Summarizer & Most-Replayed Highlights within the Scrapio data stack
This Actor covers full video-level data: metadata, transcript, chapters and most-replayed key moments for videos you point it at directly. For a caption-coverage audit across many languages and videos β which subtitle languages exist, manual vs. auto-generated, cross-checked against the languages your project needs β use YouTube Video Subtitles Scraper: Caption Coverage Insights Data instead. Both tools live in Scrapio's YouTube toolset and can run against the same video list.
Why do developers and data teams scrape YouTube?
π¬ Content strategists & video teams
Teams point the Actor at their own or a competitor's video and read keyMoments[] and replayIntensityPercent to see exactly which seconds viewers rewatched most β a retention signal not exposed the same way inside YouTube Studio. Cross-referencing topReplayedTimestamp against chapters[] shows which chapter is actually working, informing where to cut a Short, where a mid-roll ad belongs, or which section to expand in a re-edit. engagement_rate (likes + comments over views) and upload_type (short / normal / live_replay) let a team compare formats at a glance without opening each video.
π AI training data and RAG indexing
transcript[], chapters[].transcriptText and keyMoments[].transcriptText are the high-information text fields β spoken content already segmented by topic (chapter) and by audience attention (key moment) β useful chunks for a RAG index without a separate segmentation step. Two uses: (1) RAG enrichment β index chapter-level transcript slices with their deepLinkUrl so a retrieved answer can cite the exact moment in the source video; (2) training data β summary and long_summary (when AI summaries are enabled) give a consistent transcript-in, summary-out pair per video. All fields return as typed primitives β no HTML parsing before they reach a prompt.
π± Competitive and market intelligence
Running the Actor against a competitor's or a partner's video links on a schedule turns views, likes, comment_count and engagement_rate into a trackable series. topReplayedTimestamp and keyMomentCount show whether a new video landed with viewers at all, not just whether it got views. category, hashtags and upload_type make it possible to group a channel's output by format and see which one it's leaning into.
π¬ Research and academic use
Media studies and communication research use the transcript, chapter structure and replay curve as public-data inputs for discourse analysis, retention studies, or dataset construction β no login is required and every field is drawn from the public watch page. Scope is limited to what YouTube already serves publicly; the Actor does not access private, unlisted, age-restricted, or members-only content.
π₯ Product and SaaS development
Teams building video-analytics dashboards, AI clip-generation tools, or "auto-chapter" products for creators use chapters[] and keyMoments[] as a ready-made structural layer instead of building a heatmap parser and a captions pipeline from scratch. chapterSummary (when chapterSummaries is on) gives a per-section blurb a product can surface directly in a UI.
π Input Parameters
Youtube Video Summarizer & Most-Replayed Highlights takes either a list of video links or a list of search topics β at least one of the two must be filled in for a run to have something to process. Every other input tunes which data blocks are collected and how AI summaries run.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
videoLinks | No | array (string list) | One line per video β watch links, youtu.be short links, or Shorts links. Every link becomes its own row. | ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] |
searchTopics | No | array (string list) | Topics to search on YouTube when videoLinks is empty; every matching video runs through the same pipeline. | ["official trailer", "guitar tutorial"] |
maxVideosPerTopic | No | integer | How many videos to take per topic above. Only applies when the link list is empty. Default 2, minimum 1, maximum 50. | 2 |
includeChapters | No | boolean | Adds chapters[] with timestamps, deep links and the words spoken per chapter. Default true. | true |
includeKeyMoments | No | boolean | Adds keyMoments[], the ranked most-replayed peaks. Default true. | true |
maxKeyMoments | No | integer | Keeps only the top N replay peaks, ranked by intensity. 0 keeps every peak. Default 5, minimum 0, maximum 100. | 5 |
minReplayIntensity | No | integer | Percentage floor (0β100) on a moment's replay score; 0 keeps everything. Default 0, minimum 0, maximum 100. | 0 |
includeMomentTranscript | No | boolean | Fills keyMoments[].transcriptText with the words spoken at that moment. Default true. | true |
includeReplayHeatmap | No | boolean | Adds replayHeatmap[], the full ~100-point raw replay curve. Off by default β it enlarges every row. Default false. | false |
includeTranscript | No | boolean | Adds transcript[] as {start, dur, text} entries. Default true. | true |
aiSummaries | No | boolean | Generates summary and long_summary from the transcript. Requires aiApiKey below β without one the fields stay empty rather than being invented. Default true. | true |
aiApiKey | No | string (secret) | API key for the provider matching aiModel. Can be left empty and set instead as an environment variable on the Actor (OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY, XAI_API_KEY, DEEPSEEK_API_KEY, PERPLEXITY_API_KEY, or MISTRAL_API_KEY). | sk-... |
aiModel | No | string (enum) | Model used for summaries; provider is auto-detected from the model name. Default "gpt-4o-mini". Full enum list below. | "claude-haiku-4-5" |
aiApiEndpoint | No | string | Custom chat-completions URL β an Azure OpenAI deployment or any OpenAI-compatible gateway. Leave empty for the provider's public endpoint. | "" |
chapterSummaries | No | boolean | Fills chapters[].chapterSummary with a 1β2 sentence summary per chapter. Needs chapters, captions and an AI key; costs one extra model call per video. Default false. | false |
maxDurationSeconds | No | integer | Skips videos longer than this many seconds, with a clear reason, instead of processing them. 0 = no limit. Default 0, minimum 0. | 7200 |
maxRetries | No | integer | Attempts per video before the row is written with an explanatory error. Default 3, minimum 1, maximum 10. | 3 |
urls | No | array (string list) | Legacy alias for videoLinks; used only as a fallback when videoLinks is empty. Kept for backward compatibility. | ["https://youtu.be/aqz-KE-bpKQ"] |
proxyConfiguration | No | object (proxy editor) | Apify Proxy configuration. Prefilled with {"useApifyProxy": true}. | {"useApifyProxy": true} |
aiModel enum values: gpt-4o-mini (GPT-4o mini β OpenAI, cheap), gpt-4o (GPT-4o β OpenAI), gpt-4.1-mini (GPT-4.1 mini β OpenAI), gpt-4.1 (GPT-4.1 β OpenAI), o3-mini (o3-mini β OpenAI, reasoning), claude-haiku-4-5 (Claude Haiku 4.5 β Anthropic, cheapest), claude-sonnet-5 (Claude Sonnet 5 β Anthropic), claude-opus-4-8 (Claude Opus 4.8 β Anthropic, best), gemini-2.0-flash-lite (Gemini 2.0 Flash-Lite β Google, cheapest), gemini-2.0-flash (Gemini 2.0 Flash β Google), gemini-2.5-flash (Gemini 2.5 Flash β Google), gemini-2.5-pro (Gemini 2.5 Pro β Google, best), grok-3-mini (Grok 3 mini β xAI, cheap), grok-3 (Grok 3 β xAI), deepseek-chat (DeepSeek Chat, cheap), sonar (Sonar β Perplexity, cheap), sonar-pro (Sonar Pro β Perplexity), mistral-small-latest (Mistral Small, cheap), mistral-large-latest (Mistral Large).
JSON input example:
{"videoLinks": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"searchTopics": [],"maxVideosPerTopic": 2,"includeChapters": true,"includeKeyMoments": true,"maxKeyMoments": 5,"minReplayIntensity": 0,"includeMomentTranscript": true,"includeReplayHeatmap": false,"includeTranscript": true,"aiSummaries": true,"aiApiKey": "","aiModel": "gpt-4o-mini","aiApiEndpoint": "","chapterSummaries": false,"maxDurationSeconds": 0,"maxRetries": 3,"urls": [],"proxyConfiguration": {"useApifyProxy": true}}
Supported URL types and input formats
- Watch links β
https://www.youtube.com/watch?v=VIDEO_ID - Short links β
https://youtu.be/VIDEO_ID - Shorts links β accepted the same way, matched by the
/shorts/path - At least one of
videoLinks(or its legacy aliasurls) orsearchTopicsmust have entries β a run with both empty stops immediately with an explanatory error instead of charging for nothing. videoLinkstakes priority: if it has any entries,searchTopicsis ignored for that run.
Real examples:
{ "videoLinks": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"] }
{ "searchTopics": ["guitar tutorial"], "maxVideosPerTopic": 3, "includeReplayHeatmap": false, "aiSummaries": false }
{ "urls": ["https://youtu.be/aqz-KE-bpKQ"] }
π¦ Output Format
Typed, normalized JSON β one row per video, pushed as soon as that video finishes, not batched at the end of the run. Every row carries the same top-level key set whether the video succeeded or failed, because failed rows are built from the same empty-row template as successful ones, with fields nulled rather than omitted. Each processed video charges exactly one row_result event, success or failure β filter on status == "error" after the run to find the ones that didn't complete; the charge already applied to those rows too. Export the dataset as JSON, JSONL, CSV, Excel, HTML table, RSS or XML directly from the Apify platform, no extra transform step.
The default dataset view surfaces 37 columns for quick scanning; the row itself carries more (50 top-level keys). Fields present in the row but not in the default view: inputUrl, video_id, description, channel_id, published_date, duration_seconds, language, resolution, ageLimit, availability, mostReplayedSegments, replayHeatmap, long_summary.
Output for a video
{"inputUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","id": "dQw4w9WgXcQ","video_id": "dQw4w9WgXcQ","type": "video","title": "Example Video Title","description": "Example video description text...","channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw","channel_name": "Example Channel","channel": {"id": "UCuAXFkgsw1L7xaCfnd5JJOw","name": "Example Channel","handle": "examplechannel","url": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw","subscriberCount": "1000000 subscribers","logo": ["https://yt3.ggpht.com/example.jpg"],"badges": ["Verified"],"subscriberCountRaw": 1000000,"description": "Official channel description from the About page.","joined": "Jan 1, 2010","country": "US","totalViews": "1,000,000,000 views","videoCount": "500 videos","canonicalUrl": "https://www.youtube.com/@examplechannel","links": [{ "title": "Website", "url": "https://example.com" }]},"published_date": "2009-10-25","publishedAt": "2009-10-25T00:00:00Z","relativeDate": "16 year(s) ago","duration_seconds": 213,"durationTimestamp": "3:33","views": 1000000000,"likes": 15000000,"comment_count": 2000000,"engagement_rate": 0.017,"tags": ["example", "tutorial"],"hashtags": ["#example"],"category": "Music","language": "en","live_status": "not_live","upload_type": "normal","resolution": "1920x1080","thumbnails": {"default": "https://i.ytimg.com/vi/dQw4w9WgXcQ/default.jpg","medium": "https://i.ytimg.com/vi/dQw4w9WgXcQ/mqdefault.jpg","high": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg","standard": "https://i.ytimg.com/vi/dQw4w9WgXcQ/sddefault.jpg","maxres": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"},"ageLimit": 0,"availability": "public","transcript": [{ "start": "0.000", "dur": "3.500", "text": "Never gonna give you up" }],"transcriptEntryCount": 120,"transcriptSource": "subtitles:en","transcriptWordCount": 480,"chapters": [ { "index": 1, "title": "Intro", "startSeconds": 0.0, "endSeconds": 20.0, "startTimestamp": "00:00", "endTimestamp": "00:20", "durationSeconds": 20.0, "deepLinkUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=0s", "transcriptText": "Never gonna give you up", "chapterSummary": null } ],"chapterCount": 1,"chapterSource": "creator","keyMoments": [ { "rank": 1, "startSeconds": 42.0, "endSeconds": 45.0, "timestamp": "00:42", "replayIntensity": 0.98, "replayIntensityPercent": 98.0, "deepLinkUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=42s", "chapterTitle": "Chorus", "transcriptText": "Never gonna let you down" } ],"keyMomentCount": 1,"mostReplayedAvailable": true,"topReplayedTimestamp": "00:42","topReplayedUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=42s","mostReplayedSegments": [ { "visibleTimeRangeStartMillis": 40000, "visibleTimeRangeEndMillis": 46000, "decorationTimeMillis": 42000, "label": "Most replayed" } ],"replayHeatmap": null,"summary": "A short 3-4 sentence overview of the video.","long_summary": "# Example Video Title\n\n## Overview\n\nDetailed markdown summary...","summary_source": "transcript","summaryStatus": "generated","status": "ok","error": null,"scrapedAt": "2026-08-15T09:12:00Z"}
Output for a key moment
Each entry inside keyMoments[]:
{"rank": 1,"startSeconds": 42.0,"endSeconds": 45.0,"timestamp": "00:42","replayIntensity": 0.98,"replayIntensityPercent": 98.0,"deepLinkUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=42s","chapterTitle": "Chorus","transcriptText": "Never gonna let you down"}
Output for a chapter
Each entry inside chapters[]:
{"index": 1,"title": "Intro","startSeconds": 0.0,"endSeconds": 20.0,"startTimestamp": "00:00","endTimestamp": "00:20","durationSeconds": 20.0,"deepLinkUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&t=0s","transcriptText": "Never gonna give you up, never gonna let you down","chapterSummary": null}
Schema stability and export options
Metadata is read from two independent sources per video β the page's own embedded state and a yt-dlp-based reader tried across several player-client profiles β and merged, so a gap in one source doesn't blank a field the other one has. Export the dataset as JSON, JSONL, CSV, Excel, HTML table, RSS or XML from the Apify Console or via the API; results are also reachable through the Apify API and apify-client libraries, and through a webhook on run completion.
π‘ Youtube Video Summarizer & Most-Replayed Highlights Strategy Guide
π― Strategy 1: Real-time enrichment pipeline
When a video is published or added to your content pipeline, trigger a run with videoLinks: [newVideoUrl]. Read back chapters[], keyMoments[], engagement_rate, summary (if aiSummaries is on) and transcriptWordCount, then write them onto the matching record in your CMS or CRM. Because each row is pushed the moment that video finishes, a webhook on run completion β or dataset polling β can fire the write-back without waiting on a batch job.
π― Strategy 2: Scheduled monitoring and alerting
Maintain your own list of tracked video links (or use searchTopics for a channel or topic you follow), and run the Actor on an Apify Schedule β daily or weekly. Diff views, engagement_rate and topReplayedTimestamp against the previous run's dataset for the same video_id, and alert when a video crosses a view threshold or a new most-replayed peak appears. The Actor has no channel-crawl input of its own β you supply the link list; the schedule supplies the repetition.
π― Strategy 3: Bulk dataset build
Feed a long videoLinks list (or several searchTopics) into one run to build a research or training dataset. Videos inside a single run are processed one at a time, in the order supplied β there is no documented in-run concurrency β so very large batches split more predictably across several parallel Actor runs than into one oversized run. Aggregate the resulting dataset to CSV or a database via the Apify API once the run finishes.
Strategy comparison at a glance
| Strategy | Best for | Run pattern | Output format |
|---|---|---|---|
| Real-time enrichment | Single new videos as they publish | One run per video, triggered on publish | JSON row appended to your system |
| Scheduled monitoring | Tracking known videos over time | Recurring Apify Schedule, diffed against prior runs | JSON dataset per run, diffed externally |
| Bulk dataset build | Research or training datasets | One run per batch, videos processed sequentially | Dataset exported to CSV/DB |
π΄ Related YouTube Scrapers & Tools
Within Scrapio's YouTube tools, this Actor covers full video-level metadata, chapters, most-replayed key moments and transcripts for videos you point it at directly. Pair it with the subtitles scraper below for a caption-language audit across a larger video batch, or with the Facebook transcript extractor when the same "video β structured transcript" workflow needs to run on a different platform.
| Scraper Name | What it extracts |
|---|---|
| YouTube Video Subtitles Scraper: Caption Coverage Insights Data | Which caption languages exist per video (manual vs. auto-generated), cross-checked against the languages you need, plus the full transcript for your primary language |
| Facebook Video Transcript With Caption Extractor | Spoken transcripts from public Facebook videos, plus hashtag and link entities parsed straight out of the caption text |
π How to integrate Youtube Video Summarizer & Most-Replayed Highlights with your stack
Youtube Video Summarizer & Most-Replayed Highlights works with any language or tool that can make an HTTP request β through the Apify API and the official apify-client libraries.
Python
from apify_client import ApifyClientimport csvclient = ApifyClient("<APIFY_API_TOKEN>")run_input = {"videoLinks": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://youtu.be/aqz-KE-bpKQ",],"includeChapters": True,"includeKeyMoments": True,"maxKeyMoments": 5,"aiSummaries": False,}run = client.actor("<your-username>/youtube-video-summarizer-most-replayed-highlights").call(run_input=run_input)with open("videos.csv", "w", newline="", encoding="utf-8") as f:writer = csv.writer(f)writer.writerow(["title", "url", "views", "chapterCount", "keyMomentCount", "topReplayedTimestamp"])for item in client.dataset(run["defaultDatasetId"]).iterate_items():writer.writerow([item.get("title"), item.get("url"), item.get("views"),item.get("chapterCount"), item.get("keyMomentCount"), item.get("topReplayedTimestamp"),])
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<APIFY_API_TOKEN>' });const input = {videoLinks: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],includeChapters: true,includeKeyMoments: true,maxKeyMoments: 5,};const run = await client.actor('<your-username>/youtube-video-summarizer-most-replayed-highlights').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(item.title, item.topReplayedTimestamp, item.keyMomentCount);}
Async and scheduled pipelines
Runs are asynchronous by nature: client.actor(...).call() blocks until the run finishes, or use .start() and poll the dataset while it's still filling, since rows are pushed one video at a time. For recurring jobs, add an Apify Schedule (cron) in the Console; for fire-and-forget notification instead of polling, attach a webhook to the run's completion event.
π― Who Needs Youtube Video Summarizer & Most-Replayed Highlights? (Use Cases & Industries)
π¬ Content strategists & video teams
A creator or a video team runs the Actor on their latest upload and reads keyMoments[] and topReplayedTimestamp against chapters[] to decide where the next Short gets cut from and where a re-edit should trim.
π AI/ML and RAG engineers
Engineers building a video-grounded assistant index chapters[].transcriptText and keyMoments[].transcriptText with their deepLinkUrl, so a retrieved answer can cite the exact moment in the source video.
π± Marketing and competitive-intelligence analysts
Analysts track views, engagement_rate and keyMomentCount across a competitor's video links on a schedule, turning individual uploads into a comparable performance series.
π¬ Researchers
Media and communication researchers pull the transcript, chapter structure and replay curve for discourse or retention studies, working only with what YouTube already serves on the public watch page.
π₯ SaaS and analytics product builders
Teams building video-analytics dashboards or "auto-chapter" tools for creators use chapters[] and keyMoments[] as a ready-made structural layer instead of parsing the replay heatmap and captions pipeline themselves.
βοΈ Is it legal to scrape YouTube?
Scraping publicly accessible web data is broadly lawful in the United States β courts have found that accessing data a site makes available without a login is not a computer-fraud violation (hiQ Labs v. LinkedIn, 9th Cir., 2019). That precedent covers the access question; it does not clear every use. Two separate questions still apply:
- Terms of Service β YouTube's Terms of Service restrict automated access. Violating a platform's terms is a contract/civil matter between the user and the platform, not a criminal one, but it can carry consequences such as account or IP restrictions.
- Data protection β this Actor returns video, chapter, transcript and channel-level content data β public creator/publisher information, not private individual profiles. Full GDPR/CCPA "personal data" framing does not attach to that kind of content data the way it would to a scraper built around private user profiles. If your dataset happens to combine this data with information that identifies a private individual, ordinary data-protection obligations for that use still sit with you.
Youtube Video Summarizer & Most-Replayed Highlights returns only publicly accessible data. What you do with that data is your responsibility β consult legal counsel for commercial applications involving personal data.
β Frequently asked questions
Does Youtube Video Summarizer & Most-Replayed Highlights work without a YouTube account?
Yes. No YouTube account or sign-in is required β every field is read from the public watch page and its caption track. Optional AI summaries need your own AI provider key, not a YouTube credential.
How does it handle YouTube's anti-scraping measures?
It rotates through Apify Proxy (with a residential fallback route triggered automatically on bot-check or connection-refusal signals) and tries several yt-dlp "player client" profiles in sequence until one returns a complete metadata read. Failed attempts are retried with a backoff delay that grows from 1 second up to a cap of 8 seconds between tries.
Can I run it at scale without getting blocked?
Videos are attempted up to maxRetries times (default 3, up to 10) with proxy fallback on repeated failures. Within a single run, videos are processed one at a time rather than in parallel, so very large batches are more predictable split across multiple parallel runs than crammed into one. No uptime or success-rate figure is published for this Actor.
How fresh is the data Youtube Video Summarizer & Most-Replayed Highlights returns?
Live per run. The video page, channel About page, and caption track are fetched fresh every time the Actor runs β nothing is cached or served from a prior run.
Which YouTube fields work best for AI training and RAG indexing?
For RAG: transcript[], chapters[].transcriptText and keyMoments[].transcriptText β pre-segmented spoken text with a deepLinkUrl for citation. For training data: summary and long_summary (when aiSummaries is on) give a consistent transcript-in, summary-out pair. All fields return as typed primitives requiring no normalization.
Does it work with Claude, ChatGPT, and other AI agent tools?
There's no dedicated MCP server for this Actor. It's callable as an HTTP endpoint through the Apify API by any agent framework β every response is typed JSON, no parsing required before it reaches a model's context window.
What happens if a video has no chapters or no most-replayed data?
Both are returned honestly rather than guessed: a video with no published chapters returns chapters: [] and chapterCount: 0; a video with no published replay curve returns mostReplayedAvailable: false and keyMoments: [], distinct from a video that has replay data but no peak passed your minReplayIntensity filter.
What happens when AI summaries are on but no API key is supplied?
The run still returns every other field β metadata, transcript, chapters, key moments. summary and long_summary stay empty, and summaryStatus records the reason (not_generated_no_ai_key_supplied) instead of the fields being invented.
Does retrying help with private, removed, or over-the-limit videos?
No. maxRetries covers transient failures β timeouts, connection errors, temporary bot checks. A video that's private, removed, or longer than maxDurationSeconds fails on the first attempt with a matching error message and is not retried, since retrying wouldn't change the outcome.
βΉοΈ Disclaimer
Youtube Video Summarizer & Most-Replayed Highlights extracts only publicly available data from YouTube. This tool is intended for lawful use cases only. Users are responsible for complying with YouTube's Terms of Service and applicable data protection laws in their jurisdiction.