Creating Hybrid Adobe Extensions for AE and PPro plug-ins

The Adobe Extension manager uses a .zxp package to distribute digital products. This tutorial describes how a C++ plugin can be packaged into a .zxp file. The example uses the FFRender Free plugin that I created and listed on Adobe Exchange.

Create a Certificate

Download ZXPSignCmd from the Adobe Extension Signing Toolkit. Alternatively you can use ucf.jar command line tool for CS6 compatibility.

ZXPSignCmd -selfSignedCert <countryCode> <stateOrProvince> <organization> <commonName> <password> <outputPath.p12>
.\ZXPSignCmd.exe -selfSignedCert IN MH Prosya "Anmol Mishra" password prosyaDB.p12

If you get a timestamp error – see this github issue.

Create a basic .zxp package

Add the ZXPSignCmd and the generated certificate in the same folder. Create a folder with the name of your plugin and place the plugin inside.

ZXPSignCmd -sign <inputDirectory> <outputZxp> <p12> <p12Password> -tsa <timestampURL>
.\ZXPSignCmd.exe -sign FFRenderFree FFRenderFree.zxp prosyaDB.p12 password -tsa http://timestamp.digicert.com/

The user will need to extract the plugin file and manually install in the plug-ins directory. The .zxp is just like a zip file.

Copy the plug-in either to the mediacore directory - 

C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore 

or to the AE plug-ins directory - 

C:\Program Files\Adobe\Adobe After Effects\Support Files\Plug-ins\Effects

This package method is not accepted by Adobe as a part of the Adobe Exchange Developer program. Adobe requires mxi file.

Create .zxp package with mxi XML

Create a MXI directory with certain elements as described by Adobe. The elements are :-

  1. the prosyaDB.p12
  2. ZXPSignCmd (CC) or ucf.jar (CS6)
  3. a new MXI folder.
  4. Inside the MXI there’s:
    • a Win64 folder with the mediacore 64-bit plug-in,
    • a 24x24px icon.png (Extension Manager icon),
    • a MXI file, which is xml-formatted.
MXI Directory contents
Top Level Directory contents

There is no option for Adobe After Effects, however Premiere mediacore plugins are visible in both AE and PPro. Check the general MXI elements page and this github issue for Premiere-related fields.

Premiere Pro CS55
Premiere Pro CS5.55.5
Premiere Pro CS66
Premiere Pro CC7
Premiere Pro CC 20148
Table of version codes for PPro

This is the xml field for Premiere Pro, minimum version CS6, no max version.

<product name="Premiere" primary="true" version="6.0" />
<?xml version="1.0" encoding="UTF-8"?>
<macromedia-extension
  id="com.prosya.ffrenderfree"
  icon="P24x24.png"
  name="FFRender Free"
  requires-restart="true"
  version="1.0.0">

  <author name="Anmol Mishra"/>

  <description href="https://www.prosya.com/software/ffrender-free-effect/">
    <![CDATA[Description of Effect goes here.]]>
  </description>

   <ui-access>
    <![CDATA[Where to find it goes here.]]>
  </ui-access>

  <license-agreement>
    <![CDATA[EULA goes here.]]>
  </license-agreement>

  <products>
    <product name="After Effects" version="7.0" platform="win" />
  </products>

<files>

<!-- WIN plugin, 64bit -->
<file source="Win/"
      destination="$mediacoreplug-ins/ProSya FFRender Free"
      file-type="plugin"
      products="After Effects"
      platform="win"/>

<!-- Extension Manager icon -->
<file source="P24x24.png"
      destination="$ExtensionSpecificEMStore" />

</files>

</macromedia-extension>

The .zxp package also has options for automatic installation using tools like ZXP Installer. In case of installation issues, take a look at their FAQ.

Alternatively, you can use ExManCmd from Adobe. ExManCmd 7.11 only supports Windows 10 and later.

Another alternative is Anastasiy’s Extension Manager to install and remove plugins.

$mediacoreplug-ins/Library/Application Support/Adobe/Common/Plug-ins/7.0/ MediaCoreC:\Program
Files\Adobe\Common\ Plugins\
7.0\MediaCore
Default install directory

For CC compatibility,

.\ZXPSignCmd -sign MXI com.prosya.ffrenderfree.zxp prosyaDB.p12 password -tsa http://timestamp.digicert.com/

For CS6 compatibility,

java -jar ucf.jar -package -storetype PKCS12 -keystore ./prosyaDB.p12 -tsa http://timestamp.digicert.com/ com.prosya.ffrenderfree.zxp -C "./MXI/" .

Enter the password when prompted.

Anmol

Software Engineer, Dancer and Filmmaker. Currently rebooting his life.

Leave a Reply