YouTube Most Replayed Scraper - Heatmap Peaks & Clips avatar

YouTube Most Replayed Scraper - Heatmap Peaks & Clips

Pricing

from $1.50 / 1,000 videos

Go to Apify Store
YouTube Most Replayed Scraper - Heatmap Peaks & Clips

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

Steady Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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:

fieldwhat it holds
status, reasonok, 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.
mostReplayedThe 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.
peaksThe 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.
heatmapWith includeHeatmap: YouTube's 100 slices, each startSeconds, durationSeconds, intensity; null otherwise.
chaptersThe video's chapters (title, startSeconds), empty when it has none.
videoId, url, title, thumbnailUrlThe video.
channelName, channelId, channelUrl, channelSubscribersThe channel; subscribers as the page abbreviates them ("8.71M" → 8710000).
viewCount, likeCountExact counts; viewCount is null on a stream on air, which shows viewers watching now instead.
publishDate, publishDateTextYYYY-MM-DD, and the date as the page writes it ("Premiered Jul 22, 2023").
durationSecondsThe end of the curve, within a second of the player's length (null on free rows).
transcriptStatus, transcriptLanguage, transcriptIsAutoGeneratedWith 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, scrapedAtThe video, playlist, channel or search term the row came from (type, id), and when it was read (UTC).

Input

fieldwhat it does
urlsOne 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.
searchTermsSearch YouTube (videos only) and read the top results.
searchSort, searchUploadedWithinRelevance or view count; any time, last hour, today, this week, this month, this year.
maxVideosPerSourceVideos per playlist, channel or search term (default 10, up to 1,000).
maxPeaksPeaks per video (default 5; 0 = only YouTube's labelled moments).
minIntensityLeave out peaks below this share of the top (default 0.15; 0 keeps every bump).
includeOpeningKeep 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.
includeHeatmapAdd the 100-point curve. Same price.
minViewsSkip smaller videos as free filtered rows.
includeTranscript, transcriptLanguageAdd the words spoken inside each moment, from the captions in that language (or the default track).
onlyNewFor schedules: skip videos an earlier run with the same sources already delivered. Videos without a graph yet are asked again next time.
residentialFallbackRetry 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 peaks and their transcript to 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 onlyNew they are asked again on the next run.
  • The curve is normalised by YouTube: intensity 1 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); mostReplayed is 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.
  • channelSubscribers is 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 transcriptStatus saying 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 blocked rows 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.

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.