Changelog

Premiere v27.0.0

This major version release of Premiere comes with added features, bug fixes, and general documentation updates.

As part of this release Premiere now supports UXP 9.4. For more details on what this includes check out the UXP 9.4 Changelog at the UXP Developer Hub.

Breaking Changes

The Application class

We've decided to remove the Application class from the exposed set of classes available from the premierepro module, and the version asynchronous instance property it had documented.

const ppro = require("premierepro");
console.log(typeof ppro.Application);  // "undefined"

The version property didn't have a great way to be accessed at runtime: since there isn't a way to properly instantiate an Application object to even access the version property, this didn't make sense to have available in the first place. Current version information is better served through the UXP host object which includes synchronous properties about the current Premiere version details instead, and is more consistent with other Adobe applications which support UXP plugins.

The documented Application class and its TypeScript declaration in @adobe/premierepro still remains, however, as the class is used with some EventManager event listener functions. We're planning on improving our documentation generally around events and where the Application class does fit in here. Stay tuned!

New APIs

A number of new APIs have been added in this release. More details on each can be seen in each class's documentation page. If you'd like to see more examples of using all of these new APIs in action, check out the premiere-api sample panel in the UXP Premiere Pro Samples repository.

UXP Host Additions

A new property buildNumber has been added to the UXP host object. This can be particularly useful for helping report any issues as of a particular version + build of Premiere.

const uxp = require("uxp");
console.log(uxp.host.version);      // "27.0.0"
console.log(uxp.host.buildNumber);  // "42"

API Updates

Bug Fixes

Documentation Updates

Outside of the above core changes, we've also updated our documentation and @adobe/premierepro TypeScript declarations package to address some inconsistencies or improve and clarify how to use various classes and APIs. We'll continue reviewing these and working to make sure these are as accurate as possible.

Premiere v26.5.0

This release of Premiere comes with a number of added features, bug fixes, and a few deprecations.<br><br><a href="https://raw.githubusercontent.com/AdobeDocs/uxp-premiere-pro/refs/heads/main/src/pages/feed.xml" style="display: inline-flex; align-items: center; gap: 6px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20"><circle cx="6.18" cy="17.82" r="2.18" fill="#eb1000"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z" fill="#eb1000"/></svg><span>Subscribe via RSS</span></a>

New APIs

A number of new APIs have been added in this release. More details on each can be seen in each class's documentation page. If you'd like to see more examples of using all of these new APIs in action, check out the premiere-api sample panel in the UXP Premiere Pro Samples repository.

UXP Host Additions

We've also added some new functionality to the UXP host object.

Bug Fixes

Deprecations

Media.start and Media.duration properties

Instances of the Media class contain two async properties which, in comparison to the rest of the available classes and properties, are a bit unusual and awkward to work with:

const media: Media = ...
// These properties return Promises and must either be `await`ed or
// require using `.then()` Promise chaining syntax to use correctly
const start = await media.start;
const duration = await media.duration;

We've opted to deprecate these properties in favor of newly-added getStart()/getDuration() synchronous functions. This was chosen primarily for backwards compatibility instead of changing the properties insitu from asynchronous to synchronous:

const media: Media = ...
// No `async` usage required!
const start = media.getStart();
const duration = media.getDuration();

The asynchronous start and duration properties will be removed in a future version of Premiere.

Constants.MarkerColor.MAGNETA

It turns out we also had an incorrectly spelled constant for MarkerColor called MAGNETA. While the value of this constant is correct for API usage, the slight mispelling of MAGNETA instead of MAGENTA just didn't sit right. We've gone ahead and deprecated the previous MAGNETA color in favor of a properly spelled MAGENTA, and will plan on removing the mispelled constant in a future version of Premiere.

- const myFavoriteColor = ppro.Constants.MarkerColor.MAGNETA;
+ const myFavoriteColor = ppro.Constants.MarkerColor.MAGENTA;

Documentation Updates

Outside of the above core changes, we've also updated our documentation and TypeScript declarations to address some inconsistencies. We'll continue reviewing these and working to make sure these are as accurate as possible.

Premiere Pro v26.3.0

This release of Premiere comes with a few breaking changes we want to call out, as well as a swath of new APIs worth looking through.

Breaking Changes

Sequence.setSelection

The Sequence.setSelection method is now synchronous: calling this will immediately return a boolean value instead of a Promise<boolean>.

If you are using this API with async/await, simply remove the use of await:

  const project = await ppro.Project.getActiveProject();
  const sequence = await project.getActiveSequence();

  const selection = await sequence.getSelection();

- const success = await sequence.setSelection(selection);
+ const success = sequence.setSelection(selection);

If you are using this API with Promise.then method chaining, you'll need a bit more updating to avoid runtime issues, e.g.:

- sequence.setSelection(selection).then((success) => {
-   if (success) { ... }
- });
+ const success = sequence.setSelection(selection);
+ if (success) { ... }

Action creation in locks

Creating Action instances through the various create*Action functions must now be done so while behind a project.lockedAccess(() => { ... }) call. Previously this wasn't consistently enforced across create*Action calls.

const audioTrack: AudioTrack = ...

project.lockedAccess(() => {
  // Create the action here...
  const action = audioTrack.createSetNameAction("MyAudioTrack");

  project.executeTransaction((compoundAction: CompoundAction) => {
    // ...and use it here
    compoundAction.addAction(action);
  }, "Rename AudioTrack");
});

Creating Actions within a lockedAccess call is important: many Actions contain data that can quickly become stale or inconsistent with other actions that might take place in Premiere (e.g., an editor is making changes that might conflict with a UXP plugin operating at the same time). Using the lockedAccess makes sure these actions are sequenced and properly applied to the Undo history.

The new @adobe/eslint-plugin-premierepro ESLint plugin offers several rules which help catch these cases to help make sure Action creation and usage in your plugin follows best practices. For more information see the documentation pages for:

New APIs

A number of new APIs have been added in this release. More details on each can be seen in each class's documentation page. If you'd like to see more examples of using all of these new APIs in action, check out the premiere-api sample panel in the UXP Premiere Pro Samples repository.

Premiere Pro v26.2.0

UXP Hybrid Plugin Support

Premiere Pro now officially supports UXP Hybrid Plugins, allowing developers to extend their UXP plugins with native C++ libraries. Hybrid plugins enable performance-critical workloads—such as audio/video processing, ML inference, and integration with native SDKs—to run as compiled code alongside the JavaScript-based plugin UI and logic.

Premiere Pro v25.6.0

Official Release of UXP extensibility in Premiere Pro

New Features

Premiere Pro's UXP APIs are approaching parity with what was previously possible, via CEP and ExtendScript. While the sample plugins don't (yet) exercise every call or listen to every message, the infrastructure is in place; we will continue to expand and improve the samples.

Documentation update

Premiere Pro v25.2.0

Initial Public Beta Release for UXP in Premiere Pro

Release Date: December 4, 2024

New Features

Known Issues

Getting Started