Video workflow automation for Mac, from card to cut.
Footage offloaded and checksummed, proxies rendered, a transcript and chapter markers waiting — by the time you sit down to cut. The heavy lifting is standard tooling: ffmpeg, whisper.cpp and rsync, running as the same commands you'd type by hand. Watchflows is the trigger, sequencing and visibility layer around them, not a replacement for them — if you already have them installed, this wires them together; if you don't, they're a brew install away.
14-day free trial · no credit card · $49 one-time · macOS
Sound familiar?
The card mounts, you copy it over, and then you wait through a manual transcode pass before editorial can even start. Every shoot. Every card. The hour before you sit down to cut isn't editing, it's babysitting a terminal window.
You already own the commands. The rsync flags, the ffmpeg proxy preset, the exiftool call — you've had all of it in a scratch file for years. None of it fires itself, retries a flaky card reader, or tells you when clip 14 of 40 silently failed halfway through the batch.
You finish the edit, then you start the second job: transcribe it, write the title and description, mark the chapters, upload. Transcripts, titles and chapters are the tax you pay after the work you actually care about is already done.
Terabytes of finished projects sit on the fast drive because archiving is a chore you keep deferring. You know which projects are done. Moving them off is a five-minute job that somehow never happens until the drive is full and you're deleting under pressure.
Four chains worth building once
Built from real Watchflows nodes. ffmpeg, whisper.cpp, rsync and ffprobe run as the exact commands you already use, wired through a Script node, with every run visible in the execution timeline.
Offload, checksum, proxy — before you sit down
Plug the card in, walk away, come back to verified footage and finished proxies.
A System Event trigger set to Volume Mount fires the moment the card mounts, handing the first Script node volumeName and volumePath to work from. That node runs rsync plus a shasum verification pass, so a bad copy never makes it into your project folder. For-each then hands every clip to a second Script node running your exact ffmpeg proxy command, one clip at a time, and a notification lands when the whole set is done — not when the first clip finishes.
Every recording transcribed by the time you're back
Stop the recording, get a transcript, title, description and chapter markers.
A Directory Changed trigger watches your OBS or ScreenFlow output folder. When a new file lands, a Script node runs whisper.cpp locally, no upload required. The transcript flows into an AI Prompt node with a JSON Schema attached, so the title, description and chapter list come back as validated structured fields you can address individually downstream, not one blob of text you have to parse yourself. Write File saves the transcript next to the recording; Apple Notes gets the title and description ready to paste into your upload form.
Renders name themselves
Exports get consistent, sortable names without a naming convention nobody actually follows.
A Directory Changed trigger, filtered to the Created event, watches your exports folder and catches each new render the moment it lands, whatever it's named. A Script node calls ffprobe for duration, codec and resolution. A Template node composes the filename from those values plus the date, then Rename File and Move File put it where it belongs. The convention lives in the flow instead of in a doc nobody opens.
Cold storage on a schedule
Finished projects zip themselves off the fast drive.
A weekly Schedule trigger walks the projects directory. A Condition node guards on age, so nothing you touched recently gets swept up. Zip and Move File push what's left to the archive volume. Every run sits in the execution timeline, so if a client asks where a project went eight months from now, you have a record instead of a guess.
Why not just use Compressor, or write the ffmpeg yourself?
Hand-rolled shell scripts
They work, until a card mounts on a flaky USB hub or ffmpeg exits non-zero halfway through a batch, and nothing tells you. Watchflows doesn't replace the commands — it wraps them with a trigger, a run you can actually see, and a notification you'll notice.
Compressor
Apple's watch-folder transcoding is real and its preset library is genuinely deep — this isn't a place Watchflows tries to compete. What Compressor doesn't do is chain into the step before it (verifying the card copied clean) or after it (transcribing, renaming, archiving). It's one very good link in a longer chain, not the chain itself.
ProxyForge and other single-purpose transcoders
Good at exactly one job. The moment that job needs to hand off to something else — a notification, a rename, a move to a different volume — you're back to stitching tools together by hand, which is the problem you started with.
Your NLE's native proxy workflow
If you live entirely inside one NLE, its built-in proxy workflow is better integrated than anything external can be — it knows your project structure. But it only runs after import, and only inside that NLE. Watchflows' proxies happen before import, off the card, so editorial can open a project that's already ready.
Zapier and Make
Built for cloud services talking to cloud services. Neither can watch a local folder, see a mounted card, or run ffmpeg against a file sitting on your Mac. The moment the trigger or the payload is local, they're out.
None of this is a knock. Watchflows earns its place in the gap before import and after export — the offload, the verification, the transcription, the archive. Inside the edit, use the tool built for the edit.
Your footage never has to leave the Mac
Every recipe on this page can run entirely on your machine. whisper.cpp transcribes locally through a Script node. Ollama or Apple Intelligence can handle the AI Prompt node on-device. rsync, ffmpeg and ffprobe run as local processes, no upload step in between. No footage, transcript, or API key leaves your Mac unless you point a node at a cloud provider yourself.
There's no account to create and nothing syncs to a server you don't control. Watchflows Cloud (hosted AI, a public webhook relay) is available if you want it, entirely optional, and every recipe above works without it.
Frequently asked questions
Does Watchflows replace Final Cut, Premiere or Resolve?
No. Watchflows isn't an editor. It handles what happens before you open the timeline (offload, checksum, proxies) and after you export (renaming, archiving, publishing prep). Editing stays in your NLE.
Can it actually run ffmpeg, whisper.cpp and rsync, or just call some built-in transcoder?
It runs the real commands. The Script node executes Bash, Python, AppleScript, Node or Ruby — anything with a shebang — and captures stdout, stderr and exit code as payload data the rest of the flow can use. If your ffmpeg one-liner works in Terminal, it works in a Script node.
Does it work with OBS or ScreenFlow recordings, not just card offloads?
Yes. A Directory Changed trigger watches wherever OBS or ScreenFlow writes finished recordings and fires the moment a new file lands, no card or device event required.
Is my footage or transcript ever sent to a cloud service?
Not unless you configure a node to do that yourself. Transcription can run fully local through whisper.cpp in a Script node, and AI nodes can point at Ollama or Apple Intelligence on-device. Watchflows is local-first: files and API keys stay on your Mac.
What happens if a step fails partway through, like a proxy transcode crashing on clip 20 of 40?
You see it. The execution timeline shows every node's payload for every run, so you can find exactly which clip failed and why, then replay that run against the same payload once you've fixed it instead of re-running the whole batch.
What does it cost?
$49 one-time, not a subscription, and it includes every v1 update. There's a 14-day free trial with no credit card required. An optional Watchflows Cloud subscription adds hosted AI and a public webhook relay if you want them; the app is complete without it.
Watchflows for…
Build the chain once. Stop doing it by hand every week.
$49 one-time, free 14-day trial, no credit card. Local-first, no account — your footage stays on your Mac.
Questions? support@watchflows.app