Skip to main content

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.

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


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.9.0.tar.gz (928.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.9.0-py3-none-any.whl (411.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_aep-0.9.0.tar.gz
  • Upload date:
  • Size: 928.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.9.0.tar.gz
Algorithm Hash digest
SHA256 45e2ee5bff776657ebfc8c59ba55639cd8e1240b8d384a95e00d3b3f84927d21
MD5 a17c4009e77009e1ce79a2c0290e750e
BLAKE2b-256 ff1ea398ee2b838b654c45c73d7988c9fb27989c6498a5eeae2da75ec3c8f3b5

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: py_aep-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 411.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.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 290ad34e393dfa2c48e3d51e821822d3f1fd71080b9d0f93e4cff60447abcadb
MD5 aef7820b99cd7df7e835367e3c8e5351
BLAKE2b-256 b6341f06c5c5753b455299726fbb5f62b8ddc2df362627f30400c8d8c0f00081

See more details on using hashes here.

Provenance

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

Supported by

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