The brief
A car sales consultant posts every unit on the lot to Instagram, Facebook and TikTok. Each car needs to look sharp, show the real price and features, and end with a way to reach him. Doing that by hand in a video editor takes hours per car, and the lot turns over every week.
Version 1: a one-off script
The first reel (the 2021 Nissan Rogue above) was built with plain Python and ffmpeg:
- Text cards. A script draws transparent 1080×1920 cards (hook, price, features, call to action) with Pillow, in the dealer’s brand red.
- Music. A royalty-free 140 BPM beat, either synthesized in code or generated with an AI music API.
- Motion. For each photo, ffmpeg runs a Ken Burns pan and zoom with a small “punch” on every beat, then overlays the card with a quick fade and slide.
- Assembly. Segments are joined and the music is muxed in, ready to post.
It worked, but every car meant editing code.
Version 2: a reusable reel pipeline
When he moved to Capital Mitsubishi, I turned the process into a reusable Claude Code skill. Now each new car only needs its photo zip, its listing link and a music track.
- Triage photos. A script unzips the dealer’s photo export, drops placeholders and duplicates, crops off the dealer’s own banner strip, and renumbers the rest.
- Check the photo shape. Landscape and portrait phone photos get different layouts, so nothing important gets cropped.
- Pull the facts. Price, mileage and features come from the live listing, never invented. The brand color is sampled from the dealer’s website.
- Map the beat. A beat-grid script measures the track’s tempo and trims the intro so bar 1 lands on the first hit. Tracks whose tempo drifts get every beat measured individually.
- Write the scene plan. Claude writes a short JSON plan: 6 to 8 scenes, which photos go where, the headline lines, a count-up price, and the transition for each cut. Every reel gets its own palette, fonts and track so the feed doesn’t look repetitive.
- Generate and check. The plan becomes an animated HTML composition (HyperFrames + GSAP), which is linted for layout overlaps and text contrast, then snapshotted into a contact sheet like the one below for a visual check.
- Render and verify. The reel renders to a 1080×1920 MP4, and a final script checks that every scene cut lands within 40 ms of a kick drum.
Result: 50 reels shipped so far, sometimes two in a night.
Inventory posters
The same idea for still posts: one HTML template in a black “showroom” style with the car cut out of its background, a reflection, the St. John’s skyline, and the bi-weekly payment worked out automatically from the price.
Where AI fits
Claude writes the scene plans and copy and runs the pipeline. A couple of tracks used AI-generated music. The visuals in the reels are the dealer’s real photos, animated by code. The landscape clips above are separate experiments made with AI video generation (Higgsfield).


