APIs for getting Resolve information externally?

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

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

APIs for getting Resolve information externally?

PostThu Apr 23, 2020 1:04 am

Hi DaVinci Resolve Team,

I make free and open source Mac application called CommandPost that allows you to seriously speed up your creative editing process through powerful and customisable automation tools. Think Apple’s Automator, with a little bit of BetterTouchTool and Keyboard Maestro thrown in, but specifically designed for creative professionals.

CommandPost has over 3300 active monthly users and over 1464 users in our Facebook Group.

Over the last few years, most of the focus has been on Final Cut Pro X - however, I'm now finally exploring adding deep support for DaVinci Resolve.

One of the features we have is a Spotlight-like feature called the "Search Console" which allows you to trigger, for example, any menu item from Final Cut Pro's menubar. To do this, we read FCPX's `.nib` files, so that we can programatically work all the menu items (without FCPX running) in all the languages it supports.

We also use the Accessibility API built directly into macOS to control Final Cut Pro. This allows us to offer awesome features like being able to individually trigger effects, titles, generators and transitions. This allows us to add these items to the "Search Console" - essentially ripping off Andrew Kramer's amazing FX Console

To offer similar functionality in Resolve, I have some questions:

1) Is there anyway to programatically determine what language Resolve's UI is set to?

2) Is there any programatic way we can get a list of all the Resolve menu bar items (i.e. File, Edit, Trim, etc) in every language it supports?

3) Is there a way to programatically get a list of all the "Effect Library" items (i.e. Video Transitions, Audio Transitions, Titles, Generators, Effects). If so... is there a way to "trigger" them via the Python/Lua API?

4) Kyno's developers recently announced that DaVinci Resolve 16.2.1 allows them to do a "Send to > DaVinci Resolve" feature - which sounds really cool. What API/method are they using to allow this to happen?

Any help or guidance you can provide would be very much appreciated!

Thanks in advance!

Best Regards, Chris!
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostThu Apr 23, 2020 3:35 am

Regarding 4 - as discussed here, Kyno is using FCP7 XML to get the data from Kyno to Resolve.
Offline
User avatar

antoine

  • Posts: 498
  • Joined: Sat Nov 24, 2018 2:20 am
  • Real Name: Antoine Dornstetter

Re: APIs for getting Resolve information externally?

PostThu Apr 23, 2020 8:37 am

I'm interested in this as well ! Might be more well suited in the Software Developers subforum viewforum.php?f=12

What exact task do you want to automate ?
BRAW Studio FREE and Premium for Adobe Premiere Pro and After Effects, with a brand new Desktop .BRAW Player and Color Grader, as well as an automatic White Balance Color Picker tool
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostThu Apr 23, 2020 8:54 am

antoine wrote:I'm interested in this as well ! Might be more well suited in the Software Developers subforum viewforum.php?f=12


Yeah, I thought about that, but there's no much discussion about Resolve in there, so figured this was more likely to get a response. Moderators can move if they see fit.

antoine wrote:What exact task do you want to automate ?


The reason I want to access all the menubar items is so that I can use them as "actions" in CommandPost. These actions can be triggered by shortcut keys, or via control surfaces (such as Tangent panels, Loupedeck CT, Loupedeck+, the MacBook Pro Touch Bar, Stream Deck's, MIDI devices, etc.). Ideally I want this to work across all the languages that Resolve supports.

The reason I want to programatically get a list of all the "Effect Library" items is so I can make something similar to Video Copilot's FX Console (or CommandPost's Search Console) - as explained in the original post.
Offline

rubefink

  • Posts: 64
  • Joined: Mon Nov 25, 2019 8:33 pm
  • Real Name: Reuben Finkelstein

Re: APIs for getting Resolve information externally?

PostFri Jul 16, 2021 11:43 pm

Please make this a reality. I'm a huge CommandPost Fan but am looking to move over to Davinci. Would love to see support for this.
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostFri Jul 16, 2021 11:59 pm

If free time allows, I am really hoping to add deeper support for Resolve in CommandPost sometime this year.
Offline

Philippe Metro

  • Posts: 90
  • Joined: Mon Nov 03, 2014 9:11 pm

Re: APIs for getting Resolve information externally?

PostFri Dec 17, 2021 10:17 am

Chris Hocking wrote:If free time allows, I am really hoping to add deeper support for Resolve in CommandPost sometime this year.


Many thanks for CommandPost, it's very useful for FCPX.
About Davinci support, do you think it will be able to assign the A button of the Tangent Ripple? Also, I'm wondering if it will make possible to use MIDI controller knobs to adjust things that don't have keyboard shortcut, like contrast, color boost,...maybe emulating mouse clic and drag like Bome MIDI Translator?
Offline
User avatar

