Skip the preamble if you'd like and just jump to the question....
I'm a long-time Avid editor, but have just been asked to cut my next project on Premiere Pro. I was initially resistant, fearing the effort required both to re-map muscle memory and missing features between products. For the past few days, I've been digging into PPRO and have found it's not the software I once tried briefly in 2003! In fact, it's got something amazing that Avid doesn't have: AUTOMATION. Wow! This might convert me to Premiere long-term!
I've been hacking automation in the Avid for years now, writing horribly hacky global keyhooks and mimicking keyboard and mouse movements to automate repetitive tasks that you can't keymap in Avid. It's pretty janky, and just to be able to have an API to do repetitive stuff would change my editing life. I've been using the 3d modelling software, Blender, quite a bit recently, and I just love the way you can type a bit of Python and pretty much automate anything in the interface. If I had this level of automation in an editing package, I genuinely think I could save myself hours a week, and a great deal of unnecessary mouse faffing,
Now I'm trying to write some polyfill automations for Premiere to make my migration from Avid a bit more pleasant.Using CEP and Extendscript, I've successfully implemented:
I'm planning to implement:
What I've found is that Extendscript development is cool, but definitely a bit hobbled. From a day's worth of hacking, I've found:
UXP development for Premiere Pro is nowhere near actuality. We had hoped to provide preliminary UXP 'plug-in' hosting (they're still extensions, not plug-ins) in this fall's MAX release; that has become unlikely.
CEP panels using ExtendScript remains the recommended integration path.
That won't change, until UXP.
Depends on the context. For your example, app.project.activeSequence.insertClip() actually would work, so long as there's an active sequence in an open project. Broadly, you're correct; you'd need to work through the DOM to get to a specific item to manipulate, rather than issuing contextual commands.
It's doubtful PPro will ever allow an inactive extension to capture all keypresses.
> It doesn't appear that the API is complete...
No shipping API is. 🙂 The API has grown through feature requests from partners and customers; yes, numerous functional areas are not exposed through APIs. You're right, there's no control of the timeline view. PPro scripting was initially created for automation, without a user.
If you could control timeline view/zoom, what workflows would that enable?
Thanks so much for the quick and detailed response. Very helpful indeed.
Sounds like CEP/Extendscript is the way forward for now - perhaps for some time. I can definitely live with it. I'm only just breaking the surface of what's possible and there seems a fair amount in there if you're willing to dig and hack. I've essentially written a clip mixer that allows me to gang audio tracks, set clip level in-out etc - just like the one I'm used to, but better! 🙂
Where does Adobe Premiere Pro news about updates about things like UXP get published?
I totally understand your point about the size of an API. I suppose that's why lots of the really full apis are ones where the interface is written against the (public) API itself. Have you had a play with scripting in Blender? It's a great example of a where the scripting api feels like an interface into the whole app (even if that is an apparition). The power is immense.
Essentially most of the tasks I've ever wanted to automate have been about fiddling with the internals of sequences, or creating sequences. I think that ultimately many of the things I'd like to do will be ultimately possible looking at QE. I'm going to give adding audio transitions quickly a go today.
You mention the API has grown through feedback? Is there a location for making feature requests for PPRO extensions? I see in your responses to previous posts you've given feature requests id's.
Global commands - understood. What I was thinking of was being able to invoke the commands in the same way as I imagine the keybinding service does internally. Looking at the .kys file format, it seems that there are named contexts and commands e.g. `cmd.project.previous.thumbnail.size.large` in the xml snippet below. The idea would be to chain multiple complex commands into one , though I do appreciate there is a 'context' issue (What context is the extension in?)
Timeline View Control
The reason I suggested this example was arbitrary, but I'm having a bit of pain navigating around the timeline view. I think it's just muscle memory and 20 years of looking at the Media Composer timeline and I'm sure there must be better keyboard commands for focusing the timeline view than I've found so far. If there weren't, however, I was going to write a few commands to quickly navigate the timeline view to show the following:
- Timelineview centred at current cursor at current zoom level.
- Timelineview centred at all selected items.
- Timeline view at current zoom level with cursor at 10% width from the left (i.e. so that the timeline is oriented with the bit I'm working on ahead of the cursor).
- Generally save the current timeline view state (scale of tracks etc), so I can quickly flick between different common track views. Feature doc projects I work on end up having around 24 audio tracks and I'd like to have a view to specifically enlarge specific audio tracks depending on what I'm focusing on to easily view the waveforms (might be A1-2, or A1-4, or A5-8 depending various factors like - whether it's archive or whatever).
Thanks again for the reply.
Found this in a search for UXP v CEP dev for a different idea. For which thanks for the correct answer Bruce!
Woodced, your notes about timeline views vs Avid are still very apt and should be part of the PP UI itself. Avid kind of 'auto-centres' the track displays within the pane as you (more easily & with more granularity) shrink/enlarge tracks based on track lights.
The 'save as' timeline display options seem more versatile but maybe that's just being used to them. I can't think how they are functionally different (although Avid has better display of clip metadata and waveforms I think).
I use Taran's AHK scripts to right-click scroll anywhere in timeline & I think he has one for centring on selected items (or maybe thats a PP command now).
I am very much in favour of an option where the timeline is displayed favouring the right too (simple percentage slider - 0% is playhead fully left, only timeline later in time displayed, 50% centred playhead, 100% - playhead is fully right, only timeline that has passed is displayed.