py_aep is a Python package for working with After Effects AEP files.
After Effects files (.aep) are mostly binary files, encoded in RIFX format. This package uses struct to parse .aep files and return an Application object containing a project, items, layers, effects and properties. The API is very close to the ExtendScript API, with a few nice additions like iterators.
- Reading .aep files
- Modifying most properties, including some that are not accessible through ExtendScript such as gradients, render settings, output module settings, etc. (Differences from ExtendScript for more details)
- Adding and removing keyframes on any property - including mask paths, source text, markers, orientation and gradients - with static/animated transitions matching After Effects' own output
- Adding new compositions and folders, moving items between folders
- Creating layers: solids, nulls, shapes, cameras, lights, text (point, box and vertical text)
- Removing items and layers; moving and duplicating layers
- Importing footage files and image sequences, setting proxies
- Render queue management: adding compositions, removing and duplicating items, adding output modules, applying render/output templates from the AE preferences
- Saving to a new .aep file
- Interpolation between numeric keyframe values
- Essential graphics: controllers and override UUIDs are exposed but automatic resolution between them is not implemented
- Properties that are synthesized by After Effects at runtime and not stored in the binary are supported but some might be missing or inaccurate
- Some Text layers attributes are missing
- Expression evaluation
- Runtime things such as System information, preferences, available color spaces, UI state, etc.
uv add py-aeppip install py-aepimport py_aep
app = py_aep.parse("myproject.aep")
project = app.project
comp = project.compositions[0]
# Modify composition settings
comp.frame_rate = 24
# Modify a layer property
comp.layers[0].transform.opacity.value = 50
# Save to a new file
project.save("modified.aep")For more examples, see the Quick Start guide.
See the open issues for a list of proposed features and known issues.
If you encounter a bug, please submit an issue and attach a basic scene to reproduce your issue.
See the full Contributing Guide on GitHub.
Aurore Delaunay - [email protected]