Copy link to clipboard
Copied
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!
>when I click on the sample test buttons they aret't working.
That's bizarre; no other developer has reported that behavior. PProPanel has been working fine, for years. Perhaps start with a fresh copy of PProPanel?
Copy link to clipboard
Copied
Copy link to clipboard
Copied
> 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.
Copy link to clipboard
Copied
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!
Copy link to clipboard
Copied
If UXP won't yet work, then PProPanel is the right starting point.
> I am unable to run extendscript in jsx file from the main.js file.
Where does your implementation, depart from PProPanel's?
> it just says EvalScript Error and I am unable to Debug it.
What prevents you from setting breakpoints, and debugging it?
Copy link to clipboard
Copied
> 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
Copy link to clipboard
Copied
>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.
Copy link to clipboard
Copied
> No; PProPanel remains the right starting point.
Can I use this
Copy link to clipboard
Copied
You can try! 🙂
That sample shows off everything CEP can do; it will not show you anything that PPro's API can do.
Copy link to clipboard
Copied
So I have a couple of questions
One main feature I am looking out for is trim a part of a sequence without ripple(accessing the razor tool). How can I achieve that via extendscript or the PPRO API or QE DOM.
CEP uses extendscript(ES3 and and some extended features) and PPRO API can be used via Extendscript. Am I right?
How do I use PPRO API in extendscript then and access the extendscript functions via JS
I am maybe asking silly questions and making it frustrating, but it's being complex for me to understand these methods and also the repo😅.
Copy link to clipboard
Copied
There is no supported Trimming API, but you can change the sequence in/out points of trackItems, and move them
>CEP uses extendscript...
Close! CEP = Chromium instances which load (JavaScript-based) web pages. CEP uses the CSInterface to send ExtendScript to PPro's ExtendScript (yes, ES3) interpreter.
We understand, it can seem complex.
Recommended starting approach is as above: Set up your dev environment so you can (use VSCode to) set breakpoints in PProPanel's ExtendScript, experiment with the sample.
Copy link to clipboard
Copied
> There is no supported Trimming API, but you can change the sequence in/out points of trackItems, and move them
There is this extension called AutoPod which cuts a part sequence and disables/deletes it and I want to implement that feature and I am not able to get it.
And,
With the PPRO panel I can use the abilities of CEP, extendscript and the PPRO API right.
If not, how will that be possible
Copy link to clipboard
Copied
> I can use the abilities of CEP, extendscript and the PPRO API right.
Yes; the PPro API is ExtendScript-based, those aren't distinct capabilities.
Copy link to clipboard
Copied
Okay, great.
> There is no supported Trimming API, but you can change the sequence in/out points of trackItems, and move them
There is this extension called AutoPod which cuts a part sequence and disables/deletes it and I want to implement that feature and I am not able to get it.
Do you know anything on this?
I still cannot figure it out!
Copy link to clipboard
Copied
> Do you know anything on this?
As I've said, there is no supported API that allows this. We can't comment on implementation specifics of other partners' solutions.
Copy link to clipboard
Copied
I am using the PProPanel, and when I click on the sample test buttons they aret't working.
Copy link to clipboard
Copied
Also, I could be possible that extendscript is not working in because I face similar issue when I was trying to build a custom panel and also in another starter panel.
Copy link to clipboard
Copied
>when I click on the sample test buttons they aret't working.
That's bizarre; no other developer has reported that behavior. PProPanel has been working fine, for years. Perhaps start with a fresh copy of PProPanel?