Premiere Pro QE API
The official Adobe Premiere Pro API has a limited range of capabilities. Only the Premiere Pro QE API provides specific functions, such as adding effects to a clip.
The QE API (short for Quality Engineering) was built for internal testing and automation. Despite the fact that it was designed for internal usage, it is now available to all Premiere Pro Plugin developers and has a number of important features. Officially, the QE API isn’t supported, although it’s extensively utilized to realize features that wouldn’t be possible otherwise.
Using the QE API
Before you can use the QE DOM you need to call app.enableQE(). Once you’ve enabled the QE DOM you can start calling functions such as qe.newProject().
But how to find out which functions are available as part of the QE API? To get an up to date list of methods available in the QE DOM you could call qe.reflect.methods. While doing this manually is a tedious task, there are tools like the ExtendScript Developer Tools that can automate the process and allow you to inspect the QE API. The extension enables you to get a list of all properties and methods including the respective parameters and return types.
ExtendScript Developer Tools
This article deals with the ExtendScript Developer Tools. Use below buttons to learn more.
Using the Extendscript Developer Tools to understand the QE API
In version 1.1.6 of the ExtendScript Developer Tools a feature was added that allows you to inspect methods of any object present in the ExtendScript namespace. While this allows you to inspect the official Premiere Pro API, it also gives you acces to the unofficial QE API. The extension generates the QE API method documentation on-the-fly via reflection in order to make sure that it is always up to date.
You can start by inspecting the qe object in the ExtendScript Developer Tools inspect panel. By expanding methods you can see a list of functions available.
By clicking on the small run icon the respective functions can be executed directly from within the extension panel.
Common QE Features
Below are a few examples for which the QE API can be used
The QE API allows developers to undo specific actions by calling qe.project.undo(). This functionally is not part of the official API.
Get Video Effects
By calling qe.project.getVideoEffectList() you can get a list of effects available in your Premiere Pro version. These effects can then be applied to a clip.
Apply video effect to clip
An important feature missing from the official API is the ability to apply effects on a clip. The QE DOM offers this feature by calling addVideoEffect() on a QETrackItem.
app.enableQE(); var gammaCorrectionEffect = qe.project.getVideoEffectByName("Gamma Correction"); var activeSequence = qe.project.getActiveSequence(); var clip = activeSequence.getVideoTrackAt(0).getItemAt(1); clip.addVideoEffect(gammaCorrectionEffect);
QE Class (qe)
An example QE API function list generated by the ExtendScript Developer Tools can be seen below:
Number audioChannelMapping Property
Object codeProfiler Property
String config Property
Object ea Property
String language Property
String location Property
String name Property
String platform Property
Object project Property
Object s2t Property
Object source Property
Object tqm Property
String version Property
Boolean beginDroppedFrameLogging(String p0) Method
Boolean disablePerformanceLogging() Method
Boolean enablePerformanceLogging() Method
Boolean enablePlayStats() Method
Boolean endDroppedFrameLogging() Method
Boolean executeConsoleCommand(String p0) Method
Boolean exit() Method
String getDebugDatabaseEntry(String p0) Method
String getDroppedFrames() Method
String getModalWindowID() Method
Array getSequencePresets() Method
Boolean isFeatureEnabled(String p0) Method
Boolean isPerformanceLoggingEnabled() Method
String localize(String p0) Method
Boolean newProject(String p0) Method
Boolean open(String p0, Boolean p1) Method
Boolean outputToConsole(Stringp0, Boolean p1) Method
Boolean resetProject() Method
Boolean setAudioChannelMapping(Number p0) Method
Boolean setDebugDatabaseEntry(String p0, String p1) Method
Boolean startPlayback() Method
Boolean stop() Method
Boolean stopPlayback() Method
Boolean wait(Number p0) Method
Boolean write(String p0, Boolean) Method