Steps
- Install peepshow
npm install -g peepshow - Run on the WebP
peepshow ./loop.webp - Hand frames to your LLM
peepshow ./loop.webp --emit json > run.json
Why it works
WebP is everywhere now — most static images from modern sites are served as WebP, and animated WebPs increasingly replace GIFs. LLM vision APIs accept static WebP but flatten animated WebP. peepshow detects the format and treats it as a motion source.
When it helps
- Scraped web assets where animations are served as WebP.
- Modern product screenshots / explainers exported as animated WebP.
- Asset pipelines that have already migrated GIF → animated WebP.
Pitfalls
- Static WebPs extract one frame — same as opening the WebP directly.
- Very small animated WebPs (32×32) may need `--resize 256` for the model to read detail.