Skip to content

Quick Start

Parse a project

import py_aep

app = py_aep.parse("myproject.aep")
project = app.project

print(f"AE version: {app.version}")
print(f"Bits per channel: {project.bits_per_channel}")

Iterate over items and layers

for item in project:
    print(f"{item.name} ({type(item).__name__})")

for comp in project.compositions:
    print(f"Composition: {comp.name} ({comp.width}x{comp.height})")
    for layer in comp:
        print(f"  Layer: {layer.name}")

Access layer properties

layer = comp.layers[0]
transform = layer.property("ADBE Transform Group")  # By match name
opacity = transform.opacity  # Or using attributes
print(f"Opacity: {opacity.value}")

# Check for keyframes
if opacity.is_time_varying:
    for kf in opacity.keyframes:
        print(f"  Key at {kf.time}s: {kf.value}")

Access footage sources

for layer in comp.footage_layers:
    print(f"  File: {layer.source.file}")

Inspect the render queue

for rq_item in project.render_queue:
    print(f"Status: {rq_item.status}")
    print(f"Settings: {rq_item.settings}")
    for om in rq_item:
        print(f"  Format: {om.settings['Format']}")

Modify and save

app = py_aep.parse("myproject.aep")
project = app.project
comp = project.compositions[0]

# Change composition settings
comp.name = "Final Comp"
comp.frame_rate = 30

# Modify a layer property
layer = comp.layers[0]
opacity = layer.transform.opacity
opacity.value = 50

# Save to a new file (produces a byte-identical RIFX structure)
project.save("modified.aep")