A safer introduction to the API: verify the environment and connection first, read the current project, and only then run code that changes Resolve state.
What the Scripting API gives you
The Resolve Scripting API exposes objects such as ProjectManager, Project, MediaPool and Timeline for automation around media import, timelines and rendering. Available methods can change between Resolve versions, so the README/documentation installed with your copy of Resolve is the primary reference.
Find the SDK that belongs to your installation
Instead of copying random paths from the web, locate the Developer/Scripting folder installed with Resolve. It contains the README, Modules and examples. Locations differ across Windows, macOS and Linux and can vary with custom installations.
Windows: %PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting
macOS: /Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting
Linux: /opt/resolve/Developer/ScriptingMake the Python module visible
External Python needs access to the Scripting SDK Modules directory and Fusion scripting library. Configure the environment once rather than hardcoding absolute paths into every script.
Make the first test read-only
Do not create or delete projects in the first test. Get the Resolve object, retrieve the current project and print its name. That proves the connection without changing state.
import DaVinciResolveScript as dvr
resolve = dvr.scriptapp("Resolve")
if resolve is None:
raise RuntimeError("Resolve connection failed")
pm = resolve.GetProjectManager()
project = pm.GetCurrentProject()
print(project.GetName() if project else "No project is open")Learn the object model from the top down
A useful mental model is Resolve → ProjectManager → Project → MediaPool/Timeline. Do not begin by memorizing dozens of TimelineItem methods; first make object retrieval reliable.
Resolve
└─ GetProjectManager()
└─ GetCurrentProject()
├─ GetMediaPool()
└─ GetCurrentTimeline()Move to write operations only after the read-only test works
Creating projects, importing files, adding clips and render jobs changes Resolve state. Test those operations in a disposable project and inspect every method return value.
What to learn next
- ProjectManager and Project.
- MediaStorage and MediaPool.
- Timeline and TimelineItem.
- Markers, metadata and clip properties.
- Render Queue and presets.
- Fusion scripting when the task genuinely requires Fusion.
Key takeaway
Reliable automation starts with a verifiable chain: connection → object reads → safe test → only then project-changing operations.