The Problem
A video production studio delivers 20-30 branded videos per month for corporate clients. Each video follows the same post-production pipeline: color grade the raw footage in DaVinci Resolve, export it, import into After Effects for animated titles, lower thirds, and branded transitions, render the final output, and export three versions (4K master, 1080p web, and social media crops). The colorist spends 2 hours per video applying the same LUT and adjustment workflow. The motion graphics artist spends another 2 hours dropping text into the same After Effects templates. Half the post-production time is repetitive mechanical work that follows identical steps for every project. The colorist and motion graphics artist are highly skilled professionals spending most of their time on tasks a script could handle.
The Solution
Use DaVinci Resolve scripting to automate the color grading pipeline with consistent LUT application, node structures, and export settings, then use After Effects ExtendScript and aerender to batch-process motion graphics templates with per-video data (titles, client logos, timestamps) and render all output formats without manual intervention.
Step-by-Step Walkthrough
1. Build an automated color grading pipeline in DaVinci Resolve
Create a scripted workflow that applies the studio's standard color grade to raw footage and exports in the correct format for After Effects. DaVinci Resolve's Python API provides full access to the color page, so the same three-node grade the colorist applies manually can be replicated exactly in code.
Create a DaVinci Resolve Python script that automates our color grading pipeline. The script should import all clips from a project folder, apply our studio LUT (Studio_Log_to_Rec709.cube) as the first node, add a second node with our standard contrast curve (lift -0.02, gamma 1.05, gain 1.08), add a third node for skin tone qualification that warms midtones by 15 degrees, and set the render output to ProRes 422 HQ at the source resolution. Process the entire timeline and start the render queue.
Exporting as ProRes 422 HQ preserves color accuracy for the After Effects stage while keeping file sizes manageable. A 5-minute clip at 1080p produces roughly 5 GB in ProRes HQ -- large but essential for maintaining grading quality through the downstream compositing.
2. Create data-driven After Effects templates
Build After Effects templates that accept external data (video title, client name, speaker names, timestamps) so they can be populated automatically per project. The template is built once by the motion graphics artist and reused hundreds of times by the automation script.
Create an After Effects template project with these components: a 5-second animated title card that accepts videoTitle, clientName, and episodeNumber as text source variables; a lower third template that accepts speakerName and speakerRole; and a branded end card with clientLogo and callToAction fields. Use Essential Graphics properties so each text field can be controlled from a JSON data file. Include our standard easing curves and the client's brand colors as expressions linked to a control layer.
The key design principle is that every variable element -- text, logos, colors, timing -- is driven by data rather than hardcoded. This means a single template can serve 50 different videos with 50 different titles and speakers.
3. Batch populate and render with aerender
Use the After Effects command-line renderer to process multiple videos through the template with different data. Aerender runs headless (no GUI), so it can process overnight on a workstation or render server without tying up an artist's machine.
Write a batch script that processes 12 videos through our After Effects template using aerender. Read a CSV file where each row has: videoFile, videoTitle, clientName, speakerName, speakerRole, episodeNumber. For each row, duplicate the template comp, replace the background footage with the color-graded file from DaVinci, populate all text fields from the CSV data, and queue a render at three output specs: 4K ProRes master, 1080p H.264 at 20 Mbps for web, and 1080x1080 H.264 crop for Instagram. Run aerender with multiprocessing enabled.
4. Automate format-specific exports
Generate all delivery formats from the master render without re-processing the entire After Effects project. Deriving formats from the master avoids rendering the same After Effects composition three times with different output settings.
After the master 4K ProRes renders complete, create an ffmpeg post-processing script that generates the additional delivery formats: a 1080p H.264 web version with 2-pass encoding at 12 Mbps, a 720p version at 5 Mbps for email embedding, a 15-second highlight clip extracted from timecodes specified in the CSV, and a thumbnail JPG from the title card frame. Apply loudness normalization to -14 LUFS on all outputs per YouTube and podcast platform requirements.
5. Set up a watched folder pipeline
Connect the DaVinci and After Effects stages so dropping raw footage into a folder triggers the entire pipeline automatically. The watched folder approach means the editor's workflow is unchanged: they export raw footage to a folder, and finished deliverables appear in the output directory hours later.
Create a watched folder automation: when new ProRes files appear in the /incoming/raw-footage directory, trigger the DaVinci Resolve color grading script. When graded files land in /incoming/color-graded, trigger the After Effects batch render. When After Effects outputs complete, trigger the ffmpeg format conversion. Move completed deliverables to /output/{client-name}/{date}/ and send a Slack notification with file names, sizes, and render durations. Log every step so we can audit the pipeline when a client questions a deliverable.
The audit log is important for client-facing work: when a client asks "why does this frame look different?" the log shows exactly which LUT, compression settings, and template version were applied.
Real-World Example
The studio tested the pipeline on a batch of 8 corporate interview videos for a fintech client. The DaVinci Resolve script applied the color grade to all 8 clips in 25 minutes -- work that previously took the colorist a full afternoon. The three-node color pipeline (LUT, contrast curve, skin tone qualification) produced consistent results across clips shot in different rooms with different lighting conditions.
The After Effects batch processed all 8 videos through the branded template, each with unique titles and speaker information from the CSV, and rendered 24 output files (3 formats each) overnight using aerender's multiprocessing mode. The total hands-on time dropped from 32 hours across two specialists to 90 minutes of pipeline setup and quality review.
The studio now processes recurring client deliverables on autopilot, reserving the colorist and motion graphics artist for creative work on premium projects that require artistic judgment. The time savings allowed them to take on two additional recurring clients without hiring, and the consistency of the automated output actually reduced client revision requests by 30% because every deliverable matched the approved template exactly.