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.
- 1Sign in✓ Dashboard visibleKept
- 2Create a project✓ Q3 Launch in the project listKept
- 3Configure billing✓ Plan updated bannerRetake
- 4Invite a teammate✓ Invite shows as pendingKept
- 5Export✓ Export finished dialogKept
How to retake just one part of a demo
Whatever tool you use, the steps are the same:
- Restore the starting state. Put the app back where the previous scene ended: same account, same data, same window size.
- Record only that scene, from its starting state to its stable end state.
- End on the same state as before, so the next scene still follows on naturally.
- 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.
- Every scene recorded again
- Zooms, captions and cuts redone
- New chances for mistakes in parts that were fine
- 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.
$ 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
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.