How to automate video editing with scripts or the command line
About 100 commands in Video by Zaweba can run from the palette, .jsonl scripts, plug-ins or ZawebaVideo.exe on the command line with JSON output.

About 100 commands in Video by Zaweba can be run without clicking through menus. You can find and run any of them from the command palette (Ctrl+Shift+P), put a list of them in a .jsonl script and run it from the Scripts menu, write a plug-in that talks to the app, or call ZawebaVideo.exe from the command line with options such as --run, --exec and --export. Output comes back as JSON with exit codes, so other programs can tell what happened.
Automation earns its keep on jobs you do the same way every time: exporting a batch of projects, applying the same steps to every episode, or wiring video editing into a larger process that someone else built.
Four levels of automation
The command palette is the lightest touch. Press Ctrl+Shift+P, type part of a command's name and press Enter. It is not automation exactly, but it is the quickest way to learn the command names you will use in scripts.
Scripts are the next step. A script is a .jsonl file, one command per line in JSON form, run from the Scripts menu. Use one to repeat a routine: tidy a timeline, apply a set of steps, then export.
Plug-ins go further. A plug-in is a separate program with a plugin.json file that describes it. It talks to Video by Zaweba in JSON lines, so it can be written in whatever language you like and can make decisions, not just follow a fixed list.
The command line is for running Video by Zaweba from outside. ZawebaVideo.exe accepts --commands to list what is available, --run and --exec to carry out commands, --inspect and --probe to look at projects and media, and --export to render. Results come back as JSON with exit codes, which is what a batch file or a build server needs.
A practical example
Say you export the same project in three versions every week. Rather than opening it and exporting three times, a short batch file can call ZawebaVideo.exe with --export for each preset and check each exit code. Export presets can be saved with your own names in Export > More options and shared as .ozexport files, so the script can refer to them and anyone on the team gets the same result.
A similar pattern works for checking media before an edit. --probe reports on a file, so a script can confirm that every clip delivered for a project has the frame rate and size you expect before anyone starts cutting.
The control channel
For programs that want to talk to a running copy of the app, there is a control channel over TCP on 127.0.0.1, the local machine only. It is off by default, which is the safe choice: nothing can drive the app unless you switch it on. Turn it on only when you have a tool that needs it, and turn it off afterwards.
Tips for reliable automation
Start in the palette. Run a command by hand first so you know what it does, then put it in a script.
Check exit codes. A script that carries on after a failed step can do more harm than good. The command line's exit codes make it easy to stop at the first problem.
Use bit-exact exports when you compare results. An export option writes no dates or tool versions and uses the software encoder for MP4, so the same project gives the same file twice. That makes automated checks reliable.
Keep a human in the loop for creative decisions. Automation is good at repetitive steps and poor at taste. Let scripts handle exports and housekeeping, and keep the cutting for yourself.
Video by Zaweba is free software that runs offline on Windows with no account, so scripts and command-line jobs run entirely on your own machine.