Desktop automation for DaVinci Resolve
Resolve Automation Render Pipeline connects to a running DaVinci Resolve session, reads an Excel spreadsheet row by row, updates your Fusion text, voice-over audio, BG_V1 background video, and Logo_Pic overlay image, and renders each version automatically. By 1LineArt Studio.
See it in action
Every screenshot below is the real interface. Connect to Resolve, map your Excel columns to Fusion text, let voice-over audio, BG_V1 background video, and Logo_Pic overlay image resolve themselves from the spreadsheet, then render the whole batch.
The same Excel row drives everything at once — Fusion text, voice-over audio, BG_V1 background video, Logo_Pic overlay image, and the output filename — so one spreadsheet is the only thing you maintain between renders.
What it does
Seven things it handles automatically, so you're not reopening Resolve's UI between every render.
Works with your own project, timeline, Fusion compositions, and text nodes — nothing to rebuild around the tool.
Every mapped text input updates automatically from its Excel column before each render, row by row.
Add a "Voice-Over" column with a file path per row; the audio imports, places at 00:00:00:00, and loops to fill the timeline automatically.
Add a "Video-Track" column with a video clip path per row; it's imported into the Media Pool and linked to the template's "BG_V1" Fusion composition, looped to fill the timeline just like voice-over.
A missing file or empty cell just carries over the previous row's media instead - one bad row never stops the batch.
Build output filenames from a pattern and any Excel column, like Render_{index:03d} or
a per-row title.
Every run writes a CSV, a JSON, a summary text log, and a full diagnostic log — each row's status, filename, voice-over, video-track, and IMG outcome.
Reference
Three things worth knowing before your first batch run.
Voice-over, video-track & IMG status (Tab 3)
| Status | Meaning |
|---|---|
| OK | File found — will be used for this row (placed on the audio track, or linked into the matching Fusion node). |
| no path in Excel | The row's Voice-Over, Video-Track, or IMG cell is empty. |
| file not found | A path was given, but nothing exists there. |
| no column | The spreadsheet has no column named exactly "Voice-Over", "Video-Track", or "IMG". |
Where each column goes
| Column | Accepts | Destination |
|---|---|---|
| Voice-Over | Audio file path | Dedicated "Voice Over (Automation)" audio track |
| Video-Track | Video clip path | Imported into the Media Pool, linked to "BG_V1"'s "BG_Vid" Media In node (looped) |
| IMG | Still image path | Imported into the Media Pool, linked to "Logo_Pic"'s "LOGO_IMG" Media In node |
Render reports (written after every batch)
| File | Contents |
|---|---|
| render_report.csv | Row, filename, status, detail, voice-over outcome, video-track outcome, and IMG outcome — spreadsheet-friendly. |
| render_report.json | The same data, machine-readable. |
| render_log.txt | The summary text log of the entire run (one line per row). |
| automation_log.txt | The full diagnostic log, including the specific reason behind any failed Media In update. |
Template requirements
Video-Track and IMG don't get placed on a timeline track directly - they update specific Fusion nodes inside two specific compositions. Your Resolve project has to be built to match these exact names for the automation to find them. None of this depends on what your spreadsheet is actually about - the same structure works for any large-scale batch of video productions.
A clip named BG_V1 and a clip named Logo_Pic must exist on the timeline. "Video-Track" points BG_V1's BG_Vid node at a background video, looped to fill the timeline. "IMG" points Logo_Pic's LOGO_IMG node at an overlay still image. "Voice-Over" places audio on a dedicated audio track (A11) - if the media is shorter than the timeline, it loops to fill the full duration; if longer, it's trimmed to match the timeline exactly. If a cell is empty or its file can't be found, that row simply renders with whichever media the previous row last set, and processing continues with the next row.
Timeline structure & required setup
Tracks read bottom-to-top like any Resolve timeline. Two clips carry the automation; everything above them is your own layout for whatever each production needs to show, mapped separately on Tab 2.
| Track | Clip | Role |
|---|---|---|
| V1 | Background video composition - updated by Video-Track | |
| V2 | BG_0 | Base background layer, untouched by the automation |
| V3 | Overlay image composition - updated by IMG | |
| V4 and up | Your own text/graphic compositions | Whatever each production needs to display, mapped to Excel columns on Tab 2 |
| (created automatically) | Dedicated narration track - updated by Voice-Over | |
| A1, A2... | Your own background music/SFX | Untouched by the automation |
Clip naming & organization
Fusion node naming conventions
Inside BG_V1:
Inside Logo_Pic:
BG_Vid and LOGO_IMG (highlighted above) must be named exactly that - they're the Media In / Loader nodes the automation writes each row's file path into. The surrounding nodes (Transform, Merge, Background, MediaOut) can be built however your template needs; only the two highlighted node names matter to the automation.
Excel sheet header titles & required format
Three column headers are fixed and reserved for the automation; every other column in your sheet is free-form and gets mapped to a Fusion text input on Tab 2 - whatever each row of your production needs to show.
| Header (exact) | Required format |
|---|---|
| Full path to an audio file, one per row | |
| Full path to a video file, one per row | |
| Full path to a still image file, one per row |
Every other column is whatever your own production needs - map each one to a Fusion text input on Tab 2. Header text is matched exactly, so keep spelling, capitalization, and hyphens identical to the table above.
Setup
A standalone desktop app that connects to a running Resolve session — nothing to install inside Resolve itself.
Python 3.9+ (64-bit) is required.
From the application folder:
If macOS shows an externally-managed-environment or permission error, add
--user to the command above.
In DaVinci Resolve: Preferences → General → External scripting using → Local. Restart Resolve after changing this setting.
With DaVinci Resolve open and your project loaded, run from the application folder:
If a required package is missing, the app shows the exact install command instead of crashing with an unclear error.
Optional: the interface is designed around the Poppins font. If it isn't installed, the app automatically falls back to your system font — nothing else to configure.
Usage
The same four tabs shown above, walked through in order.
.xlsx
spreadsheet.The default filename pattern Render_{index:03d} produces
Render_001, Render_002, Render_003, and so on.
Questions
No — it's a standalone desktop app that connects to a running Resolve session over Resolve's own scripting API. Open your project in Resolve first, then connect from the app.
Any edition with scripting enabled — check Preferences → General → External scripting using is set to Local, then restart Resolve.
That row simply renders with whichever media the previous row last set - nothing is cleared or left blank, and a missing file never stops the rest of the run.
Neither is placed on a timeline track. Video-Track sets the template's "BG_V1" Fusion composition's "BG_Vid" Media In node to that row's video clip (imported into the Media Pool first), with Loop enabled so a shorter clip fills the timeline. IMG imports that row's still image into the Media Pool the same way and links it to the template's "Logo_Pic" composition's "LOGO_IMG" Media In node. Both compositions already exist on your template timeline — only the Media In node inside each is repointed per row, the same way a Fusion text field is repointed on Tab 2.
No — since Video-Track and IMG only edit nodes inside the "BG_V1" and "Logo_Pic" compositions respectively, any other Fusion composition or text overlay on your timeline is untouched.
Yes — leave that mapping row static instead of assigning it a column, and it keeps its existing Fusion value for every row.
It defaults to MP4 / H.264. The full list of available formats and codecs follows your Resolve installation and license — check the Deliver page if a list looks short.
Connect it to your open project and it's ready for its first batch in minutes.