Skip to content
← All posts
Recording · 6 min read ·

How to update a product demo video without re-recording it

A button moved and your demo is out of date. Split the demo into scenes that end at a stable state, and a UI change becomes a one-scene retake instead of a full re-record.

The product changed a little. A button moved, a label was renamed, the settings page got a new section. Your three-minute demo video is now wrong in one place, and the only fix you can see is recording the whole thing again, redoing every zoom and cut, and hoping nothing else goes wrong this time.

It doesn't have to work like that. This post explains why small UI changes force full re-records, how to structure a demo so they don't, and how to retake a single part cleanly. The advice applies to any recording setup. After that, we show how DemoTake handles it with scenes, checkpoints and Demo Diff.

Why a small UI change forces you to re-record the whole video

A demo recorded as one continuous video couples everything together:

  • Edits are pinned to timeline positions. Your zoom at 1:12 and your caption at 1:40 are tied to the timeline. Replace 20 seconds in the middle with a 26-second new version, and everything after it is off by six seconds.
  • The splice has to match. A replacement clip must start exactly where the old footage left off: same window size, same data, same open panels. If the list had four items before and five now, the viewer sees a jump.
  • The state drifts. By the time you re-record, your test account has different data, the clock moved on and a notification badge appeared. Matching the old footage is often harder than starting over.

So people start over. The fix is to decide in advance where the video may be cut, and to make those points easy to return to.

Split the demo into scenes that end at a stable state

A scene is one story beat: "Sign in", "Create a project", "Invite a teammate". The important part is where it ends. Each scene should end on a stable state, a screen that stays put and proves the step worked: the dashboard after signing in, the new project in the list.

Stable end states give you clean seams. The next scene starts from that screen, so any single scene can be recorded again as long as you can get the app back to its starting state.

Scene Starts at Ends at (stable state)
1. Sign in Sign-in page Dashboard visible
2. Create a project Dashboard "Q3 Launch" in the project list
3. Configure billing Project settings "Plan updated" banner
4. Invite a teammate Project page Invite shows as pending
5. Export Project page Export finished dialog

When the billing screen changes in the next release, only scene 3 is affected. Scenes 1, 2, 4 and 5 are untouched.

Q3 Launch walkthrough5 scenes
  1. 1Sign in✓ Dashboard visible0:07Kept
  2. 2Create a project✓ Q3 Launch in the project list0:12Kept
  3. 3Configure billing✓ Plan updated bannerattempt 2Retake
  4. 4Invite a teammate✓ Invite shows as pending0:09Kept
  5. 5Export✓ Export finished dialog0:06Kept
Only the scene whose screen changed is recorded again. The others keep their footage and edits.

How to retake just one part of a demo

Whatever tool you use, the steps are the same:

  1. Restore the starting state. Put the app back where the previous scene ended: same account, same data, same window size.
  2. Record only that scene, from its starting state to its stable end state.
  3. End on the same state as before, so the next scene still follows on naturally.
  4. Check the seams. Watch the last second of the scene before and the first second of the scene after.

How DemoTake does it

In DemoTake, a take is recorded scene by scene. You end each scene with Create Checkpoint (⌘D), which saves the stable state and starts the next pending scene. Each scene's footage is stored separately, so retaking one scene doesn't touch the others.

To retake a scene, select it in the editor and click Re-record. On the recording screen, once recording is running, right-click the scene and choose Re-record This Scene. What happens:

  • Other scenes keep their footage and edits. Edits are stored in time relative to their own scene, so a retake that runs longer or shorter doesn't shift anything elsewhere.
  • The old attempt is kept. If the new one is worse, right-click the scene and use Use Attempt to switch back.
  • The pointer and automatic zooms follow the new footage. They are built from the recorded clicks and typing, so they're rebuilt from the new attempt.
  • Check your manual edits on that scene. A caption or redaction you placed 3 seconds into the scene stays 3 seconds into the new attempt. If the new attempt's timing differs, nudge it.

If you ran footage review on the take, run it again (Review Again in the Review tab), because suggestions for the old attempt no longer apply. See Retakes and checkpoints and Scenes and takes for the details.

BEFORE
Re-record the whole demo
  • Every scene recorded again
  • Zooms, captions and cuts redone
  • New chances for mistakes in parts that were fine
AFTER
Retake one scene
  • Only the changed scene is recorded
  • Other scenes keep footage and edits
  • The previous attempt stays available

Update a demo after every release with Demo Diff

Retaking a scene by hand is fine when you know what changed. After a big release you often don't. That's where it helps to have the demo as a script that can be run again.

With DemoTake Agent, a demo can live in your repository as a demotake.json spec: scenes, steps and the checkpoint each scene should end at. After a release, run it with --only-changed. DemoTake replays the flow, compares each scene's checkpoint with the last recording, and re-records only the scenes whose UI changed. Unchanged scenes keep their footage and edits.

Terminal
$ demotake run demotake.json --only-changed --outputs 16:9,9:16
✓ PASS  Q3 Launch walkthrough  41.8s · take_01j…
    = Sign in  7.0s · unchanged, footage kept
    = Create a project  12.1s · unchanged, footage kept
    ✓ Configure billing  9.6s · UI changed
    = Invite a teammate  8.7s · unchanged, footage kept
    = Export  6.2s · unchanged, footage kept
    diff vs take_01h…: 1 of 5 scene(s) changed.
1 passed, 0 failed in 41.8s
Scenes marked = kept their footage and edits. Only the billing scene was recorded again.

The comparison, called Demo Diff, looks at two things for each checkpoint: the text of the app's interface (with numbers, clocks and counters normalized away) and a downscaled picture of the screen (ignoring areas you redacted). A scene counts as changed when either differs beyond a small threshold. A scene with no checkpoint to compare is treated as changed, to be safe. If nothing changed, your existing exports stay current and no render runs.

You can also ask for the comparison on its own with demotake diff <take>, or from an agent with take_diff. Demo specs and CI shows how to run this on every release tag. Running specs means operating other apps, which needs DemoTake Agent. In DemoTake Studio, the Mac App Store edition, you retake scenes by hand.

Tips that make demos easy to update

  • One scene per area of the UI. If billing, invites and export each live in their own scene, a change to one area means one retake.
  • Keep scenes short. A 10 to 30 second scene is quick to redo. A two-minute scene is a small re-record of its own.
  • End on a screen that won't change on its own. Avoid ending on a toast that disappears, an animation or a live counter.
  • Use seeded test data. A dedicated demo account with the same projects, names and numbers every time makes retakes match. Reset it before each recording.
  • Fix the window size. Record the same window at the same size every time so the seams line up.
  • Hide the volatile stuff. Turn off notifications, and keep clocks, dates and "3 minutes ago" timestamps out of the frame where you can.
  • Write the end state down. A one-line checkpoint description, like "Invite shows as pending", tells you (or your agent) exactly where a retake must stop.

Next time the product changes, you retake one scene, not the whole video. To try the scene-by-scene workflow, download DemoTake and start with Record your first take.