Pymiere
: Python for Premiere ProUse Python to interact with Adobe Premiere Pro, gather data, check, edit and automate your projects.
Pymiere
?If you just want to create a Premiere file programmatically, you can generate and use an XML file (see Open Timeline IO to XML). But that involves manually exporting and importing files, potentially losing data and with no visual feedback.
Pymiere
was created to enable video editors and 3D/VFX studios to automate some of their workflows using Python rather than Adobe's custom scripting language ExtendScript.
No problem!
Install Python if you haven't already.
Install Pymiere
via pip:
python -m pip install pymiere
Install the Pymiere Link
extension for Premiere Pro
:
extension_installer
script
extension_installer_win.bat
(Windows) or ./extension_installer_mac.sh
(Mac)pymiere_link.zxp
here
.\ExManCmd.exe /install D:\path_to_extension\pymiere_link.zxp
./ExManCmd --install /path_to_extension/pymiere_link.zxp
Window > Extensions
you should see Pymiere Link
(clicking on it will do nothing)Try running some basic code:
import pymiere
print(pymiere.objects.app.isDocumentOpen())
Open or create a Premiere Pro project containing a Sequence with at least one video Clip. You can then run or step through demo.py which demonstrates some basic code. pymiere/wrappers.py contains more code examples.
Basically you start by creating a project
object to interact with the opened Premiere Pro application (it needs to be running), after which you can get/set its attributes and call its methods like .name
or .save()
:
project = pymiere.objects.app.project
For more snippets and examples see pymiere documentation.
For any support, questions or interest please contact me: [email protected]
Pymiere
WorksPymiere
is basically a wrapper for ExtendScript (an Adobe flavour of JavaScript used for most of its Creative Cloud software). Most of the help documentation for ExtendScript therefore applies directly to Pymiere
.
In outline, this is how Pymiere
interacts with Premiere Pro:
Pymiere
converts a Python command (getting a property, executing a function etc.) to ExtendScript code.Pymiere
sends the ExtendScript code to the Pymiere Link
extension via the requests library using HTTP (*)Pymiere Link
extension is essentially a node.js server which receives the ExtendScript code and executes it within Premiere Pro.Pymiere Link
will return data as a JSON encoded response back to Pymiere
.Pymiere
will then decode the JSON response for further processing in Python.(*) NB: You must have Premiere Pro running for Pymiere
to work - it's can't run "headlessly". If your script needs to know if Premiere Pro is running, or start it, some functions are included in pymiere/exe_utils.py
for that.
So pymiere.objects
are the entry point to access all Premiere Pro objects and functions and can learn more the old school way by browsing the docstrings.
Alternatively, you'll be pleased to know Pymiere
supports code completion and type hinting so it should be easy learn more about these objects dynamically as you code using most modern IDEs.
Pymiere
includes a mirror of all Premiere Pro ExtendScript objects in Python which were autogenerated from the Extendscript objects interface. If you'd like more detail about how I did this, please read my detailed article here.
I'd like to thank everybody that contributed to Pymiere
by reporting bugs, imrpoving the documentation, sending ideas etc. but especially: