A unified video automation platform for Adobe After Effects
Project description
After Effects Automation
A unified video automation platform for Adobe After Effects. Define compositions in JSON, drive them from Python or the command line, and render at scale.
PyPI Package: pypi.org/project/after-effects-automation
Why This Tool?
Most After Effects scripting workflows involve running individual scripts from a menu, managing files by hand, and manually triggering renders. After Effects Automation takes a different approach: you describe what you want in a JSON configuration, and the platform handles everything else — launching AE, building compositions, updating properties, and rendering the final video — in a single automated pipeline.
The entire workflow is configuration-driven. A JSON config file defines your project structure, timeline, scenes, and custom actions. Python reads that config and orchestrates every step through a JavaScript bridge into After Effects. No manual AE interaction required.
You get three ways to work: a Python API for full programmatic control, a CLI for running configs and managing projects from the terminal, and a built-in Web Editor for visually editing configurations without touching JSON directly.
Under the hood, the platform provides intelligent process management — automatic AE launching, window readiness detection, crash dialog handling, and responsiveness verification — so your automation runs reliably from start to finish without babysitting.
Table of Contents
- Quick Start
- Capabilities
- Documentation
- Examples
- How It Works
- Compatibility
- CLI & Web Editor
- Troubleshooting
Quick Start
# 1. Install from PyPI
pip install after-effects-automation
# 2. Setup After Effects integration
python install_ae_runner.py
# 3. Run an example
cd examples/basic_composition
python run.py
That's it! A 10-second video will be created automatically.
PyPI: pypi.org/project/after-effects-automation Need more help? See the Quick Start Guide
Capabilities
Python API
Full programmatic control over the automation pipeline:
from ae_automation import Client
client = Client()
client.startBot("config.json")
- Build AE templates programmatically
- Update text layers with dynamic content
- Assemble complex timelines from template compositions
- Access all After Effects features via ExtendScript
- Render final video output
CLI
Run automation, launch the editor, and diagnose issues from the terminal:
# Run automation from a config file
ae-automation run config.json
# Launch the visual config editor
ae-automation editor config.json
# Test your setup
ae-automation test --verbose
# Run diagnostics
ae-automation diagnose
Web Editor
A built-in browser-based interface for editing JSON configurations visually — no manual JSON editing required:
ae-automation editor config.json
Documentation
| Guide | Description |
|---|---|
| Installation | Full setup: Python package, CLI, AE bridge, and environment configuration |
| Quick Start | End-to-end walkthrough from install to rendered video |
| Examples | Complete automation pipeline examples with config and output |
| CLI Guide | Command-line interface reference for all ae-automation subcommands |
| Troubleshooting | Common issues, diagnostics, and platform-specific fixes |
| Process Management | How the platform manages the After Effects process lifecycle |
Examples
Basic Composition
Create a video with intro and outro in ~2 minutes:
cd examples/basic_composition
python run.py
Text Animation
Multi-layer text with dynamic content:
cd examples/text_animation
python run.py
Render Only
Quickly render existing .aep files:
cd examples/render_only
python render.py
More Examples: See examples/README.md
[!TIP] Starring this repo helps more developers discover after-effects-automation
Also check out my other project RepoGif – the tool I used to generate the GIF above!
Compatibility
| Software | Versions |
|---|---|
| After Effects | 2024, 2025, 2026 (CC versions should work) |
| Python | 3.7+ |
| OS | Windows, macOS, Linux (experimental) |
How It Works
Your Python code (or a JSON config) describes the desired video. The platform translates that into ExtendScript commands, sends them to After Effects through a file-based command queue, and renders the final output — all without manual intervention.
graph LR
A[Python Script] -->|JSON Commands| B(JS Bridge)
B -->|ExtendScript| C{After Effects}
C -->|Builds| D[Composition]
D -->|aerender| E[Final Video]
- Python defines what you want to create
- JavaScript bridge sends commands to After Effects via a file-based queue
- After Effects builds the composition
- aerender renders the final video
Technical Details: See Process Management Guide
CLI Tools
Automation
Run automation from a config file using the command line:
ae-automation config.json
Web Editor (Visual Interface)
Prefer a GUI? Launch the visual editor to modify your configs without touching JSON.
ae-editor config.json
Troubleshooting
Common Issues
After Effects won't start?
- Check
.envhas correct AE path - Verify AE version matches path (2024 vs 2025)
Scripts not executing?
- Enable scripting:
Edit > Preferences > Scripting & Expressions - Install startup script:
python install_ae_runner.py
Empty/black video?
- Update to latest version:
pip install --upgrade after-effects-automation - This was a bug in the batch system (now fixed)
More Solutions: See Troubleshooting Guide
Contributing
Contributions welcome! Here's how:
- Report bugs - GitHub Issues
- Share examples - Add to
examples/folder - Improve docs - All
.mdfiles in repo - Submit PRs - Bug fixes and features
License
This project is licensed under the MIT License. See the LICENSE file for full details.
Adobe After Effects is a trademark of Adobe Inc. This project is not affiliated with, endorsed by, or sponsored by Adobe Inc.
Disclaimer
This project is an automation and middleware tool for Adobe After Effects. It requires a valid Adobe Creative Cloud license to use.
The tool works by translating Python commands into Adobe-supported ExtendScript (JavaScript) instructions that After Effects already supports natively.
- It does not modify, crack, patch, or bypass Adobe software
- It does not distribute Adobe assets or binaries
- It does not enable use of After Effects without a license
We do not support or condone software piracy in any form.
By using this project, you confirm that you have obtained Adobe After Effects through official channels at https://www.adobe.com/products/aftereffects.html.
Get Help
- PyPI Package - pypi.org/project/after-effects-automation
- Documentation - Guides in the repository root (see Documentation table above)
- Examples - Working code in
examples/folder - Issues - GitHub Issues
- Discussions - GitHub Discussions
Made with care by the After Effects Automation community
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file after_effects_automation-0.1.6.tar.gz.
File metadata
- Download URL: after_effects_automation-0.1.6.tar.gz
- Upload date:
- Size: 170.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
991736ef6a9feafe20767cf7df49e8c9c366ff33c1c40b5fa47c54df72509dbc
|
|
| MD5 |
4fd247de13d10320be25f5179a16f5b4
|
|
| BLAKE2b-256 |
d2d44dbe2e65f503a3625cb6817e19074acde8bd190ab55da993ec5d42dcaed7
|
File details
Details for the file after_effects_automation-0.1.6-py3-none-any.whl.
File metadata
- Download URL: after_effects_automation-0.1.6-py3-none-any.whl
- Upload date:
- Size: 184.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69a838ed6664cc1bf5d84f706df65f279f7279a3a5a0ad1aa40064b2ada0c349
|
|
| MD5 |
556f1a70c49c0f4065ba68aba1c99fa8
|
|
| BLAKE2b-256 |
e196461778ca4a91ee8b9e2172e743658b136a8b3cc1dbbe22ba34f2669fea67
|