All Projects → qmasingarbe → Pymiere

qmasingarbe / Pymiere

Licence: gpl-3.0
Python for Premiere pro

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects
python2
120 projects

Labels

Projects that are alternatives of or similar to Pymiere

Apipeline
Feature-rich and pluggable offline-first API wrapper for all your javascript environements ! Easily wire-up your API and make your app work offline in minutes.
Stars: ✭ 92 (-16.36%)
Mutual labels:  wrapper
Zebra database
A compact, lightweight and feature-rich PHP MySQLi database wrapper
Stars: ✭ 98 (-10.91%)
Mutual labels:  wrapper
Faker Cli
cli wrapper for fakerjs
Stars: ✭ 104 (-5.45%)
Mutual labels:  wrapper
Spotify Web Api Js
A client-side JS wrapper for the Spotify Web API
Stars: ✭ 1,313 (+1093.64%)
Mutual labels:  wrapper
Pokepy
A Python wrapper for PokéAPI
Stars: ✭ 94 (-14.55%)
Mutual labels:  wrapper
Binancedotnet
Official C# Wrapper for the Binance exchange API, with REST and WebSocket endpoints
Stars: ✭ 102 (-7.27%)
Mutual labels:  wrapper
Croaring Rs
Rust wrapper for CRoaring
Stars: ✭ 89 (-19.09%)
Mutual labels:  wrapper
Edafa
Test Time Augmentation (TTA) wrapper for computer vision tasks: segmentation, classification, super-resolution, ... etc.
Stars: ✭ 107 (-2.73%)
Mutual labels:  wrapper
Binance.api.csharp.client
C#.NET client for Binance Exchange API.
Stars: ✭ 98 (-10.91%)
Mutual labels:  wrapper
Clam
Quickly turn command-line applications into RESTful webservices with a web-application front-end. You provide a specification of your command line application, its input, output and parameters, and CLAM wraps around your application to form a fully fledged RESTful webservice.
Stars: ✭ 103 (-6.36%)
Mutual labels:  wrapper
Discord.jl
The Julia Discord API Wrapper
Stars: ✭ 93 (-15.45%)
Mutual labels:  wrapper
Expressvpn Python
ExpressVPN - Python Wrapper (public IP auto fetch).
Stars: ✭ 94 (-14.55%)
Mutual labels:  wrapper
Pynlp
A pythonic wrapper for Stanford CoreNLP.
Stars: ✭ 103 (-6.36%)
Mutual labels:  wrapper
Winapi Wrapper
Windows API wrapper class for simulating mouse movement, clicking, and more.
Stars: ✭ 92 (-16.36%)
Mutual labels:  wrapper
Quickjspp
QuickJS C++ wrapper
Stars: ✭ 105 (-4.55%)
Mutual labels:  wrapper
Nimue4
Nim language integration for Unreal Engine 4
Stars: ✭ 90 (-18.18%)
Mutual labels:  wrapper
Pokebase
Python 3 wrapper for Pokéapi v2
Stars: ✭ 99 (-10%)
Mutual labels:  wrapper
Sdl2 nim
Wrapper of the SDL 2 library for the Nim language.
Stars: ✭ 108 (-1.82%)
Mutual labels:  wrapper
Zubr
Wrapper library to fix inconsistencies in PHP's core functions
Stars: ✭ 105 (-4.55%)
Mutual labels:  wrapper
Coinbasepro Python
The unofficial Python client for the Coinbase Pro API
Stars: ✭ 1,386 (+1160%)
Mutual labels:  wrapper

Pymiere Pymiere : Python for Premiere Pro

Use Python to interact with Adobe Premiere Pro, gather data, check, edit and automate your projects.

Why use 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.

  • Want to check if some shots have new versions available?
  • Maybe automatically place them on a new track?
  • Want to create interactive tools for your editor using Qt, Shotgun API, custom libs...?

No problem!

Versions

  • Support Python 2 & 3
  • Tested with Adobe Premiere Pro version 14.5 (2020), version 13.0 (2019) and version 11.0 (2017). I highly recommend version 2019+ because some functionality isn't available in the previous versions. It should work for version 2017+ though.
  • Tested on Windows 10 & macOS Catalina

Installation

  1. Install Python if you haven't already.

  2. Install Pymiere via pip:

python -m pip install pymiere
  1. Install the Pymiere Link extension for Premiere Pro:

    • Via the automatic extension_installer script
      • Download the installer script for windows or for mac
      • Navigate to the download folder in Command line/Power shell (Windows) or terminal (Mac)
      • Run the script by typing extension_installer_win.bat (Windows) or ./extension_installer_mac.sh (Mac)
      • Check the script output to see if it properly worked
    • Alternatively via Adobe's Extension Manager
      • Download Extension Manager Command Line tool (note that the User Interface is deprecated, but we just need to use the command line interface).
      • Unzip the folder somewhere
      • Download pymiere_link.zxp here
      • Navigate to the folder in Command line/Power shell (Windows) or terminal (Mac)
      • Type (Windows) .\ExManCmd.exe /install D:\path_to_extension\pymiere_link.zxp
      • Type (Mac) ./ExManCmd --install /path_to_extension/pymiere_link.zxp
    • Alternatively via ZXP installer or Anastasiy Extension Manager
    • To check that the extension is correctly installed, start Premiere, under Window > Extensions you should see Pymiere Link (clicking on it will do nothing)
  2. Try running some basic code:

import pymiere
print(pymiere.objects.app.isDocumentOpen())

Quick start

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.

Useful links

Contact

For any support, questions or interest please contact me: [email protected]

How Pymiere Works

Pymiere 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:

  1. Pymiere converts a Python command (getting a property, executing a function etc.) to ExtendScript code.
  2. Pymiere sends the ExtendScript code to the Pymiere Link extension via the requests library using HTTP (*)
  3. The Pymiere Link extension is essentially a node.js server which receives the ExtendScript code and executes it within Premiere Pro.
  4. Where required, Pymiere Link will return data as a JSON encoded response back to Pymiere.
  5. 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.

Future improvements

  • [ ] separate the generic part handling communication between python and ExtendScript from the specific code for Premiere Pro, enabling its use in other applications (Photoshop, Encoder...)
  • [ ] add more examples & more wrappers functions
  • [ ] add support for Premiere events
  • [ ] add more documentation, docstrings...
  • [ ] build one Python mirror of ExtendScript objects by Premiere version, as each version adds new objects/functions/properties
  • [ ] add a way to simply customize a panel to call python functions

Thanks

I'd like to thank everybody that contributed to Pymiere by reporting bugs, imrpoving the documentation, sending ideas etc. but especially:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].