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
  • 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), 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
  • 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

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.11.0.tar.gz (927.5 kB 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.11.0-py3-none-any.whl (571.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_aep-0.11.0.tar.gz
  • Upload date:
  • Size: 927.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for py_aep-0.11.0.tar.gz
Algorithm Hash digest
SHA256 1ae747d9df668bdb3f3bd663d7bd889c531b964d75a938ef893ee28aba6cc507
MD5 9280c0851fd328f2e1bcca675e5eba08
BLAKE2b-256 97b704b9c71a7bce481b9b09a8485597eec2cbef4ec4e5c5924c208f47cb44b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_aep-0.11.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.11.0-py3-none-any.whl.

File metadata

  • Download URL: py_aep-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 571.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for py_aep-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c324cdaf5b7d771be0d96b139bbfb59c6ea066446ab490c19556ceaf9d26c824
MD5 cf381508e5bb0fcf90f07c44923e1bdb
BLAKE2b-256 af5d4367661022ffd3baf0d3f630d697686dc642334de67f65d57f502e5fc817

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_aep-0.11.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

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

This release

0.11.0 This release

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