Skip to main content

py_aep

py_aep is a Python package for working with After Effects AEP files.

Explore the docs »

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
  • Creating a new empty project from scratch (py_aep.new), replicating File > New > New Project
  • Saving to a new .aep file
  • Modifying most properties, including some that are not accessible through ExtendScript such as gradients, render settings, 3D renderer options, 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), and parametric 3D mesh layers (cube, sphere, plane, torus, cone, cylinder)
  • Removing items and layers; moving and duplicating layers; replacing a layer's source item
  • Importing footage files and image sequences, setting proxies, and selecting a single layer from layered .psd/.psb/.ai/.pdf files
  • Replacing a footage item's source, including rebinding to a specific layer of a layered file
  • Variable font axes on text layers, and editing dropdown menu items (property parameters)
  • Render queue management: adding compositions, removing and duplicating items, adding output modules, applying render/output templates from the AE preferences
  • Essential Graphics, Essential Properties and alternate sources
  • Preferences parsing for Render Queue Item / Output Module templates, New Composition / Project presets, ...
  • Interpolation between numeric keyframe values
  • Color Management: working and display space, footage interpretation and output module

Limited support

  • Properties that are synthesized by After Effects at runtime and not stored in the binary are supported but some might be missing or inaccurate
  • When adding effect properties to a layer or PropertyGroup, only effects that are already present in a .aep can be added
  • Some Text layers attributes are missing

Not supported

  • Expression evaluation
  • Image sampling and rendering
  • Layers, properties and keyframes selection
  • Runtime things such as System information, 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_aep-0.15.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_aep-0.15.0-py3-none-any.whl (700.7 kB view details)

Uploaded Python 3

File details

Details for the file py_aep-0.15.0.tar.gz.

File metadata

  • Download URL: py_aep-0.15.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for py_aep-0.15.0.tar.gz
Algorithm Hash digest
SHA256 35fe4bb9fc66af959c768a2f24ea1751e16a510506d5d3d5858be5adc0091d16
MD5 aa0a7b6c79c13af1ab1530a6f228837d
BLAKE2b-256 4cbd1f458af60ae3794ff356d9a011ee707e342782976362287c57dbf5abf852

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_aep-0.15.0.tar.gz:

Publisher: release.yml on forticheprod/py-aep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_aep-0.15.0-py3-none-any.whl.

File metadata

  • Download URL: py_aep-0.15.0-py3-none-any.whl
  • Upload date:
  • Size: 700.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for py_aep-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f28cd11b5b3b30cdbaa7bb8b989d408060d9a6bda397b345a513a69f5770945
MD5 a832b04cbf332f49526f191c1c015abb
BLAKE2b-256 1f6047990cb023085205e0a6f68071542c594bd923a68fc7d036aff72fcb1a2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_aep-0.15.0-py3-none-any.whl:

Publisher: release.yml on forticheprod/py-aep

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.15.0 This release

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page