Overview
When you tour 71 candidate properties across two states, the phone-video archive gets out of hand fast. This is the tool I wrote to bring it back under control: drag walkthrough clips into the order I want, stick an address title card on the front, append the issue-photo slideshow on the end, run the whole thing through vidstab to kill the handshake, and write a single H.264 MP4 to a known folder.
Status: v1.0, completed. ~75 KB of Python. It does exactly this and nothing else.
What's Honest Here
This is intentionally small. There's nothing architecturally clever here — it's an FFmpeg wrapper with a Tkinter list and a couple of useful defaults. I'm including it because it solves a real, specific step in the relocation workflow alongside Property Comparison, and because the practical fixes it took to ship are the kind of debugging that doesn't show up in a portfolio of polished projects.
What It Does
- Drag-to-reorder input list — clips go in the order you want, not the order the phone exported them
- Stabilization via
vidstab(two-pass: detect → transform) - Address title card rendered to a static PNG and prepended at known duration
- Issue-photo slideshow appended at end with per-photo dwell time
- Single H.264 MP4 output to a known folder by default (Documents / Property Walkthroughs)
- Drop a folder of phone clips, get a single shareable file
Tech Stack
- Python 3.11+
- FFmpeg + FFprobe with
vidstabbuild (the one that actually hasvidstabdetect/vidstabtransform) - Tkinter for the drag-to-reorder UI
- Windows (PowerShell-friendly install path)
What I Did vs. What AI Did
My work:
- Defined the scope and held it — refused to add features that didn't ship the actual videos
- Worked around
vidstab's filename-only quirk on Windows: the filter writes its transform file using a relative-path-only convention that breaks if you give it a fully qualified path with drive letter. The fix was a temp directory +cdinto it for the duration of the two-pass run. - Defaulted output to
Documents/Property Walkthroughs/because "where did it save" was the bug I kept hitting on my own tool - Implemented drag-to-reorder on the input list because clip order is the actual content decision
- Validated against a real backlog of phone clips, not synthetic test data
AI-assisted:
- Tkinter scaffolding and the drag-and-drop event wiring
- Initial FFmpeg argument strings (most of which I had to fix when the real two-pass behaviour surprised me)
- Slideshow timing math
What I Learned
vidstabis the right call for handheld walkthrough clips, but its Windows path handling will eat an afternoon if you don't know about it- "Default to a known folder" is the smallest UX feature with the biggest payoff on a one-person tool
- Holding scope is harder than expanding it
- A 75 KB tool that ships every property tour you take is more valuable than a 75 MB tool that does ten things badly
