qmasingarbe / pymiere

Python for Premiere pro
GNU General Public License v3.0
363 stars 46 forks source link

Implementing the QEApplication #4

Closed bryanrandell closed 4 years ago

bryanrandell commented 4 years ago

Hi, I've made some function for my workflow thanks for your pymiere lib. But I noticed than the pymiere.objects.qe is treated as a PymiereGenericObject and I cannot access its methods. It will be a great improvement if we could access it. Do you think it would be possible ? Maybe you can just lead me to a solution, using your work code. Thanks a lot Bryan

qmasingarbe commented 4 years ago

Hi @bryhimself, I'm glad you found Pymiere useful in your workflow! Unfortunately QE is a second undocumented hidden API used by Adobe Quality Engineering team to do automated test. It is not supported nor documented by Adobe. I therefore cannot create a proper object with the function signatures or return types... Although there is no code completion or documentation for this object, you can still use all QE functions via the PymiereGenericObject, for exemple :

import pymiere
print(pymiere.objects.qe.location)

If you want to know the availabe functions or properties in QE, you can either dig around the internet or call .inspect() on the PymiereGenericObject (or any Pymiere object), it will give you as much information as Adobe gives us about the object. Note that due to the unsupported status of this API, some function signature shown are not right.

> import pymiere
> pymiere.objects.qe.inspect()
Inspection of object 'QEApplication' found :
 13 properties :
  - audioChannelMapping = 0
  - codeProfiler = None
  - config = Release
  - ea = <pymiere.core.PymiereGenericObject object at 0x0000027646F68C50>
  - language = en_US
  - location = C:\Program Files\Adobe\Adobe Premiere Pro 2020\Adobe Premiere Pro.exe
  - name = Premiere Pro
  - platform = Windows
  - project = <pymiere.core.PymiereGenericObject object at 0x0000027646F68B70>
  - s2t = <pymiere.core.PymiereGenericObject object at 0x0000027646F68C50>
  - source = <pymiere.core.PymiereGenericObject object at 0x0000027646F68CC0>
  - tqm = <pymiere.core.PymiereGenericObject object at 0x0000027646F68BA8>
  - version = 14.3.1
 29 methods
  - addEventListener(p0)
  - beginDroppedFrameLogging()
  - disablePerformanceLogging()
  - dispatchEvent()
  - enablePerformanceLogging()
  - enablePlayStats(p0)
  - endDroppedFrameLogging()
  - executeConsoleCommand(p0)
  - exit()
  - getDebugDatabaseEntry()
  - getDroppedFrames()
  - getModalWindowID()
  - getProgressContainerJSON(p0)
  - getSequencePresets()
  - isFeatureEnabled(p0)
  - isPerformanceLoggingEnabled(p0)
  - localize(p0,)
  - newProject(p0,)
  - open()
  - outputToConsole(p0)
  - removeEventListener(p0,p1)
  - resetProject()
  - setAudioChannelMapping()
  - setDebugDatabaseEntry()
  - startPlayback(p0)
  - stop(p0,)
  - stopPlayback()
  - wait()
  - write()