← ClaudeAtlas

vse-pythonlisted

Build Video Sequence Editor timelines from Python. SequenceEditor.strips vs .sequences, new_effect length vs frame_end, and the 5.2 COLOR strip width/height bake from scene resolution.
TMHSDigital/Blender-Developer-Tools · ★ 13 · Code & Development · score 66
Install: claude install-skill TMHSDigital/Blender-Developer-Tools
# Video Sequence Editor in Python ## Trigger Use this skill when the user: - Builds or inspects a VSE / sequencer timeline from a script - Mentions `sequence_editor`, `strips`, `sequences`, `new_effect`, COLOR strips, or `StripTransform` - Hits `AttributeError: 'SequenceEditor' object has no attribute 'sequences'` on 5.x - Hits `TypeError` on `new_effect` kwargs (`frame_end` vs `length`) - Renders a sequencer composite whose COLOR cells ignore `transform.scale_*` after a resolution change ## High-level shape ```python import bpy scene = bpy.context.scene se = scene.sequence_editor or scene.sequence_editor_create() coll = se.strips if hasattr(se, "strips") else se.sequences if bpy.app.version >= (5, 0, 0): strip = coll.new_effect( name="A", type="COLOR", channel=1, frame_start=1, length=10, ) else: strip = coll.new_effect( name="A", type="COLOR", channel=1, frame_start=1, frame_end=11, ) strip.color = (0.85, 0.10, 0.22) ``` Branch on `bpy.app.version`, never on `bpy.app.version_string`. An empty `bpy_prop_collection` is falsy — `se.strips or se.sequences` silently falls through to the legacy accessor on an empty timeline. Always branch on `hasattr`. ## Accessor: `.strips` vs `.sequences` | | 4.5 LTS | 5.1 / 5.2+ | | --- | --- | --- | | Canonical collection | `.strips` (`.sequences` is a bridge to the same strips) | `.strips` only | | `.sequences` | Present, same contents as `.strips` | `AttributeError` | ```python def