YouTube Most Replayed Scraper - Heatmap Peaks & Clips
Pricing
from $1.50 / 1,000 videos
YouTube Most Replayed Scraper - Heatmap Peaks & Clips
YouTube's Most replayed heatmap for videos, playlists, channels and searches: the replay curve, YouTube's labelled moments and the top peaks with start/end seconds, intensity, chapter and a timestamped link; optional caption text per peak. No login.
Pricing
from $1.50 / 1,000 videos
Rating
0.0
(0)
Developer
Steady Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
YouTube Most Replayed Scraper
The Most replayed heatmap of any YouTube video, Short, playlist, channel or search: YouTube's own labelled "Most replayed" moments, the top peaks of the replay curve with start and end seconds, intensity, the chapter they fall in and a timestamped &t= link, and on request the full 100-point curve and the words spoken inside each peak. Title, channel, exact views, likes, publish date and duration on every row.
Built for clip makers, Shorts editors and AI clipping tools: find the 30 seconds people rewatch, jump straight to them, and cut. Every video comes back as a row: when YouTube draws no graph for it, one free row says why. You pay only for videos with a heatmap.
No browser, no login, no API key, no YouTube Data API quota, no video or audio is downloaded: it reads the same watch data the site shows above the progress bar.
What you get
One row per video:
| field | what it holds |
|---|---|
status, reason | ok, or a free row: no_heatmap (YouTube draws no graph for this video), filtered (below your minViews), unavailable (deleted, private or a wrong id), blocked (YouTube refused every IP route; try again later). reason says why; it is null on ok. |
mostReplayed | The ranges YouTube itself labels "Most replayed" on the graph (often one to three), each with startSeconds, endSeconds, peakSeconds (the middle of the most replayed slice inside), intensity (0–1, 1 = the most replayed slice of the video), chapter, url (the video opened at that second) and transcript. |
peaks | The top peaks of the curve, most replayed first (maxPeaks, default 5), with the same fields plus rank, prominence (how far the peak rises above the valleys around it) and isOpening. The stretch of a peak runs down each side while the curve keeps falling, so two neighbouring peaks never overlap. |
heatmap | With includeHeatmap: YouTube's 100 slices, each startSeconds, durationSeconds, intensity; null otherwise. |
chapters | The video's chapters (title, startSeconds), empty when it has none. |
videoId, url, title, thumbnailUrl | The video. |
channelName, channelId, channelUrl, channelSubscribers | The channel; subscribers as the page abbreviates them ("8.71M" → 8710000). |
viewCount, likeCount | Exact counts; viewCount is null on a stream on air, which shows viewers watching now instead. |
publishDate, publishDateText | YYYY-MM-DD, and the date as the page writes it ("Premiered Jul 22, 2023"). |
durationSeconds | The end of the curve, within a second of the player's length (null on free rows). |
transcriptStatus, transcriptLanguage, transcriptIsAutoGenerated | With includeTranscript: ok, no_captions, age_restricted, login_required, unavailable or blocked, and which caption track was read. Each moment's transcript holds the caption lines heard between its start and end. |
source, scrapedAt | The video, playlist, channel or search term the row came from (type, id), and when it was read (UTC). |
Input
| field | what it does |
|---|---|
urls | One per line: a video link in any shape (watch?v=, youtu.be, Shorts, live, embed) or a bare id; a playlist link or id; a channel (@handle, /channel/UC…, /c/, /user/). A channel gives its newest uploads. |
searchTerms | Search YouTube (videos only) and read the top results. |
searchSort, searchUploadedWithin | Relevance or view count; any time, last hour, today, this week, this month, this year. |
maxVideosPerSource | Videos per playlist, channel or search term (default 10, up to 1,000). |
maxPeaks | Peaks per video (default 5; 0 = only YouTube's labelled moments). |
minIntensity | Leave out peaks below this share of the top (default 0.15; 0 keeps every bump). |
includeOpening | Keep the opening seconds among the peaks (off by default: every viewer starts there, so it is the top of most curves). Turn on for Shorts. |
includeHeatmap | Add the 100-point curve. Same price. |
minViews | Skip smaller videos as free filtered rows. |
includeTranscript, transcriptLanguage | Add the words spoken inside each moment, from the captions in that language (or the default track). |
onlyNew | For schedules: skip videos an earlier run with the same sources already delivered. Videos without a graph yet are asked again next time. |
residentialFallback | Retry through residential proxies when YouTube refuses Apify's own IP and a datacenter proxy (default on; captions usually need it). |
{"urls": ["https://www.youtube.com/watch?v=aircAruvnKk", "@MrBeast"],"searchTerms": ["podcast clips"],"searchSort": "views","searchUploadedWithin": "month","maxVideosPerSource": 10,"maxPeaks": 3,"includeTranscript": true}
Output example
{"videoId": "aircAruvnKk","url": "https://www.youtube.com/watch?v=aircAruvnKk","status": "ok","reason": null,"title": "But what is a neural network? | Deep learning chapter 1","channelName": "3Blue1Brown","channelId": "UCYO_jab_esuFRV4b17AJtAw","channelUrl": "https://www.youtube.com/@3blue1brown","channelSubscribers": 8710000,"viewCount": 24927606,"likeCount": 567354,"publishDate": "2017-10-05","publishDateText": "Oct 5, 2017","thumbnailUrl": "https://i.ytimg.com/vi/aircAruvnKk/hqdefault.jpg","durationSeconds": 1120,"mostReplayed": [{ "startSeconds": 504, "endSeconds": 582.4, "peakSeconds": 554.4, "intensity": 1, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=504s", "chapter": "Edge detection example", "transcript": "picture yourself right now designing how exactly the activations in one layer might determine the activations in the next…" },{ "startSeconds": 616, "endSeconds": 660.8, "peakSeconds": 632.8, "intensity": 0.825, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=616s", "chapter": "Edge detection example", "transcript": "When you compute a weighted sum like this, you might come out with any number…" }],"peaks": [{ "rank": 1, "startSeconds": 504, "endSeconds": 616, "peakSeconds": 554.4, "intensity": 1, "prominence": 0.895, "isOpening": false, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=504s", "chapter": "Edge detection example", "transcript": "picture yourself right now…" },{ "rank": 2, "startSeconds": 627.2, "endSeconds": 660.8, "peakSeconds": 632.8, "intensity": 0.825, "prominence": 0.076, "isOpening": false, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=627s", "chapter": "Edge detection example", "transcript": "…" },{ "rank": 3, "startSeconds": 694.4, "endSeconds": 705.6, "peakSeconds": 700, "intensity": 0.712, "prominence": 0.095, "isOpening": false, "url": "https://www.youtube.com/watch?v=aircAruvnKk&t=694s", "chapter": "Counting weights and biases", "transcript": "…" }],"chapters": [{ "title": "Introduction example", "startSeconds": 0 }, { "title": "Series preview", "startSeconds": 67 }, { "title": "What are neurons?", "startSeconds": 162 }],"heatmap": null,"transcriptStatus": "ok","transcriptLanguage": "en","transcriptIsAutoGenerated": false,"source": { "type": "channel", "id": "UCYO_jab_esuFRV4b17AJtAw" },"scrapedAt": "2026-10-22T12:00:00.000Z"}
The dataset has a second view, Peaks, with one row per peak: video, rank, start, end, intensity, chapter, words and link, ready for a clipping queue.
Use cases
- Clipping and Shorts: the top 3 peaks of every new upload of the channels you clip, on a schedule with
onlyNew, each with its start, end and link. - AI clipping tools: feed
peaksand theirtranscriptto your editor or an LLM to title and cut the moments viewers rewatch. - Creators: see which minute of a competitor's video people replay, and what was said there, before you script your hook.
- Research: replay curves of a whole search (top videos of the month about a topic) or a playlist, as 100 numbers per video.
Limits and honesty
- YouTube draws the graph only once a video has enough views, and never for live streams, most age-restricted videos and many Shorts. Fresh uploads often have none yet (22 of the 36 most viewed uploads of one month had none on 2026-10-22). Those rows are free; with
onlyNewthey are asked again on the next run. - The curve is normalised by YouTube:
intensity1 is the video's most replayed slice, not a view count. A slice is 1/100 of the video (11 s on an 18-minute video, 0.2 s on a 20-second Short). - Peaks are computed from YouTube's curve with a fixed rule (local high points, their prominence, and the stretch where the curve stays above half that rise);
mostReplayedis YouTube's own labelling, returned as is. On the videos measured the two agree: YouTube's labelled ranges past the opening held a peak in 33 of 34 cases. channelSubscribersis abbreviated by YouTube ("8.71M"); views and likes are exact. A few Shorts leave the channel out of their page: those fields are null.- Transcripts come from the video's captions (manual first, else auto-generated). YouTube refuses captions to many datacenter IPs, so they are read through residential proxies when needed; a video whose captions could not be read is delivered at the plain price with
transcriptStatussaying why. - When YouTube refuses Apify's own IP the Actor moves to a datacenter, then a residential proxy, and never asks a refused IP again in that run; it never solves a CAPTCHA or a bot check. If every route is refused, the remaining videos are free
blockedrows and the run still succeeds.
Pricing
Pay per event, and only for videos with a heatmap:
video— US$0.0015: one video's labelled moments, top peaks, chapters, metadata, and the curve if asked.video-with-transcript— US$0.003: the same plus the words spoken inside every moment, charged only when the captions were read.
no_heatmap, filtered, unavailable and blocked rows are free, and so is every video skipped by onlyNew. Set a spending limit on the run and the Actor stops at it.
Legal
This Actor is unofficial and is not affiliated with, endorsed by or sponsored by YouTube or Google. It reads public data YouTube shows to anyone without logging in (the replay graph, titles and counts) and downloads no video or audio. Use the data in line with YouTube's terms and the laws that apply to you.