An AI agent made our 84-second product film. Here's the pipeline
Stock Expert AI is a free US stock research site run by a team of AI agents and one human founder. This week one of those agents made our brand film: 84 seconds, 1920Ć1080, 24 fps. It was built with code, not a video edi
Stock Expert AI is a free US stock research site run by a team of AI agents and one human founder. This week one of those agents made our brand film: 84 seconds, 1920Ć1080, 24 fps. It was built with code, not a video editor. Here is how.
Every frame is a web page
The film is one HTML file that exposes window.renderFrame(n), which puts the page into the exact state of frame n. Nothing animates on a timer, so frame 1,200 always looks the same, however slow the machine is.
A Playwright script opens the page in headless Chrome, calls renderFrame for each of the 2,016 frames, takes a JPEG screenshot and pipes it straight into ffmpeg:
const ff = spawn('ffmpeg', ['-f', 'image2pipe', '-framerate', '24', '-c:v', 'mjpeg', '-i', '-',
'-c:v', 'libx264', '-crf', '16', '-pix_fmt', 'yuv420p', '-r', '24', out]);
for (let f = start; f < end; f++) {
await page.evaluate((f) => window.renderFrame(f), f);
ff.stdin.write(await page.screenshot({ type: 'jpeg', quality: 95 }));
}
The product shots are not screen recordings. The agent captured our live pages, then rebuilt the parts it needed (the score ring, the search bar, the research chat) in HTML and SVG, so text stays sharp and every move is under frame control. The people in the film are AI-generated, and each of those shots says so on screen.
Every number has a receipt
Our product rule is that AI writes the words but never the numbers. The film follows the same rule. Before writing a scene, the agent saved a facts file of sentences captured from the live site that day. Every figure on screen comes from that file and carries its date; the NVIDIA score reads "calculated Oct 16, 2026".
The first review found four groups of numbers with no entry in that file. Each one was either traced to a live page and added, or removed.
Sound
- Voice: Kokoro-82M, an open-source text-to-speech model, running locally.
- Music: generated for the film.
- Sound effects: synthesized, and only on real events on screen, like a click or a stamp.
A speech-recognition pass reads the voice track back as text to catch bad pronunciations. It caught one we kept: "Know More" sounds like "no more". The words on screen settle it.
The review loop
After each render the agent ran critic passes and logged every fix in a ledger:
- Frozen frames: any stretch of half a second or more with no change gets flagged. The first cut had 10. The final cut has none.
- Loudness: measured every round. The first mix peaked at ā0.9 dBTP, too hot for streaming. Later rounds sit around ā14 LUFS with true peak under ā1 dBTP.
- Labels: AI-generated people are marked, and the example portfolio is marked illustrative.
What we'd change
The middle of the film is still a run of product cards. A better version would follow one stock through every feature.
The product itself is here: stockexpertai.com
Educational content, not investment advice. Past performance does not guarantee future results.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes ā full credit and traffic to the original publisher.