DaVinci Resolve API
Автоматизация DaVinci Resolve через Python API
Практический раздел по Resolve Scripting API: подключение к программе, импорт медиа, создание Timeline, работа с клипами и запуск рендера из Python.
Python automation pipeline
Python Script
GetResolve()Project Manager
Create / Open projectMedia Pool
ImportMedia(files)Timeline
CreateTimeline()Render Queue
StartRender()Практические страницы
DaVinci Resolve API на реальных задачах
Подключение к Resolve, импорт медиа, создание таймлайна, работа с клипами и запуск рендера через Python.
Как подключиться к DaVinci Resolve через Python API
Базовый вход в Resolve Scripting API: импорт модуля, scriptapp("Resolve") и проверка активного проекта
Разбираем рабочий стартовый шаблон для Python-скрипта: как найти модуль DaVinciResolveScript, получить объект Resolve, проверить версию программы, Project Manager и текущий проект.
Как проверить доступность Resolve Scripting API
Диагностика импорта DaVinciResolveScript, прямого подключения к Resolve и запасной вариант через Fusion
Рабочий диагностический скрипт помогает быстро понять, где проблема: Python не видит модуль, Resolve не запущен, scriptapp не возвращает объект или проект не открыт.
Как получить текущий проект DaVinci Resolve через Python
Project Manager, Current Project и проверка активного Timeline перед автоматизацией
Показываем рабочий способ получить открытый проект Resolve и активный Timeline. Этот код нужен перед импортом медиа, чтением настроек таймлайна, экспортом аудио и запуском рендера.
Как создать проект DaVinci Resolve через Python API
CreateProject, проверка текущего проекта и загрузка существующего проекта по имени
Рабочий пример показывает, как через Project Manager создать проект, не плодить дубликаты и загрузить существующий проект, если CreateProject не создал новый.
Как импортировать файлы в Media Pool через Python API
ImportMedia, проверка путей и получение Media Pool из текущего проекта
Разбираем рабочий импорт файлов в Media Pool DaVinci Resolve. Пример проверяет проект, существование файлов, вызывает ImportMedia и выводит имена импортированных MediaPoolItem.
Как импортировать папку и добавить клипы на Timeline
Сканирование папки, ImportMedia и AppendToTimeline в правильном порядке
Рабочий пример берёт видеофайлы из папки, сортирует их по имени, импортирует в Media Pool, создаёт Timeline при необходимости и добавляет клипы на монтажную последовательность.
Как создать Timeline в DaVinci Resolve через Python
CreateEmptyTimeline, CreateTimelineFromClips и проверка текущей последовательности
Показываем два рабочих варианта: создать пустой Timeline или создать Timeline сразу из импортированных клипов Media Pool.
Как получить FPS Timeline через DaVinci Resolve Python API
timeline.GetSetting("timelineFrameRate") и запасной вариант на настройки проекта
Рабочий пример читает FPS активного Timeline, корректно приводит строковое значение к float и использует настройки проекта как запасной источник.
Как перебрать клипы Timeline через Python API
GetTrackCount и GetItemListInTrack для видео- и аудиодорожек
Рабочий пример проходит по всем видео- и аудиодорожкам активного Timeline, получает TimelineItem и выводит имя, старт и конец каждого клипа.
Как запустить рендер в DaVinci Resolve через Python API
Render Preset, SetRenderSettings, AddRenderJob и StartRendering
Показываем рабочий запуск Render Queue из Python: выбор доступного preset, настройка папки и имени файла, создание render job, запуск свежей задачи и ожидание завершения.
Как перевести кадры в таймкод DaVinci Resolve через Python
Практическая функция frames_to_tc для SetCurrentTimecode, In/Out Range и точной работы с Timeline
Разбираем безопасное преобразование номера кадра в таймкод HH:MM:SS:FF. Такой код нужен перед перемещением playhead, установкой In/Out Range и любыми операциями, где Resolve API ожидает timecode, а не секунды.
Как перевести таймкод в кадры через Python для DaVinci Resolve
Обратное преобразование HH:MM:SS:FF в frame index для точных расчетов Timeline
Показываем рабочую функцию parse_tc_to_frames: как превратить таймкод Resolve в номер кадра, чтобы сравнивать диапазоны, считать длительность и синхронизировать операции Timeline API.
Как переместить playhead в DaVinci Resolve через Python API
SetCurrentTimecode, SetCurrentFrame и безопасный переход к нужному кадру Timeline
Разбираем рабочий способ поставить playhead на конкретный кадр: сначала через SetCurrentTimecode, затем через SetCurrentFrame, если метод доступен в текущей версии Resolve.
Как разблокировать дорожки Timeline через DaVinci Resolve Python API
GetTrackCount, SetTrackLock и SetTrackEnable для видео- и аудиодорожек
Показываем рабочий служебный скрипт: пройти по всем видео- и аудиодорожкам активного Timeline, снять блокировку и включить дорожки перед дальнейшими операциями.
Как получить список Render Presets через DaVinci Resolve Python API
GetRenderPresetList и LoadRenderPreset для подготовки рендера из Python
Разбираем безопасный способ получить доступные render presets, выбрать подходящий preset и загрузить его перед созданием Render Job.
Как очистить Render Queue в DaVinci Resolve через Python API
GetRenderJobs, GetRenderJobList, DeleteRenderJob и безопасная подготовка очереди перед новым рендером
Показываем рабочий подход к очистке очереди рендера: получить список задач, извлечь job id и удалить старые Render Jobs перед созданием новой задачи.
Как задать диапазон рендера по клипам V1 через DaVinci Resolve API
GetItemListInTrack, SetInOutPoints и SetRenderRange для рендера только рабочей области Timeline
Разбираем рабочий способ найти общий диапазон клипов на видеодорожке V1, поставить In/Out Points и переключить Render Range на In/Out Range.
Как определить разрешение исходников на V1 через DaVinci Resolve API
GetMediaPoolItem, GetClipProperty и выбор максимального разрешения клипов основной видеодорожки
Показываем рабочий способ пройти по клипам V1, получить MediaPoolItem, прочитать свойства клипа и определить исходное разрешение для настройки проекта или рендера.
Как экспортировать аудио Timeline в WAV через DaVinci Resolve Python API
Deliver page, SetCurrentRenderFormatAndCodec, SetRenderSettings и аудио-only Render Job
Разбираем рабочий экспорт звука активного Timeline в WAV: переключение на Deliver, очистка очереди, настройки LinearPCM, создание Render Job и ожидание файла.
Как удалить клипы с Timeline через DaVinci Resolve Python API
DeleteClips, поиск TimelineItem и безопасное удаление выбранных элементов
Показываем техническую часть удаления клипов: как найти элементы на активном Timeline и передать нужные TimelineItem в DeleteClips.
Как добавить клипы на Timeline через AppendToTimeline
Импорт файлов в Media Pool и последовательное добавление клипов на активный Timeline
Разбираем рабочий вариант добавления клипов: импортируем файлы через ImportMedia, сопоставляем MediaPoolItem с исходными путями и добавляем клипы на Timeline через AppendToTimeline.
Как получить стартовый кадр Timeline в DaVinci Resolve API
GetStartFrame, GetStart и безопасное определение базового кадра Timeline
Показываем, как получить стартовый кадр Timeline через GetStartFrame и аккуратно обработать версии Resolve, где доступен только другой вариант чтения позиции.
Как прочитать стартовый таймкод Timeline через Python API
timelineStartTimecode, GetStartTimecode и перевод таймкода в кадры
Рабочий пример чтения стартового таймкода Timeline: получаем timelineStartTimecode из настроек, используем GetStartTimecode как запасной вариант и переводим значение в кадры.
Как разрезать клип в DaVinci Resolve через Python
SetCurrentTimecode, поиск клипа под кадром и split через горячую клавишу Resolve
Показываем практический способ разрезания клипа: найти элементы Timeline, которые пересекают нужный кадр, поставить playhead и выполнить штатный split в интерфейсе Resolve.
Как собрать карту клипов Timeline через DaVinci Resolve API
GetTrackCount, GetItemListInTrack, GetStart, GetEnd и связь с MediaPoolItem
Создаем техническую карту Timeline: дорожка, тип медиа, имя клипа, старт, конец, длительность и путь к исходному файлу через MediaPoolItem.
Как обрезать TimelineItem через DaVinci Resolve Python API
SetStart, SetEnd, SetLeftOffset и SetRightOffset для технического trim клипа
Показываем безопасный пример trim: найти первый видеоклип, получить его границы и попробовать укоротить элемент через доступные методы TimelineItem.
Как запустить рендер всего Timeline через Python API
SetRenderRange Entire Timeline, SetRenderSettings, AddRenderJob и StartRendering
Рабочий пример полного рендера активного Timeline: очистить очередь, выбрать Entire Timeline, задать папку вывода, создать render job и запустить только новую задачу.
Как настроить MOV H.265 рендер через DaVinci Resolve API
SetRenderSettings для TargetDir, CustomName, Format, AudioCodec и VideoCodec
Показываем рабочий блок настройки MOV + H.265/HEVC: папка вывода, имя файла, видео, аудио AAC, bitrate и выбор подходящего названия кодека.
Как выставить разрешение рендера по клипам V1 через API
GetMediaPoolItem, GetClipProperty, SetSetting и ResolutionWidth/ResolutionHeight
Разбираем практический способ определить максимальное исходное разрешение клипов на V1 и передать его в настройки проекта и рендера.
Как получить свойства исходника через MediaPoolItem.GetClipProperty
Связь TimelineItem с MediaPoolItem и чтение File Path, Resolution, FPS и Codec
Разбираем рабочий способ получить свойства исходного файла из клипа на Timeline: через GetMediaPoolItem и GetClipProperty.
Как загрузить Render Preset через DaVinci Resolve Python API
LoadRenderPreset, выбор подходящего пресета и безопасная проверка результата перед AddRenderJob
Рабочий пример показывает, как получить список пресетов, выбрать H.265/HEVC или другой подходящий вариант и загрузить его перед настройкой Render Settings.
Как настроить Render Settings через DaVinci Resolve Python API
TargetDir, CustomName, Format, Codec, AudioCodec и базовые параметры финального экспорта
Разбираем рабочий шаблон SetRenderSettings для MOV H.265/HEVC с аудио AAC: папка вывода, имя файла, видео, аудио и битрейт.
Как создать Render Job через DaVinci Resolve Python API
AddRenderJob после настройки пресета, диапазона и параметров экспорта
Показываем правильный порядок действий: загрузить пресет, задать настройки рендера, выбрать диапазон и только затем добавить задание в Render Queue.
Как запустить один Render Job через DaVinci Resolve Python API
StartRendering с конкретным job id без запуска старых заданий из очереди
Рабочий пример показывает, как запускать только свежий Render Job и не трогать старые задания, которые могли остаться в Render Queue.
Как получить статус Render Job через DaVinci Resolve Python API
GetRenderJobStatus, JobStatus и проверка результата после завершения экспорта
Разбираем рабочий способ прочитать статус задания рендера по job id и корректно обработать результат Complete, Failed или пустой статус.
Как дождаться завершения рендера через DaVinci Resolve Python API
IsRenderingInProgress, цикл ожидания и финальная проверка Render Job
Показываем безопасный цикл ожидания рендера: скрипт не завершается раньше времени и после окончания читает статус Render Job.
Как остановить рендер через DaVinci Resolve Python API
StopRendering перед очисткой очереди или аварийным завершением автоматизации
Разбираем безопасный вызов StopRendering и проверку IsRenderingInProgress, чтобы остановить активный экспорт перед изменением Render Queue.
Как удалить Render Job из очереди через DaVinci Resolve Python API
DeleteRenderJob, разные форматы job id и аккуратная очистка одного задания
Показываем практический способ удалить конкретное задание из Render Queue, учитывая что Resolve может возвращать job id строкой, числом или словарем.
Как задать In/Out Range для рендера через DaVinci Resolve Python API
SetInOutPoints, SetRenderRange и перевод кадров в таймкод для Deliver page
Рабочий пример показывает, как превратить диапазон кадров в таймкоды, выставить In/Out Points на Timeline и переключить рендер на In/Out Range.
Полный пайплайн рендера DaVinci Resolve через Python API
Project, Timeline, очистка очереди, настройки MOV H.265, AddRenderJob, StartRendering и проверка файла
Финальный пример объединяет стандартные вызовы Resolve API в один рабочий сценарий: подготовить рендер, создать job, запустить его, дождаться завершения и вернуть путь к файлу.
Как получить количество аудиодорожек Timeline через Python API
GetTrackCount("audio") для проверки структуры Timeline перед вставкой музыки, SFX или экспорта звука
Разбираем безопасный способ узнать количество аудиодорожек в активном Timeline DaVinci Resolve и использовать это значение перед добавлением новых audio clips.
Как создать недостающую аудиодорожку через Resolve API
Проверка GetTrackCount и добавление дорожек через AddTrack("audio")
Рабочий шаблон показывает, как убедиться, что в Timeline существует аудиодорожка с нужным номером, и добавить недостающие дорожки через Python API.
Как добавить аудиофайл на Timeline через Python API
ImportMedia и AppendToTimeline с mediaType 2, recordFrame и trackIndex
Показываем рабочий шаблон вставки аудиофайла на конкретную аудиодорожку DaVinci Resolve через Media Pool и Timeline API.
Как импортировать несколько файлов и сопоставить MediaPoolItem по пути
ImportMedia, GetClipProperty и безопасная карта path → MediaPoolItem
Разбираем практический шаблон из интеграций Resolve API: импортировать список файлов и построить словарь, который позволяет быстро найти MediaPoolItem по исходному пути.
Как перевести секунды в кадры Timeline для Resolve API
FPS, базовый кадр Timeline и расчет recordFrame для AppendToTimeline
Показываем простой рабочий конвертер секунд в абсолютный кадр Timeline, который нужен при вставке аудио, титров и медиа по времени.
Как узнать тип и номер дорожки TimelineItem через Python API
GetMediaType и GetTrackIndex для аудио, видео и титров на Timeline
Рабочий пример показывает, как получить media type и track index у TimelineItem, чтобы корректно группировать клипы по дорожкам.
Как получить путь исходного файла у клипа Timeline через Python API
GetMediaPoolItem и GetClipProperty для связи TimelineItem с исходным медиа
Разбираем рабочий способ получить MediaPoolItem из TimelineItem и прочитать File Path через GetClipProperty.
Как создать недостающую видеодорожку через Resolve API
GetTrackCount("video") и AddTrack("video") перед вставкой клипов на V2 или V3
Показываем безопасный шаблон подготовки Timeline: проверить количество видеодорожек и добавить недостающие через AddTrack.
Как экспортировать карту клипов Timeline в JSON через Python API
GetTrackCount, GetItemListInTrack, GetStart, GetEnd и сериализация структуры Timeline
Практический пример показывает, как собрать техническую техническую карту Timeline: дорожка, имя клипа, старт, конец, длительность и путь исходного файла.
Как рассчитать видимые участки V1 с учетом перекрытий V2
GetItemListInTrack, интервалы клипов и геометрия Timeline по дорожкам Timeline
Показываем технический расчет видимых сегментов клипов V1, если часть основного видео перекрыта клипами на V2.