TheBloke

  • Posts: 1905
  • Joined: Sat Nov 02, 2019 11:49 pm
  • Location: UK
  • Real Name: Tom Jobbins

Re: APIs for getting Resolve information externally?

PostFri Dec 17, 2021 11:06 am

Hi Chris

Firstly, great work on CommandPost. I'd never seen it before, but just had a look and it looks really powerful. I don't have any control surfaces (well, besides the Speed Editor) but if I did, I'd definitely be checking it out.

Speaking of the Speed Editor, I noticed your message on the CommandPost page regarding there, of course, being no support for the SE - because BMD have chosen to lock it to Resolve-only usage.

For a while I've been wondering if it might be theoretically possible to make a generic Speed Editor (and Editor Keyboard) remapper. The basic principle might be:
- Device driver that looks for and connects to the SE; I am theorising that it might just be a keyboard that doesn't identify as one, so connecting to it may not be too difficult.
- Reads commands from the SE, and then configurably maps them to keyboard shortcuts, API calls, etc.
- Re-broadcasts the commands as another, virtual SE, so that the device still works in Resolve. Ideally this too would be configurable, so that one could - for example - specify that the SYNC BIN button is not re-broadcast to Resolve, but instead only executes a user-mapped option.

I'm just wondering if you guys have ever investigated anything like that, and/or know whether it's achievable in a reasonable amount of work (I'm pretty sure it's definitely possible, but not sure how much work it might be)?
Resolve Studio 17.4.3 and Fusion Studio 17.4.3 on macOS 11.6.1

Hackintosh:: X299, Intel i9-10980XE, 128GB DDR4, AMD 6900XT 16GB
Monitors: 1 x 3840x2160 & 3 x 1920x1200
Disk: 2TB NVMe + 4TB RAID0 NVMe; NAS: 36TB RAID6
BMD Speed Editor
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostThu Dec 23, 2021 9:49 am

Apologies for the delayed reply!

Philippe Metro wrote:Many thanks for CommandPost, it's very useful for FCPX.
About Davinci support, do you think it will be able to assign the A button of the Tangent Ripple? Also, I'm wondering if it will make possible to use MIDI controller knobs to adjust things that don't have keyboard shortcut, like contrast, color boost,...maybe emulating mouse clic and drag like Bome MIDI Translator?


Yes, eventually I plan to add the ability to completely customise Tangent panels via Tangent Mapper. It's been on my to-do list for ages - there's just not enough hours in the day.

TheBloke wrote:I'm just wondering if you guys have ever investigated anything like that, and/or know whether it's achievable in a reasonable amount of work (I'm pretty sure it's definitely possible, but not sure how much work it might be)?


Unfortunately, it's simply not possible. Blackmagic basically have some encrypted authentication happening to prevent 3rd parties from using the Speed Editor. Once you first launch DaVinci Resolve, it does a "handshake" with the Speed Editor to enable it, then around 5-10mins later, you need to do the handshake again. Also, on macOS only one "driver" has access to a HID device at a time, and because you need Resolve to do the authentication, a third party app cannot act as the driver. The only way I can see around this is if someone builds their own firmware for the Speed Editor, or if Blackmagic changes their ways and allows third parties to use their hardware.
Offline
User avatar

Igor Riđanović

  • Posts: 1596
  • Joined: Thu Jul 02, 2015 5:11 am
  • Location: Los Angeles, Calif.

Re: APIs for getting Resolve information externally?

PostThu Dec 23, 2021 6:50 pm

I completely understand the BMD's model. The software is free or next to free. They have to make profit somewhere--like the hardware panels.
www.metafide.com - DaVinci Resolve™ Apps
Offline

Ellory Yu

  • Posts: 4002
  • Joined: Wed Jul 30, 2014 5:25 pm

Re: APIs for getting Resolve information externally?

PostThu Dec 23, 2021 7:09 pm

Igor Riđanović wrote:I completely understand the BMD's model. The software is free or next to free. They have to make profit somewhere--like the hardware panels.

That's true and I think this is alright for them to be in business. However, I just wish that they also make a panel that is much affordable, like a Tangent Ripple with some mojo for the price of the SE (around $295) that works seamlessly with DR, especially with knob adjustments, etc.
URSA Mini Pro 4.6K G2, Blackmagic Design Pocket Cinema Camera 6K, Panasonic GH5
PC Workstation Core I7 64Gb, 2 x AMD R9 390X 8Gb, Blackmagic Design DeckLink 4K Mini Monitor, Windows 10 Pro 64-bit, Resolve Studio 18, BM Micro Panel & Speed Editor
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostThu Dec 23, 2021 8:55 pm

