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.12.0.tar.gz (981.2 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.12.0-py3-none-any.whl (600.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_aep-0.12.0.tar.gz
  • Upload date:
  • Size: 981.2 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.12.0.tar.gz
Algorithm Hash digest
SHA256 a3a7198608a6d8b2b445d7cf26d86c3ef856d1f2736490c5b47756fa7b4f7c19
MD5 94a2eaec44be586c059f141308cc1f23
BLAKE2b-256 a1e02a522b0db64b845646ef2d76cd7bf889a52a8b7442f8cfc639b5af9eb78e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: py_aep-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 600.9 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.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b7fb40a7880e35c30618773169a75f30cfdb30cc8ef4235923a20b48ddf212a
MD5 4963092790c380556cf925838342d11f
BLAKE2b-256 7d11c500ab40dae010af59985ec71573d6a432b00c8000a7ae38a0366b241297

See more details on using hashes here.

Provenance

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

This release

0.12.0 This release

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