Video Chapters
Split a long video into named sections viewers can jump to.
What it adds
A chapter list beside the video and matching markers on the scrub bar, both seeking on click.
What your agent is told to do
5
What your agent is told to do
5-
1
Extend the app's Custom Video Player rather than adding a second player to host chapters. Chapters are a layer over the existing transport controls.
-
2
Show chapters in two places that stay in step: a list of titles with start times next to or under the video, and segment markers on the scrub bar. Clicking either seeks to that chapter's start.
-
3
Keep the current chapter highlighted in the list and scroll it into view as playback moves, including while the viewer is dragging the scrub bar.
-
4
Accept chapter data from wherever the app already stores video metadata, and validate it on save so a bad chapter list is rejected at authoring time rather than breaking the player.
-
5
Do not require chapters. A video without them must render exactly as it does today, with no empty list and no gaps in the scrub bar.
Edge cases it handles
8
Edge cases it handles
8- Authored chapter timestamps arrive out of order, overlapping, or past the end of the video. Sort them, drop or clamp the ones that cannot be reconciled, and tell the author which were rejected rather than rendering a broken bar.
- On a narrow player the markers crowd into an unreadable stripe. Merge or hide markers below a minimum spacing and keep the list as the reliable way to navigate.
- The active chapter must follow the scrub position while the viewer is dragging, not only update when playback resumes. A list that lags behind the cursor makes scrubbing feel disconnected.
- Support a link that opens the page at a given chapter, using the app's existing Shareable Deep Links conventions rather than a new URL format, and update the address as chapters change without flooding the history stack.
- Some sources cannot be seeked reliably, including certain live and progressive streams. Fall back to a plain, non-clickable list of chapter titles rather than offering jumps that do nothing.
- A chapter title long enough to wrap must not push the video off the layout. Truncate in the list with the full title available on hover and focus.
- Chapter titles are typed by whoever uploaded the video and then render over the player for every viewer who opens it. Escape them on display, and where videos come from users rather than staff, hold new titles for review before the video is public.
- The chapter list must be keyboard navigable and announce the active chapter, not rely on colour alone to show it.
Definition of done
9
Definition of done
9- Chapters appear as both a list and scrub bar markers, and either one seeks on activation.
- Out-of-order, overlapping, and out-of-range timestamps are rejected or reconciled at save time with feedback to the author.
- Markers collapse rather than overlap on narrow players.
- The active chapter stays highlighted and in view during playback and during scrubbing.
- A chapter deep link opens the video at the right position using the app's existing link format.
- Unseekable sources show a plain list rather than dead controls.
- A video with no chapters renders unchanged.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Hover Video Preview
Hover Video Preview
Hovering a video card plays a short silent clip so people see what it is before clicking.
What it does
A silent, short-loop preview that plays inside a video card on deliberate hover and returns to the poster on exit.
How it works
- 1 Generate a short, low-resolution, silent preview clip during video processing and store it alongside the poster frame. Do not play the full source file behind the card.
- 2 Require a deliberate hover before doing anything. Wait several hundred milliseconds after the pointer settles, then load, so a cursor crossing a grid does not fire a dozen requests.
- 3 Give touch devices an explicit preview control on the card, since hover does not exist there. A long-press or a small preview button is fine; silently doing nothing on mobile is not.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/hover-video-preview
Audio Waveform Scrubber
Audio Waveform Scrubber
Show the shape of a track so listeners can see the quiet and loud parts and click to them.
What it does
A waveform rendered from precomputed amplitude data, doubling as the seek control on the audio player.
How it works
- 1 Compute the amplitude data on the server when the file is first stored, and serve it as a small dataset the page can draw. Do not decode the audio in the browser to build the waveform.
- 2 Replace the plain scrub bar in the app's existing Audio Player with this surface rather than adding a second seek control beside it.
- 3 Draw played and unplayed regions distinctly, and keep the playhead position exact under click, drag, and keyboard seeking on the same surface.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/audio-waveform-scrubber
Video Upload and Encoding
Video Upload and Encoding
Accept a video file and turn it into versions that play in a browser.
What it does
An upload path for video files plus a background pipeline that produces web-playable renditions and a poster frame.
How it works
- 1 Extend the app's existing File Upload rather than adding a second uploader. Video differs in size and in the processing that follows, not in how a user picks a file, and two uploaders means two sets of limits to keep in sync.
- 2 Upload in resumable chunks straight to storage, and enforce size, duration, and type limits on the server. Client-side limits are a convenience, not a control.
- 3 Do the encoding in the app's existing background job system so the user is not holding a tab open, and surface its state through the app's existing Background Job Progress rather than a bespoke poller.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/video-upload-and-encoding
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.