Igor Riđanović wrote:I completely understand the BMD's model. The software is free or next to free. They have to make profit somewhere--like the hardware panels.


But they would potentially sell more Speed Editors’s if they opened up the API for third parties to use with other apps? I know a lot of Premiere and FCPX Editors would love to have a hardware device like the Speed Editor.
Offline

Ellory Yu

  • Posts: 4002
  • Joined: Wed Jul 30, 2014 5:25 pm

Re: APIs for getting Resolve information externally?

PostFri Dec 24, 2021 4:57 am

Chris Hocking wrote:
Igor Riđanović wrote:I completely understand the BMD's model. software is free or next to free. They have to make profit somewhere--like the hardware panels.


But they would potentially sell more Speed Editors’s if they opened up the API for third parties to use with other apps? I know a lot of Premiere and FCPX Editors would love to have a hardware device like the Speed Editor.

But Premier and FCPX are well supported by other hardware manufacturers for a while and do not sell hardware, except for FCPX being in the Apple ecosystem. So it makes sense for them. Look at Adobe, they have to make their money from Premier and their other products and their subscription model is not palatable. I wouldn’t want to see that happen with Resolve at all. Although having a panel is nice, it’s not required and an option of many who just want to use Resolve until they get to the next level. I would, however, say that BM should give one panel at the low cost end that’s price like the Speed Editor and complement it. That’s probably true also for a low cost end of a Fairlight panel. It’s wishful thinking but I can wish and hope it comes true. I’d be in line for it. :)
URSA Mini Pro 4.6K G2, Blackmagic Design Pocket Cinema Camera 6K, Panasonic GH5
PC Workstation Core I7 64Gb, 2 x AMD R9 390X 8Gb, Blackmagic Design DeckLink 4K Mini Monitor, Windows 10 Pro 64-bit, Resolve Studio 18, BM Micro Panel & Speed Editor
Offline
User avatar

Chris Hocking

  • Posts: 704
  • Joined: Wed Aug 22, 2012 4:23 am
  • Location: Melbourne, Australia

Re: APIs for getting Resolve information externally?

PostFri Dec 24, 2021 5:13 am

I'm not exactly sure how "opening up" the Speed Editor API would be a disadvantage for Resolve users? It would potentially sell MORE panels, which means more development money for Resolve. As you say - Blackmagic makes majority of their income off hardware, so selling more hardware seems like a win to me. And in other areas, Blackmagic is very open and collaborative - just look at the BRAW API/SDK, Blackmagic 3G-SDI Shield for Arduino and and their "40 products with free software developer kits". I really don't see any downside to allowing third parties to use the Speed Editor hardware for whatever they can dream up - from an end-user/customer perspective at least. The main reason I can foresee Blackmagic not wanting to open things up is they don't want the extra developer support to become a burden, and also the extra complexity of supporting external apps outside of Resolve from a developer point of view.

Final Cut Pro has no official panel API/SDK - Apple doesn't seem to care about third party panels at all. The only way you can control FCPX is via keyboard shortcuts, trigger menu bar items and via the Accessibility API. Adobe on the other hand has a dedicated API/SDK for control surfaces.
Offline

Andy Mees

  • Posts: 3254
  • Joined: Wed Aug 22, 2012 7:48 am

Re: APIs for getting Resolve information externally?

PostFri Dec 24, 2021 12:06 pm

All pure speculation, but whilst I don't disagree with the argument that opening Resolve's various panels to 3rd party use is obviously sound, as clearly it opens potential sales to a vastly wider audience, conversely it could be argued that locking use of the panels to their own software keeps buyers very much locked in the BMD ecosystem. Ie Once an investment has been, a user is evermore less likely to leave Resolve (lest their hardware purchase be rendered obsolete) and thus, as an entrenched user, that much more likely to continue making BMD hardware purchases in future. Swings and roundabouts, I suppose.
Let's have a return to the glory days, when press releases for new versions included text like "...with over 300 new features and improvements that professional editors and colorists have asked for."
Offline
User avatar

roger.magnusson

  • Posts: 3388
  • Joined: Wed Sep 23, 2015 4:58 pm

Re: APIs for getting Resolve information externally?

PostFri Dec 24, 2021 1:29 pm

Openness is great of course, but comes with its own issues. If custom firmware would be possible, it could create quite a security issue. Imagine a Micro Panel with custom firmware of unknown origin being plugged in on set for use by a DIT. It could install any kind of malware without the user knowing.

Return to DaVinci Resolve

Who is online

Users browsing this forum: Bing [Bot], Brad Hurley, Charles Bennett, davo_me, Google [Bot], Håkan Mitts, panos_mts, pvillow and 152 guests