Урок по DaVinci Resolve API
DaVinci Resolve API: настройка Python и первый скрипт
Официальный README Blackmagic полезен, но написан как техническая памятка. В этом уроке разложим его по-человечески: что нужно установить, где лежит API, как подключить Python и как запустить первый скрипт, который обращается к DaVinci Resolve.
Python, путь к SDK и библиотека Fusion Script.
Запустить программу и получить объект Resolve.
Проверить, что API реально отвечает.
Что такое DaVinci Resolve API
DaVinci Resolve API — это интерфейс для управления Resolve через скрипты. Через него можно работать с проектами, медиапулом, таймлайнами, клипами, маркерами, рендером, Fusion-композициями и частью AI-функций Studio.
В официальном SDK Blackmagic есть сам README, модуль DaVinciResolve.py для подключения из Python и папка с примерами. README не заменяет справочник по каждому методу, но отлично подходит как стартовый урок по настройке.
Что нужно перед стартом
Для работы со скриптами DaVinci Resolve должен быть установлен и запущен. Также нужен один из языков:
- Python 3.6+ 64-bit — самый удобный вариант для внешних скриптов.
- Lua 5.1 — подходит для сценариев в стиле Fusion.
- Python 2.7 64-bit — старый вариант, использовать его в новых проектах уже не стоит.
В настройках Resolve можно ограничить запуск скриптов только консолью или разрешить доступ из локальной сети. Сетевой доступ включайте осознанно: скрипты получают возможность управлять Resolve извне.
Где лежит официальный SDK
Чтобы внешний Python увидел модуль DaVinci Resolve, нужно знать три пути: папку API, библиотеку Fusion Script и путь к Python-модулям. В официальном README они разделены по системам.
Windows
RESOLVE_SCRIPT_API="%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting"
RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll"
PYTHONPATH="%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules\"macOS
RESOLVE_SCRIPT_API="/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting"
RESOLVE_SCRIPT_LIB="/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Libraries/Fusion/fusionscript.so"
PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"Linux
RESOLVE_SCRIPT_API="/opt/resolve/Developer/Scripting"
RESOLVE_SCRIPT_LIB="/opt/resolve/libs/Fusion/fusionscript.so"
PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"На некоторых ISO-установках Linux путь может отличаться: вместо /opt/resolve иногда используется /home/resolve.
Первый Python-скрипт
Самый простой тест — получить объект Resolve, обратиться к Project Manager и создать новый проект. Перед запуском убедитесь, что DaVinci Resolve уже открыт.
#!/usr/bin/env python
import DaVinciResolveScript as dvr_script
resolve = dvr_script.scriptapp("Resolve")
fusion = resolve.Fusion()
project_manager = resolve.GetProjectManager()
project_manager.CreateProject("Hello World")Если проект Hello World создался, значит Python видит модуль, Resolve отвечает, а базовое подключение к API работает.
Где хранить пользовательские скрипты
Resolve при запуске сканирует специальные папки Fusion Scripts и показывает найденные скрипты в меню Workspace → Scripts. Скрипт можно положить в общую папку для всех пользователей или в папку конкретного пользователя.
- Utility — скрипт доступен на всех страницах Resolve.
- Comp или Tool — скрипт доступен во Fusion.
- Edit, Color, Deliver и другие папки — скрипт привязан к конкретной странице.
Основные пути
Windows, все пользователи:
%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Fusion\Scripts
Windows, текущий пользователь:
%APPDATA%\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts
Linux, текущий пользователь:
$HOME/.local/share/DaVinciResolve/Fusion/Scripts
macOS, текущий пользователь:
/Users/<UserName>/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/ScriptsЗапуск через Console
Для быстрых проверок удобно использовать консоль внутри Fusion Page. Она позволяет выполнять простые команды, смотреть свойства объектов и быстро проверять, что возвращает тот или иной метод.
Но для нормальной автоматизации удобнее писать отдельные Python-файлы во внешнем редакторе: так проще хранить код, переиспользовать функции и подключать свои библиотеки.
Headless-режим: запуск без интерфейса
DaVinci Resolve можно запустить без графического интерфейса через параметр -nogui. Интерфейс при этом не открывается, но API продолжает работать. Это полезно для серверных сценариев, автоматического рендера и пайплайнов, где Resolve выступает как обработчик проектов.
resolve -noguiКак устроена объектная модель
Главная идея API простая: сначала получаем объект Resolve, потом через него добираемся до нужной части программы. Базовая цепочка выглядит так:
Resolve
├─ Fusion()
├─ GetMediaStorage()
└─ GetProjectManager()
└─ GetCurrentProject()
├─ GetMediaPool()
├─ GetCurrentTimeline()
└─ AddRenderJob()В справочнике API уже имеет смысл отдельно разбирать классы Resolve, ProjectManager, Project, MediaPool, Timeline и TimelineItem. Этот урок нужен именно для первого входа: чтобы скрипты запустились и стало понятно, откуда начинается работа.
Что дальше изучать
После настройки API логично двигаться по практическим задачам:
- создание проекта через ProjectManager;
- импорт медиа через MediaStorage и MediaPool;
- создание таймлайна и добавление клипов;
- работа с маркерами, цветами клипов и метаданными;
- настройка рендера и запуск очереди;
- автоматизация Fusion-композиций и генераторов.
Так README Blackmagic превращается не в сухой справочник, а в нормальный стартовый урок, после которого можно переходить к полноценной энциклопедии API и рабочим примерам.

