Operated by Sourcelane✓ verified
Find the most replayed moments of any YouTube video or Short - ranked peak timestamps, deep links, intensity scores and the full replay heatmap curve.
A scraper that reads YouTube's "Most replayed" heatmap (the replay graph above the progress bar) for any YouTube video or Short and converts the curve into ranked replay moments and per-video metadata. It detects local maxima on the replay curve, scores and ranks replay peaks by normalized intensity (0–1), merges nearby peaks based on a configurable gap, expands each peak window while the curve remains at a high fraction of the peak (70% threshold), and yields precise start/end timestamps, peak timestamps, deep links to open the video at those seconds, optional spoken-text transcripts for each moment, and the underlying replay curve sampled at roughly 100 points. Outputs include video metadata (id, title, channel, duration, view count, short indicator), whether a replay heatmap exists, YouTube’s own labeled most-replayed point alongside the scraper’s ranked moments, and optional full heatmap data for attention-charting. Configurable analysis options include the number of top peaks to return, merging distance between peaks, and toggles for including transcripts and the raw heatmap.
Verified Oct 25, 10:11 PM
$0.005
per video heatmap
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Clip hunting
Locate moments to cut into Shorts, Reels and TikToks from podcasts, streams and long videos
Content research
Identify which part of a competitor's video viewers rewatch (the reveal, joke, tutorial step)
Video editing and retention analysis
Compare replay peaks across uploads to learn what keeps viewers watching
Podcast highlights
Extract most replayed segments of long interviews along with the quote that triggered replays
Data and dashboards
Export raw heatmap curves to chart audience attention across many videos
YouTube video URLs or IDs, one per line.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"youtube-most-replayed-scraper","params":{"videos":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
videos | array | required | YouTube video URLs or IDs, one per line. Accepts watch, youtu.be, Shorts and live URLs. Up to 500 per run. |
topPeaks | integer | optional | How many most-replayed moments to return per video, ranked by replay intensity. |
minPeakGapSeconds | integer | optional | Peaks closer together than this are merged into one moment. Raise it for long videos or podcasts to get moments spread across the whole video. |
includeIntroPeak | boolean | optional | Almost every video has a replay spike in the first second because everyone starts watching there. Off by default so the peaks show real highlight moments. If a video has no other peak (common on Shorts, whose curve simply fades out), the intro is returned anyway. |
includeTranscript | boolean | optional | Attach what is being said during each most-replayed moment, taken from the video's captions. Charged as an extra event per video that gets transcript text. |
includeHeatmap | boolean | optional | Also return the full replay curve (about 100 points per video, each with start time, length and intensity from 0 to 1) for your own charts. |
Each result contains
| Field | Type | Description |
|---|---|---|
videoId | string | — |
url | string | Video URL |
title | string | Title |
channelTitle | string | Channel |
channelId | string | — |
channelUrl | string | — |
durationSeconds | integer | — |
duration | string | Duration |
views | integer | Views |
isShort | boolean | Short |
heatmapAvailable | boolean | Heatmap |
mostReplayed | object | YouTube 'Most replayed' |
peaks | array | Peaks |
heatmap | array | — |
transcriptLanguage | string | — |
transcriptIsAutoGenerated | boolean | — |
status | string | — |
error | null | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Get the transcript of this video and turn it into a blog outline: <url>”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"youtube-most-replayed-scraper","params":{"videos":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "youtube-most-replayed-scraper",
"params": {"videos":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…