UXP Extension for Premiere Pro 2025 Beta: uxp.host.eval() Issue & Timeline Access

Hello !

I’ve developed a UXP extension for Premiere Pro 2025 Beta to automate video editing workflows. After extensive testing, I’ve encountered critical blocking issues that I need community help with.

Project Context
Goal: Automate YouTube workflow tasks (clip scaling, audio sync, timeline manipulation)
Target: Adobe Premiere Pro 2025 Beta
Approach: UXP Extension with ExtendScript bridge

What I’ve Successfully Tested

Native UXP API Access - This works perfectly:

const project = await Project.getActiveProject();
console.log(project.name); // ✅ Returns actual project name
const sequence = project.activeSequence;
console.log(sequence.name); // ✅ Returns actual sequence name

Manifest Configuration:

  • Tested manifestVersion 4 with proper permissions
  • ExtendScript permissions in hostCapabilities
  • Adobe Spectrum UI integration working

ExtendScript Fallback:

  • Complete ExtendScript implementation works when run manually
  • Native dialog interface functional
  • Timeline manipulation successful via pure ExtendScript

Critical Blocking Issues

Issue 1: uxp.host.eval() Always Returns False

console.log('uxp.host.eval exists:', !!uxp.host.eval); // Always false

Manifest Configuration Tested:

{
  "manifestVersion": 4,
  "requiredPermissions": {
    "allowCodeGenerationFromStrings": true,
    "localFileSystem": "request"
  },
  "hostCapabilities": {
    "premierepro": {
      "permissions": ["ExtendScript", "allowCodeGenerationFromStrings"]
    }
  }
}

Issue 2: Extension Load Timeouts

  • Both complex and minimal extensions fail with “Plugin load timed out”
  • Even 300-line extensions cannot load successfully
  • UXP Developer Tool consistent timeout errors

Issue 3: Timeline Access Limitation

  • Can access project/sequence metadata :white_check_mark:
  • Cannot access clips, tracks, or timeline components :cross_mark:
  • Missing bridge between UXP API and actual editing operations

Technical Approaches Attempted

Approach 1: Direct uxp.host.eval

if (uxp.host && uxp.host.eval) {
    const script = `
        var clip = app.project.activeSequence.videoTracks[0].clips[0];
        clip.components[1].properties[1].setValue([36, 36], true);
    `;
    const result = await uxp.host.eval(script);
} else {
    console.log('uxp.host.eval not available'); // Always executes
}

Approach 2: Adobe OAuth2/IMS Authentication

  • Researched Adobe Developer Console setup
  • Implemented OAuth2 flow for Creative Cloud API
  • Authentication successful but uxp.host.eval still unavailable

Approach 3: Alternative UXP APIs

// Works for metadata only
const sequenceEditor = SequenceEditor.getEditor();
// No access to actual clips or timeline manipulation

Specific Questions for Community

Question 1: uxp.host.eval Availability
Has anyone successfully used uxp.host.eval() in Premiere Pro 2025 Beta?

  • What specific authentication/setup is required?
  • Are there manifest configuration requirements I’m missing?
  • Is this feature disabled in the Beta version?

Question 2: Timeline Manipulation Alternatives
Are there alternative UXP APIs for direct timeline access?

  • Methods to access clip properties (Motion, scale, position)?
  • APIs for track manipulation?
  • Undocumented UXP interfaces for editing operations?

Question 3: Extension Load Issues
Anyone experiencing UXP extension timeout issues?

  • Is this a known issue with Premiere Pro Beta?
  • Workarounds for load timeout problems?
  • Minimum system requirements causing issues?

Question 4: Development Environment
What’s the recommended setup for UXP development with Premiere Pro?

  • Specific UXP Developer Tool version compatibility?
  • Premiere Pro version requirements?
  • System configuration recommendations?

Current Working Solutions

ExtendScript Fallback (Fully Functional):

// This works when run manually in Premiere Pro
(function() {
    var sequence = app.project.activeSequence;
    var clip = sequence.videoTracks[0].clips[0];
    // Direct timeline manipulation successful
    for (var i = 0; i < clip.components.numItems; i++) {
        var component = clip.components[i];
        if (component.displayName === "Motion") {
            component.properties[1].setValue([36, 36], true);
        }
    }
})();

System Information

  • Premiere Pro: 2025 Beta (latest)
  • UXP Developer Tool: v2.1+
  • macOS: Latest version
  • Testing: Extensive debugging over multiple sessions

Expected Outcome
I need uxp.host.eval() functionality to bridge UXP interface with ExtendScript automation, enabling seamless workflow automation within the extension panel.

Code Available
I have a complete codebase with all testing approaches documented. Happy to share specific code snippets or collaborate on solutions.

Any insights from the community would be incredibly valuable. This seems like a fundamental UXP limitation that others might have encountered.

Hi Alternaz,

PPro has no plans to implement anything like an ‘ExtendScript bridge’. Hopefully, whatever you’re using PPro ExtendScript to do today, can be done in PPro UXP today (via UXP component and keyframe API - code samples available in sample panel), or ‘tomorrow’ (once we officially release PPro UXP extensibility).