Batch render videos from a CSV
One template, one file per row
Forty name cards, a price for every product, a clip for every city: the animation is the same and only the words change. Premation exposes those words as template fields and renders one file per row of a table, from the app or from a terminal with no window.
Free · AGPL-3.0-only · macOS & Windows
The panel that does it
The editor’s own panel, rebuilt on its chrome. It works: drag, toggle, queue.
How to do it
- 01
Build the composition once
Animate it as usual. Name the layers that will change, because the field ids come from the layer names.
- 02
Expose the fields
In the Template fields panel, pick a layer and expose the property that varies: text, a colour or a number. Each field gets an id your table's columns will match.
- 03
Write the table
A CSV with one column per field id and one row per video. Extra columns are ignored and missing columns keep the authored value.
- 04
Render the rows
premation render LowerThird.motion --data people.csv --out "out/{index}-{name}.mp4" writes one file per row. A failed row is recorded and the rest still render.
Questions
- Can I trigger renders from n8n or Zapier?
- Not directly yet. The premation command line runs on your own machine, so any workflow that can run a shell command can render a row.
- Can a row swap an image or a video?
- Not from a CSV: media columns are reported as skipped.
- Does the command line need the editor open?
- No. Each render is its own process with no window, and it uses the same engine as the Export dialog. It still needs a working GPU.