Dan McSweeney
Adobe Employee
Dan McSweeney
Adobe Employee
Activity
Mar 25, 2025
08:30 AM
Hi Nirmal, I don’t have a clear understanding of what you’re trying to do. Can you state it again for us - from a user’s perspective? For example: I want to make a new sequence from media (clips) which are already in a sequence, from in to out points that I set, and which has multiple audio tracks.
Your effort may be getting confused if one of the sequences is multicam. If you make a subsequence from multicam, it will only use the active camera - and there is no support in extendscript for this.
-Dan
... View more
Mar 19, 2025
10:12 AM
Hi Nirmal,
Have a look at the sample code here: https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L2367
I ran a test where I set in to out points on a clip (ahem, trackItem) with multiple audio tracks. The result did have both audio tracks. Maybe double check that track targeting is on for all audio tracks?
Thanks for posting your question on forums, and developing for Premiere Pro.
-Dan
... View more
Jan 09, 2025
11:54 AM
Also, if anyone is still listening; Adobe Premiere Pro scripting is moving from CEP to UXP See documentation here: https://developer.adobe.com/premiere-pro/uxp/
and samples here: https://github.com/AdobeDocs/uxp-premiere-pro-samples
... View more
Jan 07, 2025
10:45 AM
1 Upvote
Hi, Imkindofabigdeal,
What are you passing for the parameter, presetPath? All of the other paraemeters appear to be defined
(I keep a file named "test.epr" on my desktop within easy reach, just for such occasions.)
Also, life hack: you could set breakpoints in your code, before calling that function, so you can check which param(s) might be invalid.
I hope this helps,
Dan
Also, thanks Kevin and Justin for weighing in, you guys are great.
... View more
Dec 16, 2024
09:47 AM
1 Upvote
Hi NICK3DCODE,
You might find trackItem.move() useful.
https://ppro-scripting.docsforadobe.dev/item/trackitem.html?highlight=trackitem+move#trackitem-move
It's in the sample panel here:
https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L2918
... View more
Sep 18, 2024
09:54 AM
Hi BrownFish,
It woudl be helpful to us to know what verison you're suing when you experience this. And also, a description of what you're doing; scrubbing, adding effects, playing back, etc.
Thanks,
DMc
... View more
Sep 18, 2024
09:38 AM
Hi BrownFish,
In version 24.3, so about a year ago, we changed Autosave to run in the background - it was a popular user feature request. Here's a link that discusses it,
https://helpx.adobe.com/premiere-pro/using/whats-new/2023-4.html
and I'll save you the trouble of going there with this blurb.
Background Auto Save
The new, improved Auto Save runs in the background without interrupting your work— backups can be saved in increments as short as one minute.
Auto Save creates each backup of your project as a snapshot in time. Browse the Auto Save scratch disk folder to retrieve a specific backup. Background Auto Save will also update the original project file each time you save a backup copy.
The default location for auto-save is the same folder as the project file, but you can set a different location in Project Settings > Scratch Disks.
Happy autosaving,
-DMc
... View more
Sep 18, 2024
09:25 AM
Hi AXN Studio,
Could you post the exact version you're using when you see this? something like: Version 25.1.0 BETA (build 15)
MacOS Adobe Premiere Pro > About
Win Help > About
Thanks,
DMc
... View more
May 17, 2024
08:39 AM
Hi Birdofparadise,
You've come to the right place.
Inside the Audio Channel Mapping Object, is a setMappingForChannel() method documented here:
https://ppro-scripting.docsforadobe.dev/other/audiochannelmapping.html#
and there is a sample for you to steal look at here:
https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L2340
I hope this helps. Let us know if you have more questions, and thanks for developing for Premiere Pro.
-Dan
... View more
May 10, 2024
02:55 PM
Hi Matias,
Glad that you found createSequenceFromPreset. For anyone else following along, a sample of that is here:
https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L639
...and its simpler cousin, createSequence:
https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L633
If you want to play around with your original idea, I think that the exception error you're getting is because you don't have the parentheses following the function - see "getSettings();" below. I did the simple trick of getting current settings, changing one parameter, (videoFrameHeight), and then setting the settings, which now include the new parameter, and it worked fine.
Thanks for developing for Premiere Pro, sorry it took so long to respond.
-Dan
var seq = app.project.activeSequence;
if (seq) {
var currentSeqSettings = seq.getSettings();
currentSeqSettings.videoFrameHeight = 1080;
app.project.activeSequence.setSettings(currentSeqSettings);
}
... View more
Apr 25, 2024
03:58 PM
Hi SuwekongHilaw,
"the currently open bin" is not reflected in the API - and I don't think you need it.
In the sample panel on github, you'll find
var viewIDs = app.getProjectViewIDs();
at https://github.com/Adobe-CEP/Samples/blob/9efca02ea88ad32a8c22571f5ffe2407ae732cd8/PProPanel/jsx/PPRO/Premiere.jsx#L1954
this view gives you the project
Then you can use getInsertionBin()
Create containing bin within insertion bin
app.project.rootItem.createBin(containing bin) then importFiles(), specifying new containing bin as destination
I hope that's helpful. Play with it a bit, then post back with other questions.
-Dan
... View more
Mar 20, 2024
01:09 PM
1 Upvote
You probably want to have a look at TrackItem.projectItem at https://ppro-scripting.docsforadobe.dev/item/trackitem.html#trackitem-projectitem
Which gets you the ProjectItem object from which the media is being drawn.
... View more
Jan 09, 2024
09:15 AM
1 Upvote
Hi Kevin Chop Chop,
If you're hoping to develop a panel yourself, we recommend looking through the Premiere Pro Sample panel. It exercizes all of the methods available, and it has a readme on how to set yourself up for development.
https://github.com/Adobe-CEP/Samples/tree/master/PProPanel
Also, we published a simple panel to the Creative Cloud plugin directory, it merely sorts your assets into bins based on media type, you may find it useful as an example. The Sortinator
And though we can't make endorsements, and we love all our development partners equally, Mathias Moehl is a clever guy, and Automation Blocks is cool.
Good luck, and reach out with with questions.
-Dan
... View more
Jan 05, 2024
03:24 PM
HiCarl Colijn,
And happy new year back at you. Your resolution is a fine one, and I created a bug DVAPR-4249416 to address this.
I am a sucker for clear repro steps, like yours. I'm assuming you see this behavior on the currently shipping version, but if you want to add more info on that, we'll add it to the bug. And to be clear, you see this MacOS and Win?
-Dan
... View more
Dec 08, 2023
03:00 PM
Hello, and thanks for the question.
It looks like what you want to try is app.project.importFiles() to import a valid FCP XML file. And, if it contains sequences, it will do what you describe in your post. We have an example of it running in a panel here:
https://github.com/Adobe-CEP/Samples/blob/e60d6a22ef44d8eb4cca3904c35a0c050576b697/PProPanel/jsx/PPRO/Premiere.jsx#L444
Another XML reference you might want to be aware of is; openFCPXML() which opens an .xml file as a new PPro project.
https://ppro-scripting.docsforadobe.dev/application/application.html?highlight=xml#app-openfcpxml
Hope this helps.
-Dan
... View more
Nov 21, 2023
02:25 PM
1 Upvote
Without scripting, there is no way to achieve a full automation of this - but you can get close.
You can select each clip individually, make it a nested sequence, and then select all of the nested sequences and export them all at once to AME. As a time saving tip, you can set a keyboard shortcut to make a nested sequence. The process is shown in this video.
https://www.youtube.com/watch?v=dAljQaz6NTc&t=94s
... View more
Nov 21, 2023
10:37 AM
Hi there,
Yes, there is a published API that will allow you to automate most features in Premiere Pro.
We have a sample panel which demonstrates what is possible. Note: you'll need some JavaScript skill.
Here is the repo:
https://github.com/Adobe-CEP/Samples/tree/master/PProPanel
I think what you might be looking for is:
https://github.com/Adobe-CEP/Samples/blob/e60d6a22ef44d8eb4cca3904c35a0c050576b697/PProPanel/jsx/PPRO/Premiere.jsx#L1660
Premiere.jsx
insertOrAppend : function () {
Here's another hint: how to iterate across sequences in a project:https://github.com/Adobe-CEP/Samples/blob/e60d6a22ef44d8eb4cca3904c35a0c050576b697/PProPanel/jsx/PPRO/Premiere.jsx#L2215
Premiere.jsx
closeAllSequences : function () {
... View more
Nov 21, 2023
10:36 AM
1 Upvote
Hi there,
Yes, there is a published API that will allow you to automate most features in Premiere Pro.
We have a sample panel which demonstrates what is possible. Note: you'll need some JavaScript skill.
Here is the repo:
https://github.com/Adobe-CEP/Samples/tree/master/PProPanel
I think what you might be looking for is:
https://github.com/Adobe-CEP/Samples/blob/e60d6a22ef44d8eb4cca3904c35a0c050576b697/PProPanel/jsx/PPRO/Premiere.jsx#L1660
Premiere.jsx
insertOrAppend : function () {
Here's another hint: how to iterate across sequences in a project:https://github.com/Adobe-CEP/Samples/blob/e60d6a22ef44d8eb4cca3904c35a0c050576b697/PProPanel/jsx/PPRO/Premiere.jsx#L2215
Premiere.jsx
closeAllSequences : function () {
... View more
Nov 17, 2023
03:31 PM
2 Upvotes
Hello,
Most of your questions can be answered by reading about the PPro API at this link: https://ppro-scripting.docsforadobe.dev/
And by downloading a PrPro sample panel at this link. Once loaded, the Premiere Pro sample panel has working buttons that perform many of the actions you ask about. : https://github.com/Adobe-CEP/Samples/tree/master/PProPanel
1. Yes, you can import an SRT file, but not do too much else with it. Full caption access will come with UXP functionality sometime next year.
2. I'm not sure what your distinction is: Panels rely on extendscript to interact with motion graphics templates. Panels can import mogrts - see sample panel - importMoGRT
3. Yes. see sample panel - importFiles : function
4. No, you cant add a transition, but you can adjust the parmeters of one if it's already there, see the sample panel under onPlayWithKeyframes.
5. see 4
6. I'm not quite sure what you're asking, perhaps you're asking about importing Mogrts.
7. No APi for adding transparent video.
8. See the API link above.
Let us know if we can help.
... View more
Nov 13, 2023
11:01 AM
In addition to Ivan's Stepanov helpful answer;
Sorry, we don't keep a list. There are messages at the CEP (JavaScript) level, and there are messages at the PPro API (ExtendScript) level
Consider a search through the PProPanel code for usage of onActiveSequenceChanged .
... View more
Jul 18, 2023
04:13 PM
Hi Garik31158953ulds, It sounds like you want might be trying to create a Premiere Pro project file, (.prproj), without using Premiere Pro - which is not advised. With that warning out of the way, PrPro does have an API which will probably allow you to do what you need. For example, automate creation of a new .prproj, and import video. Here’s that link: https://ppro-scripting.docsforadobe.dev/ Also, hint: https://ppro-scripting.docsforadobe.dev/application/application.html?highlight=app.newProject#app-newproject
... View more
Jun 12, 2023
01:58 PM
1 Upvote
Hi everyone, I came across a repro of this today. I found that I got the error message if the AE comp had not been saved. So that's a simple workaround - save your Ae project before trying to drag to PPro. I acknowledge that the error pop-up is not useful, and I wrote a bug on that, we'll track it as DVAPR-4245685, and I'll link this discussion thread to it.
... View more
May 24, 2023
06:11 PM
2 Upvotes
Official-[ish] word on this, (and while you may see Bruce drop in on this forum, he is on sabbatical until mid-June) : We are working to build the infrastructure that lets us move forward on UXP with confidence. We will share that progress with developers as soon as there is something we can reasonably share. We're not actively adding any new features to the current (CEP) API.
... View more
May 12, 2023
12:08 PM
1 Upvote
As a part of upkeep and modernization Adobe is planning to update the CUDA toolkit used by our applications to version 11.3. The update is currently planned for the October release of Premiere Pro and After Effects.
We want to coordinate our update and rollout with our plugin developers to ensure we are able to minimize disruption for the community and users.
We highly recommend that SDK developers using CUDA in their implementations prepare to switch over to CUDA Toolkit 11.3 to align with our CUDA update.
To further make the transition easier, we will be rolling out the changes via our Public Beta releases and will send out additional communication regarding this.
Please reach out to us if you have any questions or concerns.
... View more
May 04, 2023
07:52 AM
Hello,
There are no live rendering APIs in Premiere Pro.
... View more
May 03, 2023
02:48 PM
Hello,
You can get GUIDs from the PPro API; all sequence objects have a 'sequenceID' member.
An effect, by itself is not a sequence item. A color matte becomes a object once you put it in the project, so that would work.
var activeSeq = app.project.activeSequence;
if (activeSeq){
var guid = activeSequence.sequenceID;
}
... View more
May 02, 2023
02:11 PM
1 Upvote
Hi Elisey,
We're glad you found this forum. I think I can point you at the correct resources to get started.
PPro supports CEP (Common Extensibility Platform) panels, which are basically web pages with two super powers:
1. They can access the local file system, and
2. They can drive PPro's ExtendScript API.
Overview:
General CEP page: https://github.com/Adobe-CEP
A Fancy CEP sample panel that shows off everything possible:
https://github.com/Adobe-CEP/CEP-Resources/tree/master/CEP_11.x/Samples/CEP_HTML_Test_Extension-10.0
I think, Elisey, that this is going to be the most useful place for you to begin; the PProPanel, while unrepentantly ugly, shows everything in PPro's ExtendScript API:
https://github.com/Adobe-CEP/Samples/tree/master/PProPanel
Follow the steps in the PProPanel ReadMe, to set up your dev environment.
Here are a few PPro specific things that I think are specific to what you wan to do:
PPro supports the manipulation of clip markers (associated with a specific piece of media) and sequence markers.
Here's PProPanel playing with clip markers:
https://github.com/Adobe-CEP/Samples/blob/5490c33ac8355ba394c693deb10414553b0a5685/PProPanel/jsx/PPRO/Premiere.jsx#L953
Here's PProPanel playing with sequence markers:
https://github.com/Adobe-CEP/Samples/blob/5490c33ac8355ba394c693deb10414553b0a5685/PProPanel/jsx/PPRO/Premiere.jsx#L301
You can get/set markers to your heart's content, based on whatever you like. Among the first questions you're likely to have:
+ PPro assigns each marker a GUID, so you can tell whether your panel is encountering a 'known' marker, that the user has moved to a different time.
+ No, there's no way to add an extra field to PPro's markers. If you'd like to inject unique identifiers of your own into markers, the best approach available today is putting a GUID into the marker comments.
Here is the publlished API for Premiere Pro:
https://ppro-scripting.docsforadobe.dev/
Panel distribution:
You can distribute your panel, free or paid, through the Adobe Exchange store. This will make your extension available to every Creative Cloud user.
Open your Creative Cloud App and go to Stock and Marketplace > Plugins > All Plugins > Premiere Pro
For users who operate disconnected from Creative Cloud (which definitely happens), you can make a signed compressed .zxp file for distribution, and use ZXPInstaller.com or Anastasiy's Extension Manager to install them.
The info above should get you started. I propose that you set up a dev system, play with the sample panels (particularly PProPanel), and reach out for help as needed.
-Dan
... View more
Sep 01, 2022
11:03 AM
Hi,
Dan here, I work for Bruce. I put the .acsrf file in the ControlSurface dir, it loads in 14.9.9 [b10], 22.5 [b65] and 23.0.0 Beta [b43] (that's the most current, publicly available Beta) By “loads,” I mean that I can go to preferences and select it, and “EUCON ARTIST” shows up as an item in the Device Class list.
Can you give me step by step intructions to reproduce the issue you're seeing?
Also, I don't have any Eucon hardware connected - if that's required to reproduce what you're seeing, I can collect something from our lab. Thanks for developing fro Premiere Pro.
-Dan
... View more
Aug 04, 2022
02:37 PM
1 Upvote
Hi all you SDK’ers,
Today a question came across our desk here at CEP World Headquarters, and I thought that the answer might be worth posting here.
The original question was along the lines of; "I’m trying to get the current work area, and to set a specific work area." Keep in mind that this is not edit, "In" and "Out" points, but rather what is shown in the Work Area Bar above the timeline (click the hamburger menu beside the Sequence Name)
This value is needed by the API to send a render job to Adobe Media Encoder - so we know that the original user is up to something clever, and we are here for that kind of thing.
@Bruce Bullis and I made an example today of changing the work area in a sequence. Here is a screen recording with annotations, https://shared-assets.adobe.com/link/409e388d-b3cc-4392-7721-0288ba5d71a9 — and the code snippet we used is below. There is also a section on modifyWorkArea in the PPro Sample Panel on github
We hope some of you find it useful. Thanks for developing for Premiere Pro.
-Dan
var seq = app.project.activeSequence;
if (seq) {
var currStateString = "undefined";
var currState = seq.isWorkAreaEnabled();
if (currState) {
currStateString = "ON";
} else {
currStateString = "OFF";
seq.setWorkAreaEnabled(true);
}
var oldIn = seq.getWorkAreaInPointAsTime();
var oldOut = seq.getWorkAreaOutPointAsTime();
var newIn = oldIn;
var newOut = oldOut;
var duration = oldOut.seconds - oldIn.seconds;
newIn.seconds = oldIn.seconds + 2;
newOut.seconds = oldOut.seconds - 2;
seq.setWorkAreaInPoint(newIn.seconds);
seq.setWorkAreaOutPoint(newOut.seconds);
var doubleCheckIn = seq.getWorkAreaInPointAsTime();
var doubleCheckOut = seq.getWorkAreaOutPointAsTime();
}
... View more
Jul 12, 2022
01:40 PM
1 Upvote
You're all heart, Neil.
... View more