AE Scraper - NeuralIO444/Mograph_Jailed_OSX_CLI GitHub Wiki
AE Scraper
The scraper reads your open After Effects project and writes a single JSON receipt. It cannot modify your project β this is proven by an automated guard, not just promised.
Run it
- Open your project in After Effects.
- File β Scripts β Run Script Fileβ¦
- Navigate to
integrations/after-effects/MographJailed_ProjectScraper.jsxin your MographJailed checkout and open it. - Pick the folder where the receipt should be saved.
- Done. You'll get a file like
MyProject.20260929T150000Z.scrape.json.
No installation, no restart, no preferences changed. Your project is exactly as it was β the scraper has no code path that saves, closes, or edits anything.
What's in the receipt
- Project name, path, After Effects version, scrape timestamp
- Every comp (up to 200): name, size, frame rate, duration
- Every layer (up to 500 per comp): name, type
- Expressions on animated properties (capped at 2,000 characters each)
- Effects applied per layer
- Fonts used
- Footage items (up to 2,000): name, path, missing/unlinked flags
- Truncation flags if any bound was hit, so you know the receipt is partial
The full field list is in docs/MJ_PROJECT_SCRAPE_1.md in the repo.
Bounds (so it can't run away)
| Bound | Value |
|---|---|
| Comps | 200 |
| Layers per comp | 500 |
| Footage items | 2,000 |
| Expression length | 2,000 chars |
| Total receipt | ~5 MB |
Everything is traversed in deterministic order, so two scrapes of an unchanged project produce identical receipts.
The read-only proof
scripts/check-scraper-readonly.sh in the repo statically scans the scraper for every After Effects DOM mutation pattern β save, remove, add, replace, setValue, addKey, duplicate, project close, undo groups, app.executeCommand, and more. If any appear, the build fails. Run it yourself:
bash scripts/check-scraper-readonly.sh
# β SCRAPER_READONLY_OK
What to do with the receipt
Feed it to the CLI:
mj project.ingest path=/path/to/MyProject.20260929T150000Z.scrape.json
mj expression.lint path=/path/to/MyProject.20260929T150000Z.scrape.json
Or point the Dashboard at your receipts folder and watch it light up. Details: Tier 0 Observer.