A package for working with After Effects AEP files.
Project description
py_aep
py_aep is a Python package for working with After Effects AEP files.
About
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.
Features
Supported
- 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
Limited support
- 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
Not supported
- Expression evaluation
- Runtime things such as System information, preferences, available color spaces, UI state, etc.
Installation
uv (recommended)
uv add py-aep
pip
pip install py-aep
Getting started
import 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.
Roadmap
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.
Contributing
See the full Contributing Guide on GitHub.
Contact
Aurore Delaunay - github.15@audel.ovh
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_aep-0.10.2.tar.gz.
File metadata
- Download URL: py_aep-0.10.2.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc1fb35a06d83b51b696d202a708c6d68afd9072e6ba130c656fa43ef074b55e
|
|
| MD5 |
31c4cb6f3048d8ac39dbef1d72c084ee
|
|
| BLAKE2b-256 |
47d86b072d119b680c97806b16586974969cad6cb223c4d8fcd8a0647fc5366c
|
Provenance
The following attestation bundles were made for py_aep-0.10.2.tar.gz:
Publisher:
release.yml on forticheprod/py-aep
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_aep-0.10.2.tar.gz -
Subject digest:
fc1fb35a06d83b51b696d202a708c6d68afd9072e6ba130c656fa43ef074b55e - Sigstore transparency entry: 1957413931
- Sigstore integration time:
-
Permalink:
forticheprod/py-aep@01aad4f7a9bbac8f46a0233442b52435bbb08ed8 -
Branch / Tag:
refs/tags/v0.10.2 - Owner: https://github.com/forticheprod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@01aad4f7a9bbac8f46a0233442b52435bbb08ed8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file py_aep-0.10.2-py3-none-any.whl.
File metadata
- Download URL: py_aep-0.10.2-py3-none-any.whl
- Upload date:
- Size: 524.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51e6e69cd1613b85641485b465ec748e253bffbc78fbd3ccf4f12008562b2d26
|
|
| MD5 |
7ca15cd46bb908219d39989b88619af8
|
|
| BLAKE2b-256 |
73abf7d49f2ba5d8c9ffe5ae4e5b6e5a42c003189e2afd3f82029c3003da8db6
|
Provenance
The following attestation bundles were made for py_aep-0.10.2-py3-none-any.whl:
Publisher:
release.yml on forticheprod/py-aep
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_aep-0.10.2-py3-none-any.whl -
Subject digest:
51e6e69cd1613b85641485b465ec748e253bffbc78fbd3ccf4f12008562b2d26 - Sigstore transparency entry: 1957414131
- Sigstore integration time:
-
Permalink:
forticheprod/py-aep@01aad4f7a9bbac8f46a0233442b52435bbb08ed8 -
Branch / Tag:
refs/tags/v0.10.2 - Owner: https://github.com/forticheprod
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@01aad4f7a9bbac8f46a0233442b52435bbb08ed8 -
Trigger Event:
push
-
Statement type: