AddThisFeature

Resume Where You Left Off

Offer returning viewers the chance to continue a video from where they stopped.

moderate Media & Video

What it adds

Per-viewer playback position tracking with a resume prompt and a start-over option on return.

What your agent is told to do

5
  1. 1

    Record the playback position against the viewer and the video, using the app's existing per-user preference or profile storage rather than a new parallel store. Fall back to device-local storage for signed-out visitors.

  2. 2

    Offer the resume rather than performing it. Show where they stopped and let them continue or start from the beginning, with a clear default and a few seconds to choose.

  3. 3

    Write progress on a throttle and on the meaningful moments: pause, seek, tab hidden, and page unload. Continuous writes during playback will hammer the server for no benefit.

  4. 4

    Clear the stored position when the video finishes, so a rewatch starts at the beginning instead of at the credits.

  5. 5

    Do not treat a position as a completion record. If the app reports watch completion for courses or analytics, keep that separate; a viewer who scrubs to the end has not watched the video.

Edge cases it handles

8
  • A position inside the first few seconds is not worth resuming, and a position inside the last few seconds should be treated as finished. Ignore both rather than prompting someone to resume at four seconds in.
  • The same viewer on a phone and a laptop will produce two positions. Decide the reconciliation rule, prefer the most recently written one, and make sure a stale write from a device that was offline cannot overwrite a newer position.
  • Once a video has been watched to the end, the saved position must be cleared, or every rewatch opens on a resume prompt for the final frame.
  • Throttle progress writes so a playing video does not issue a request per second. Batch them, and coalesce anything queued while the connection is down.
  • Never force the resume point. Some viewers deliberately restart, and a player that silently jumps them forward with no way back reads as a bug.
  • If the video is replaced or re-encoded and its duration changes, discard positions recorded against the old version rather than seeking to a timestamp that no longer means anything.
  • A signed-out visitor who later signs in should have their local position carried across once, not silently discarded and not allowed to overwrite a newer signed-in position.
  • Saved positions are viewing history and need a retention rule and a way for the viewer to clear them.

Definition of done

9
  • Returning viewers are offered a resume with a visible start-over option.
  • Positions near the very start or very end are not offered as resume points.
  • Finishing a video clears its stored position.
  • Progress writes are throttled and also fire on pause, seek, and unload.
  • Positions from multiple devices reconcile to the most recent write without stale overwrites.
  • A replaced or re-encoded video discards positions from the previous version.
  • Viewers can clear their saved positions, and a retention rule exists.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 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.