PyBMD
A Pythonic toolkit for DaVinci Resolve — from full scripting-API access to high-level workflow helpers.
PyBMD gives you programmatic, Pythonic control over DaVinci Resolve. At its core it's a
complete wrapper around the Resolve scripting API — projects, media, timelines, color,
Fusion, and rendering. On top of that foundation it's growing into a toolkit of
higher-level helpers (such as marker-based still export in toolkits.StillManager) that
turn common workflows into a few lines of code, with more planned. It runs on Windows
and macOS, and tracks the Resolve API across versions (DaVinci Resolve 18.6 → 21.1.0).
Features
Core API wrapper
- Full API coverage — projects, media pool & storage, timelines and timeline items, folders/bins, and rendering.
- Color & Fusion — color groups and node graphs, Fusion compositions, and Fusion-based
UI creation (
UI_Dispather/UIManager). - Gallery & stills — galleries, still albums, and still management.
- Version-aware — query the running Resolve version and guard calls with
is_version_at_least()andcheck_api_compatibility(). - Typed models — data validation and structured settings powered by pydantic.
- Convenient startup — connect to a remote Resolve instance (
resolve_ip) or launch a local one automatically (auto_start).
Toolkit (high-level helpers)
- Utilities built on top of the raw API that turn common workflows into a few lines of
code — for example marker-based still export via
toolkits.StillManager. This layer is actively growing.
Requirements
- Python 3.12+
- DaVinci Resolve installed and running (Windows or macOS)
Installation
pip install pybmd
Or with uv:
uv add pybmd
Quick Start
⚠️ DaVinci Resolve must be running before you connect (or pass
auto_start=Trueto launch it).
from pybmd import Resolve
# Connect to a local DaVinci Resolve instance
resolve = Resolve()
project = resolve.get_project_manager().get_current_project()
timeline = project.get_current_timeline()
print(timeline.get_name())
Resolve() accepts two optional arguments:
| Argument | Default | Description |
|---|---|---|
resolve_ip |
"127.0.0.1" |
IP address of the DaVinci Resolve instance. Point it at a remote machine's IP to control a remote instance. |
auto_start |
False |
When True, launch a local DaVinci Resolve automatically if it isn't already running. |
Documentation
| Reference | Link |
|---|---|
| PyBMD API documentation | https://wheheohu.github.io/pybmd/ |
| DaVinci Resolve API reference | https://wheheohu.github.io/bmd_doc/ |
License
Released under the LGPL-3.0-or-later license.
Release files for pybmd 2026.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pybmd-2026.3.0.tar.gz | 142.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pybmd-2026.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 224.3 kB
Release files / pybmd-2026.3.0.tar.gz
| Download URL | pybmd-2026.3.0.tar.gz |
|---|---|
| Size | 142.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
edc321ee33f1ba744e81ebed845226c7fde5af18a8bc612bf893fdc9791d7833
|
|
BLAKE2b-256 checksum How to use checksums |
dd049f51d08cef01731ba4695d441f84f8719b14bed4ee726b6c0acdd2a3c427
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pybmd-2026.3.0-py3-none-any.whl
| Download URL | pybmd-2026.3.0-py3-none-any.whl |
|---|---|
| Size | 81.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7d3145b5d0f261f83d5b0b597c3b7b7ebe82dbc97c333796b2407a716f20d826
|
|
BLAKE2b-256 checksum How to use checksums |
a66ea3f8ba4bc5c2ae0f7f6e08510c23163f545992e27a5a7f2e7cf9b8d2287a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|