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, 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.14.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.14.0-py3-none-any.whl (692.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_aep-0.14.0.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

Hashes for py_aep-0.14.0.tar.gz
Algorithm Hash digest
SHA256 0a812b5445db8b19897cf442e83ac3a5f580c25aa88f7cd415d42f2fd8795fb5
MD5 ece19ea1bf9d7d5148af016733e37bb3
BLAKE2b-256 ecd449861f2e6d6b21847f1d6e1acf907b9b83cc4ad581b3ead51287fcb1cba5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: py_aep-0.14.0-py3-none-any.whl
  • Upload date:
  • Size: 692.3 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.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eaa5408ad4190f5bbf2503f7c6ecade81d6e55763cf700ab13545dc515e55fc3
MD5 2b7ce49381c9411778f246d1e9b64643
BLAKE2b-256 150ea97c5e0fd0dfd299242e574c535af5c7295b5121287288b262e24441ac14

See more details on using hashes here.

Provenance

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

This release

0.14.0 This release

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