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.
Top comments (0)