{"id":15008835,"url":"https://github.com/qmasingarbe/pymiere","last_synced_at":"2025-05-15T05:07:41.700Z","repository":{"id":40601833,"uuid":"227722271","full_name":"qmasingarbe/pymiere","owner":"qmasingarbe","description":"Python for Premiere pro","archived":false,"fork":false,"pushed_at":"2025-03-05T20:20:19.000Z","size":870,"stargazers_count":415,"open_issues_count":19,"forks_count":55,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-11T15:57:07.239Z","etag":null,"topics":["adobe-premiere","extendscript-objects","premiere","premiere-pro","python","python2","python3","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qmasingarbe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-13T00:31:36.000Z","updated_at":"2025-04-10T00:48:13.000Z","dependencies_parsed_at":"2022-07-29T06:08:18.836Z","dependency_job_id":"4dd46d87-00fe-4917-a698-30a65b2f7d86","html_url":"https://github.com/qmasingarbe/pymiere","commit_stats":{"total_commits":302,"total_committers":6,"mean_commits":"50.333333333333336","dds":0.09933774834437081,"last_synced_commit":"5a096d3d442bc8bd12868561c1a6b07a5845673a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmasingarbe%2Fpymiere","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmasingarbe%2Fpymiere/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmasingarbe%2Fpymiere/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmasingarbe%2Fpymiere/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qmasingarbe","download_url":"https://codeload.github.com/qmasingarbe/pymiere/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276447,"owners_count":22043867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe-premiere","extendscript-objects","premiere","premiere-pro","python","python2","python3","wrapper"],"created_at":"2024-09-24T19:20:51.900Z","updated_at":"2025-05-15T05:07:36.691Z","avatar_url":"https://github.com/qmasingarbe.png","language":"Python","funding_links":[],"categories":["Game-Design-Tool","Libraries"],"sub_categories":["CG Software API"],"readme":"# ![Pymiere](https://raw.githubusercontent.com/qmasingarbe/pymiere/master/logo.png) ```Pymiere``` : Python for Premiere Pro\n\u003e Use Python to interact with _Adobe Premiere Pro_, gather data, check, edit and automate your projects.\n\n\u003e [!WARNING]\n\u003e Pymiere is not maintained anymore.  \n\u003e It should still work fine but some newer part of the Premiere pro api may not be wrapped.\n\n## Why use ```Pymiere```?\nIf you just want to create a Premiere file programmatically, you can  generate and use an XML file (see [Open Timeline IO to XML](https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html#final-cut-pro-xml)). **But** that involves manually exporting and importing files, potentially losing data and with no visual feedback.\n\n**```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.\n\n- Want to check if some shots have new versions available?\n- Maybe automatically place them on a new track?\n- Want to create interactive tools for your editor using Qt, Shotgun API, custom libs...?\n\nNo problem!\n\n### Versions\n  * Support Python 2 \u0026 3\n  * Tested with **Adobe Premiere Pro version 23.1 (2023)**, **version 15.1 (2021)**, **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.\n  * Tested on Windows 10 \u0026 macOS Catalina\n\n\n## Installation\n\n  1. Install [Python](https://www.python.org/downloads) if you haven't already.\n\n  2. Install `Pymiere` via pip:\n\n    python -m pip install pymiere\n\n  3. Install the `Pymiere Link` extension for `Premiere Pro`:\n      * Via the automatic `extension_installer` script\n        - Download the installer script [for windows](https://raw.githubusercontent.com/qmasingarbe/pymiere/master/extension_installer_win.bat) or [for mac](https://raw.githubusercontent.com/qmasingarbe/pymiere/master/extension_installer_mac.sh)\n        - Navigate to the download folder in Command line/Power shell (Windows) or terminal (Mac)\n        - Run the script by typing `extension_installer_win.bat` (Windows) or `./extension_installer_mac.sh` (Mac)\n        - Check the script output to see if it properly worked \n      * Alternatively via Adobe's Extension Manager\n        - Download [Extension Manager Command Line tool](https://partners.adobe.com/exchangeprogram/creativecloud/support/exman-com-line-tool.html) (note that the User Interface is deprecated, but we just need to use the command line interface).\n        - Unzip the folder somewhere\n        - Download `pymiere_link.zxp` [here](https://github.com/qmasingarbe/pymiere/blob/master/pymiere_link.zxp)\n        - Navigate to the folder in Command line/Power shell (Windows) or terminal (Mac)\n        - Type (Windows) `.\\ExManCmd.exe /install D:\\path_to_extension\\pymiere_link.zxp`\n        - Type (Mac) `./ExManCmd --install /path_to_extension/pymiere_link.zxp`\n      * Alternatively via [ZXP installer](https://aescripts.com/learn/zxp-installer/) or [Anastasiy Extension Manager](http://install.anastasiy.com)\n      * **To check that the extension is correctly installed**, start Premiere, under `Window \u003e Extensions` you should see `Pymiere Link` (clicking on it will do nothing)\n\n\n  4. Try running some basic code:\n```python\nimport pymiere\nprint(pymiere.objects.app.isDocumentOpen())\n```\n\n## Quick start\nOpen or create a _Premiere Pro_ project containing a Sequence with at least one video Clip. You can then run or step through [demo.py](https://github.com/qmasingarbe/pymiere/blob/master/demo.py) which demonstrates some basic code. [pymiere/wrappers.py](https://github.com/qmasingarbe/pymiere/blob/master/pymiere/wrappers.py) contains more code examples.\n\nBasically 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()``` :\n\n    project = pymiere.objects.app.project\n\nFor more snippets and examples see [pymiere documentation](https://github.com/qmasingarbe/pymiere/blob/master/example_and_documentation.md).\n\n## Useful links\n* [Official doc for Premiere Pro objects](http://ppro.aenhancers.com/)\n* [Unofficial doc for Premiere Pro objects](http://www.brysonmichael.com/premiereapi/objects)\n* [Advanced Premiere Pro Extendscript usage](https://github.com/Adobe-CEP/Samples/blob/master/PProPanel/jsx/PPRO/Premiere.jsx)\n\n## How ```Pymiere``` Works\n```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```.\n\nIn outline, this is how ```Pymiere``` interacts with _Premiere Pro_:\n1. ```Pymiere``` converts a Python command (getting a property, executing a function etc.) to _ExtendScript_ code.\n2. ```Pymiere``` sends the ExtendScript code to the `Pymiere Link` extension via the _requests_ library using HTTP (*)\n3. The `Pymiere Link` extension is essentially a _node.js_ server which receives the _ExtendScript_ code and executes it within Premiere Pro.\n4. Where required, `Pymiere Link` will return data as a _JSON_ encoded response back to ```Pymiere```.\n5. ```Pymiere``` will then decode the JSON response for further processing in Python.\n\n(*) **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.\n\nSo `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.\n\nAlternatively, 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.\n\n```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](https://www.linkedin.com/pulse/python-control-adobe-applications-quentin-masingarbe/).\n\n## Future improvements\n - [ ] 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...)\n - [ ] add support for Premiere _events_\n - [ ] add a way to simply customize a panel to call python functions\n\n ## Thanks\n I'd like to thank everybody that contributed to ```Pymiere``` by reporting bugs, imrpoving the documentation, sending ideas etc. but especially:\n - Isaac brown (https://github.com/ikebenbrown)\n - Roy Nieterau (https://github.com/BigRoy)\n - Peter Fison (https://github.com/Pfython)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmasingarbe%2Fpymiere","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqmasingarbe%2Fpymiere","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmasingarbe%2Fpymiere/lists"}