Resolve Scripting - how to access multicams?

Get answers to your questions about color grading, editing and finishing with DaVinci Resolve.
  • Author
  • Message


  • Posts: 616
  • Joined: Sun Apr 14, 2013 6:59 pm

Resolve Scripting - how to access multicams?

PostThu Nov 29, 2018 7:08 pm

I finaly found a workaround to get some Resolve Scripting in Python going.

Now my first problem...
the API reference in
%ProgramData%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\README.txt
and the examples in that directory list some nice features...
but there is no documented way to list or access Multicams in the current project and they
don't show up as Timelines with
GetTimelineCount() and

What I want to do it to build a clip that shows a video wall of an edited timeline, 2 generators (SMPTE colors and 10mV brightness ramp) and all the camera angles of the multicam that is used in that timeline.
It serves as a reference what alternative cameras angles are available when reviewing an edit remotely.
Up to now we have build these manually and it's a lot of work.

Introspection doesn't seem to be a way to find everything missing in the script readme.
Code: Select all
Py3> from pprint import pprint
Py3> pprint(project)
<PyRemoteObject object at 0x000002956A171E40>

Also: How do you access properties of a TimelineItem (such as transform->zoom and position)?


  • Posts: 616
  • Joined: Sun Apr 14, 2013 6:59 pm

Re: Resolve Scripting - how to access multicams?

PostThu Nov 29, 2018 7:40 pm

I found this ... 18f92f5126

and it seems you can do some introspection

Code: Select all
Py3> pprint(resolve.GetHelp('Project'))
('Project Members:\n'
 '  Project:AddRenderJob()\n'
 '  Project:DeleteAllRenderJobs()\n'
 '  Project:DeleteRenderJobByIndex()\n'
 '  Project:GetCurrentRenderFormatAndCodec()\n'
 '  Project:GetCurrentTimeline()\n'
 '  Project:GetMediaPool()\n'
 '  Project:GetName()\n'
 '  Project:GetPresets()\n'
 '  Project:GetRenderCodecs()\n'
 '  Project:GetRenderFormats()\n'
 '  Project:GetRenderJobStatus()\n'
 '  Project:GetRenderJobs()\n'
 '  Project:GetRenderPresets()\n'
 '  Project:GetSetting()\n'
 '  Project:GetTimelineByIndex()\n'
 '  Project:GetTimelineCount()\n'
 '  Project:IsRenderingInProgress()\n'
 '  Project:LoadRenderPreset()\n'
 '  Project:SaveAsNewRenderPreset()\n'
 '  Project:SetCurrentRenderFormatAndCodec()\n'
 '  Project:SetCurrentTimeline()\n'
 '  Project:SetName()\n'
 '  Project:SetPreset()\n'
 '  Project:SetRenderSettings()\n'
 '  Project:SetSetting()\n'
 '  Project:StartRendering()\n'
 '  Project:StopRendering()\n'
 '  ResolveScriptable:Print()\n'
 '  :GetApp()\n'
 '  :GetAttrs()\n'
 '  :GetHelp()\n'
 '  :GetHelpRaw()\n'
 '  :SetAttrs()\n')

Py3> pprint(resolve.GetHelp('Timeline item'))
('Timeline item Members:\n'
 '  Timeline item:AddFusionComp()\n'
 '  Timeline item:AddMarker()\n'
 '  Timeline item:ExportFusionComp()\n'
 '  Timeline item:GetClipColor()\n'
 '  Timeline item:GetDuration()\n'
 '  Timeline item:GetEnd()\n'
 '  Timeline item:GetFlags()\n'
 '  Timeline item:GetFusionCompByIndex()\n'
 '  Timeline item:GetFusionCompByName()\n'
 '  Timeline item:GetFusionCompCount()\n'
 '  Timeline item:GetFusionCompNames()\n'
 '  Timeline item:GetLeftOffset()\n'
 '  Timeline item:GetMarkers()\n'
 '  Timeline item:GetMediaPoolItem()\n'
 '  Timeline item:GetName()\n'
 '  Timeline item:GetRightOffset()\n'
 '  Timeline item:GetStart()\n'
 '  Timeline item:ImportFusionComp()\n'
 '  ResolveScriptable:Print()\n'
 '  :GetApp()\n'
 '  :GetAttrs()\n'
 '  :GetHelp()\n'
 '  :GetHelpRaw()\n'
 '  :SetAttrs()\n')

However no functionality regarding the 2 topics mentioned above seem to be in there. :(
So it's back to manual work.

Return to DaVinci Resolve

Who is online

Users browsing this forum: palvarezmesa, Raphael and 65 guests