Skip to content

Add YouTube Most Replayed visualization to the player seekbar #13443

@Ecomont

Description

@Ecomont

Checklist

  • I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • I have read the FAQ and my problem isn't listed.
  • I'm aware that this is a request for NewPipe itself and that requests for adding a new service need to be made at NewPipeExtractor.
  • I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise.
  • This issue contains only one feature request.
  • I have read and understood the contribution guidelines.
  • I have read and understood the AI policy. The content of this request is not generated by AI.

Feature description

I have implemented a feature to show the YouTube "Most Replayed" graph (heatmap) directly over the video player's seek bar.

I already wrote the code for both the Extractor and the App:

Extractor side: I added a new StreamHeatmapEntry model. The logic hooks into YoutubeStreamExtractor to parse the MARKER_TYPE_HEATMAP and heatMarkerRenderer objects directly from the YouTube player response JSON (extracting startMillis, durationMillis, and intensityScoreNormalized). The initial inspiration for extracting this data came from the youtube-heatmap-clipper repository, but instead of complex SVG math, I adapted it to purely parse the native JSON response.

App side: I migrated FocusAwareSeekBar and VideoPlayerUi to Kotlin. In the seek bar, I overrode the onDraw method to map the StreamHeatmapEntry list into a smooth cubic Bezier path (quadTo), drawing a semi-transparent layer over the track that accurately represents the retention peaks of the video.

I am opening this issue to discuss if the maintainers are interested in this feature before I open the formal Pull Requests.

Image

Why do you want this feature?

Finding the most interesting or viral parts of long videos (like podcasts, tutorials, or streams) is currently difficult without skipping blindly.
YouTube already provides this UX on their official clients ("Most Replayed"). Bringing this to NewPipe significantly improves navigation for long-form content, letting users instantly see where the highest retention points are. Since the data is already in the initial JSON response, it doesn't require extra network requests.

Additional information

The code is currently working in my forks. You can check the exact implementation details here:

If the core idea is accepted, I can open the Pull Requests right away. Let me know if there are any UI/UX or architectural adjustments you'd like me to make beforehand!

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestIssue is related to a feature in the appneeds triageIssue is not yet ready for PR authors to take up

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions