Skip to main content
Known Participant
April 3, 2025
Question

Struggling with Premiere Pro Plugin/Extension development!!

  • April 3, 2025
  • 2 replies
  • 2489 views

I am developing an extension for Adobe Premiere Pro, but I am struggling to get started as I am unable to properly understand the docs on CEP and the Premiere Pro API. I am finding it difficult to understand how to integrate these technologies properly, and I haven't come across any comprehensive resources that clearly explain the process.

Previously, I experimented with UXP, but I encountered limitations due to certain unsupported APIs and features. Now, I am unsure whether I should continue with CEP and try to work through its complexities or move back to UXP, hoping for better long-term support.

I am looking for:

i)Clear learning resources or tutorials for CEP and the Premiere Pro API.

ii)Guidance on how to properly integrate CEP with Premiere Pro.

iii)Insights into whether CEP is still the best approach or if UXP has improved enough to be a viable alternative.

If anyone has experience with this or can recommend useful resources, I would really appreciate your insights!

2 replies

Bruce Bullis
Legend
April 3, 2025

i)Clear learning resources or tutorials for CEP and the Premiere Pro API.
ii)Guidance on how to properly integrate CEP with Premiere Pro.

The PProPanel sample is the right starting point. PPro's ExtendScript API docs are here.

>iii)Insights into whether CEP is still the best approach or if UXP has improved enough to be a viable alternative.

You don't mention when you last checked, but if UXP already supports what you're trying to do (or is close), we definitely recommend using UXP.





Known Participant
April 5, 2025

I've seen them before but I thought they are olderversions and I want CEP12 proper sample which will act as a boiler plate code for me to start of. 
Another issue I was facing is I am unable to run extendscript in jsx file from the main.js file. The pathing is correct and I have also set the PlayerDebugMode to 1 in Registry Editor. There is no proper error message, it just says EvalScript Error and I am unable to Debug it.
I need your assistance here.

Thank you in advance!

Bruce Bullis
Legend
April 6, 2025

> If UXP won't yet work, then PProPanel is the right starting point. 

Are there any other newer samples available, the PPRO panel is supported well till v23.0.
I also found the code complex to understand. It's large for a starter panel.

> What prevents you from setting breakpoints, and debugging it?

This the code I have been trying to run

 

// main.js

const cs = new CSInterface();

function loadJSX() {
  const jsxPath = cs.getSystemPath(SystemPath.EXTENSION) + "/jsx/interface.jsx";
  console.log("Loading JSX from:", jsxPath);
  cs.evalScript(`$.evalFile("${jsxPath.replace(/\\/g, '\\\\')}")`);
}

document.addEventListener("DOMContentLoaded", () => {
  loadJSX();

  // Show alert
  document.getElementById("alertBtn").addEventListener("click", () => {
    cs.evalScript("showAlert()");
  });

  // Razor at timecodes
  document.getElementById("razorBtn").addEventListener("click", () => {
    // Timecodes in seconds
    const timecodes = [1.0, 2.5, 4.0];
    const timecodeString = JSON.stringify(timecodes);

    cs.evalScript(`razorAtTimecodes(${timecodeString})`, (result) => {
      document.getElementById("result").textContent = result;
    });
  });
});
// interface.jsx

function razorAtTimecodes(timecodes) {
    var sequence = app.project.activeSequence;
    if (!sequence) {
        return "No active sequence.";
    }

    var frameRate = sequence.getSettings().videoFrameRate;

    for (var i = 0; i < timecodes.length; i++) {
        var seconds = timecodes[i];
        var t = new Time();
        t.seconds = seconds;

        var videoTrack = sequence.videoTracks[0];
        if (videoTrack) {
            videoTrack.razor(t.ticks);
        }
    }

    return "Razor complete.";
}

function showAlert() {
    alert("Hello from ExtendScript!");
}

 

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>CEP Starter</title>
  <link rel="stylesheet" href="style.css">
  <script src="js/CSInterface.js"></script>
  <script src="main.js" defer></script>
</head>
<body>
  <div class="container">
    <h2>Alert Demo</h2>
    <button id="alertBtn">Trigger JSX Alert</button>
    <button id="razorBtn">Razor Sequence</button>
  </div>
</body>
</html>

 

I downloaded the CSInterface from here 


 


>Are there any other newer samples available

 

No; PProPanel remains the right starting point.

The code snippets you provided attempts to use unsupported QE DOM calls, without enabling QE DOM.


> I also found the code complex to understand. It's large for a starter panel.

PProPanel demonstrates how to do basically everything. 🙂 The complexity is appropriate. 


>There is no proper error message, it just says EvalScript Error and I am unable to Debug it.

 

Use Visual Studio Code (and the ExtendScript Debugger VSCode extension) to set breakpoints in PProPanel's ExtendScript, load the panel, and step through its code in the debugger.

 

Peru Bob
Community Expert
Community Expert
April 3, 2025