← Все статьи DaVinci Resolve API
DaVinci Resolve APIНовичокСтарт

Как подключиться к DaVinci Resolve через Python API

Базовый вход в Resolve Scripting API: импорт модуля, scriptapp("Resolve") и проверка активного проекта

Разбираем рабочий стартовый шаблон для Python-скрипта: как найти модуль DaVinciResolveScript, получить объект Resolve, проверить версию программы, Project Manager и текущий проект.

API

Resolve Scripting API

Язык

Python

Resolve

19–20+

Требуется

Запущенный Resolve

Синтаксис

resolve = dvr.scriptapp("Resolve")

Параметры

  • "Resolve" — имя приложения, к которому подключается DaVinciResolveScript.

Возвращает

Объект Resolve или None, если приложение недоступно для Scripting API.

Полный рабочий пример Pythonкод можно использовать как основу скрипта
import os
import sys
from pathlib import Path


def import_resolve_module():
    try:
        import DaVinciResolveScript as dvr
        return dvr
    except ImportError:
        search_paths = [
            os.environ.get("RESOLVE_SCRIPT_API", ""),
            os.environ.get("RESOLVE_MODULES", ""),
            r"C:\\ProgramData\\Blackmagic Design\\DaVinci Resolve\\Support\\Developer\\Scripting\\Modules",
            "/opt/resolve/Developer/Scripting/Modules",
            "/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules",
            str(Path.home() / "Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/Modules"),
        ]
        for path in search_paths:
            if path and os.path.isdir(path) and path not in sys.path:
                sys.path.append(path)
        import DaVinciResolveScript as dvr
        return dvr


dvr = import_resolve_module()

resolve = dvr.scriptapp("Resolve")
if not resolve:
    raise RuntimeError("DaVinci Resolve не найден. Запустите Resolve и проверьте доступ к Scripting API.")

print("Resolve version:", resolve.GetVersionString())

project_manager = resolve.GetProjectManager()
project = project_manager.GetCurrentProject()

if not project:
    raise RuntimeError("Откройте проект DaVinci Resolve перед запуском скрипта.")

print("Current project:", project.GetName())

Документация

Что делает скрипт

Сначала код подключает официальный Python-модуль Resolve Scripting API. Затем через scriptapp("Resolve") получает главный объект приложения, выводит версию Resolve и переходит к Project Manager. В конце скрипт проверяет, открыт ли проект. Это нормальная безопасная точка входа: если Resolve не запущен или проект не открыт, ошибка появляется сразу, а не в середине импорта или рендера.

Почему нужен поиск модуля

На разных системах модуль DaVinciResolveScript может не попадать в стандартный Python path. Поэтому пример сначала пробует обычный импорт, а затем добавляет типовые папки Windows, Linux и macOS. Такой подход повторяет практический bridge-подход: скрипт не привязан к одному компьютеру и проще переносится между рабочими станциями.

Как использовать дальше

Этот блок можно ставить в начало почти любой интеграции: создание проекта, импорт файлов в Media Pool, создание Timeline, чтение FPS, перебор клипов и запуск Render Queue. После получения project уже можно вызывать project.GetMediaPool(), project.GetCurrentTimeline() и методы Deliver page.

Практическая основа

Код показывает базовую схему подключения к Resolve Scripting API: импорт модуля, получение объекта Resolve, проверку текущего проекта и чтение активной Timeline. Такой блок удобно использовать как стартовую часть собственных скриптов автоматизации.

Разбор примера

1

Подключаем модуль

Скрипт сначала пробует импортировать DaVinciResolveScript напрямую, а затем добавляет стандартные папки модулей Resolve для Windows, Linux и macOS.

2

Получаем объект Resolve

scriptapp("Resolve") возвращает главный объект приложения. Если объект не получен, дальнейшие вызовы API выполнять нельзя.

3

Проверяем версию

GetVersionString() нужен для быстрой диагностики: если версия выводится, Python действительно видит запущенный Resolve.

4

Переходим к проекту

Через GetProjectManager() и GetCurrentProject() скрипт проверяет, что пользователь открыл проект перед запуском автоматизации.

Особенности Resolve API

  • DaVinci Resolve должен быть запущен до вызова scriptapp("Resolve").
  • Если импорт модуля падает, проверьте путь к Developer/Scripting/Modules.
  • GetCurrentProject() возвращает None, если проект не открыт.
  • Для запуска из внешнего Python используйте ту же разрядность и окружение, где доступен модуль Resolve.

Частые ошибки

DaVinciResolveScript не импортируется

Причина: Python не видит папку Developer/Scripting/Modules.

Решение: Проверьте RESOLVE_SCRIPT_API, RESOLVE_MODULES или добавьте стандартный путь Resolve в sys.path.

resolve равен None

Причина: DaVinci Resolve не запущен или Scripting API недоступен текущему процессу.

Решение: Запустите Resolve, откройте проект и повторите запуск тем же Python-окружением.

project равен None

Причина: Resolve открыт, но активный проект не выбран.

Решение: Откройте нужный проект вручную или загрузите его через Project Manager.

Следующий шаг

После подключения обычно получают Project Manager и текущий проект.

Связанные статьи API