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 new compositions and folders
- Removing items and layers
- Moving and duplicating layers
- 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
- Output Module settings: switching to another format (e.g. mov -> OpenEXR) is planned but 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
- Many Text layers attributes are missing
- Adding or removing keyframes, output modules, render queue items, etc.
- Many methods are not implemented yet
- Expression evaluation
- Runtime things such as System information, preferences, available color spaces, render templates, 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 - github.15@audel.ovh