Dashboard
DaVinci Resolve Python 3 API — Übersicht, Script Builder & Bridge-Download
14
API-Objekte
120+
Methoden
5
Export-Formate
3
Script-Pfade
Timeline Visualizer (Demo)
V3
GFX_Logo
GFX_Lower3
V2
Interview_B
Interview_C_wide
Interview_D
V1
A-Camera_Master.mov
A1
Dialogue_Mix.wav
A2
Music_Bed.wav
Quick Start — VerbindungIMMER ZUERST
Einstieg für jedes Resolve-Script. Diesen Block immer an den Anfang setzen.
import DaVinciResolveScript as bmd resolve = bmd.scriptapp("Resolve") pm = resolve.GetProjectManager() project = pm.GetCurrentProject() tl = project.GetCurrentTimeline() pool = project.GetMediaPool() print(f"Projekt: {project.GetName()}") print(f"Timeline: {tl.GetName()}")
Script-PfadeSETUP
Scripts müssen in diesen Ordnern liegen damit Resolve sie findet:
macOS
/Library/Application Support/
Blackmagic Design/DaVinci Resolve/
Fusion/Scripts/Comp/
Blackmagic Design/DaVinci Resolve/
Fusion/Scripts/Comp/
Windows
C:\ProgramData\Blackmagic Design\
DaVinci Resolve\Support\
Developer\Scripting\Examples\
DaVinci Resolve\Support\
Developer\Scripting\Examples\
API Objekt-Hierarchie
Resolve
└── ProjectManager
└── Project
├── MediaPool → Bin → MediaPoolItem
├── Timeline → TimelineItem
│ ├── FusionComp
│ └── Marker
├── Gallery → GalleryStillAlbum → GalleryStill
└── RenderSettings
Resolve → MediaStorage (unabhängig)
Script Builder
Blocks kombinieren → fertiges Python-Script
Verbindung
Timeline
Marker
Clips
Render & Export
OUTPUT — main.py
# ResolveScripter — Script Builder
# Wähle links Blocks aus um Code zu generieren
Marker Tool
Marker visuell erstellen — Code wird automatisch generiert
Neuen Marker definieren
Frame
Name
Notiz
Dauer
Farbe
Generierter Code
# Marker-Code erscheint hier
Marker-Liste
Definierte Marker
Noch keine Marker definiert.
Batch-Code (alle Marker)
# Batch-Code für alle Marker erscheint hier
Render Queue
Render-Jobs konfigurieren und Code generieren
Export-Format
MOV
H.265 Master — ProRes-ähnlich
MP4
H.264 — Web / Delivery
MXF
DNxHD — Broadcast
ProRes
422 HQ — Post Production
Einstellungen
Zielordner
Dateiname
Bereich
Generierter Code
# Render-Code erscheint nach Konfiguration
Render-Queue
Jobs
Noch keine Jobs in der Queue.
Gesamt-Fortschritt
0%
API Referenz
Vollständige Methoden-Übersicht aller Resolve-Objekte
| Methode | Rückgabe | Beschreibung |
|---|
Python Cheatsheet
Die wichtigsten Patterns — direkt kopierbar
Alle Clips eines Tracks iterieren
items = tl.GetItemListInTrack("video", 1) for item in items: name = item.GetName() start = item.GetStart() end = item.GetEnd() dur = item.GetDuration() print(f"{name}: {start}–{end} ({dur} frames)")
Marker nach Farbe filtern
markers = tl.GetMarkers() red_markers = { frame: data for frame, data in markers.items() if data['color'] == 'Red' } for frame, d in red_markers.items(): print(f"Frame {frame}: {d['name']}")
Alle Timelines auflisten
count = project.GetTimelineCount() print(f"{count} Timelines im Projekt") for i in range(1, count + 1): t = project.GetTimelineByIndex(i) fps = t.GetSetting("timelineFrameRate") print(f"{i}. {t.GetName()} @ {fps}fps")
MediaPool: Bin erstellen + importieren
pool = project.GetMediaPool() root = pool.GetRootFolder() new_bin = pool.AddSubFolder(root, "Neuer Bin") pool.SetCurrentFolder(new_bin) clips = pool.ImportMedia([ "/pfad/zu/clip1.mov", "/pfad/zu/clip2.mov" ])
Render mit Fortschritts-Loop
import time project.SetRenderSettings({ "SelectAllFrames": True, "TargetDir": "/pfad/output", "CustomName": "Export_v1" }) jid = project.AddRenderJob() project.StartRendering() while project.IsRenderingInProgress(): s = project.GetRenderJobStatus(jid) p = s.get('CompletionPercentage', 0) print(f"\r{p:.0f}%", end="") time.sleep(1)
Timeline exportieren (EDL + XML)
base = "/Users/mark/Desktop" tl.Export( f"{base}/timeline.edl", resolve.EXPORT_EDL, resolve.EXPORT_NONE ) tl.Export( f"{base}/timeline.xml", resolve.EXPORT_FCPXML, resolve.EXPORT_NONE ) print("Export fertig.")
Alle Clips rot flaggen
v_count = tl.GetTrackCount("video") flagged = 0 for i in range(1, v_count + 1): items = tl.GetItemListInTrack("video", i) for item in items: item.AddFlag("Red") flagged += 1 print(f"{flagged} Clips geflaggt")
Timeline-Setting-Dump
keys = [
"timelineFrameRate",
"timelineResolutionWidth",
"timelineResolutionHeight",
"timelineDropFrameTimecode",
"timelineInterlaceProcessing",
]
for k in keys:
val = tl.GetSetting(k)
print(f"{k:35} = {val}")