blender-vse-pipeline
Blender VSE Pipeline
Overview
Automate video editing with Blender's Video Sequence Editor (VSE) using Python. Add and arrange strips (video, image, audio), create transitions, apply effects, assemble edits from file lists, and render final video — all headlessly from the terminal. Run on Blender 5.0.1 and checked against the 5.1 release notes and the current (5.2) Python API reference.
Blender 5.0 renamed the VSE API: Sequence became Strip, scene.sequence_editor.sequences became .strips, sequences_all became .strips_all, and new_effect takes length, input1, input2 instead of frame_end, seq1, seq2. The TRANSFORM effect strip is gone; every image or movie strip now has strip.transform and strip.crop.
The strip timing properties were renamed a second time in Blender 5.1. This skill uses the 5.0 names because they exist in every 5.x release; the 5.1+ names raise AttributeError on 5.0.x (verified on 5.0.1).
| Meaning | 5.0 and later (used here) | 5.1 and later only |
|---|---|---|
| first timeline frame | frame_final_start |
left_handle |
| end frame | frame_final_end |
right_handle |
| length on the timeline | frame_final_duration |
duration |
| trim from start / end | frame_offset_start / frame_offset_end |
left_handle_offset / right_handle_offset |
| frame where the source begins | frame_start |
content_start |
The 5.0 names are deprecated from 5.1 and planned for removal in 6.0 (5.1 Python API release notes). For a script that must run on 5.0 and on 6.0, pick the name at run time, for example getattr(s, "left_handle", None) with a fallback to s.frame_final_start.