web-demo-video

Generates product demo videos by capturing scripted browser interactions and compositing frames with ffmpeg.

366|90|Updated Aug 22, 2026
One-click install
npx skills add https://github.com/bam-bam-2/solo-skills --skill web-demo-video-bam-bam-2
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: web-demo-video
Source: https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video
Command: npx skills add https://github.com/bam-bam-2/solo-skills --skill web-demo-video-bam-bam-2

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes assets (resource) components.

What problem does it solve? Creating short product demo videos for SNS usually requires screen recording tools and manual editing. This Skill produces deterministic demo videos by loading a real website in an iframe, driving it with scripted mouse events, capturing each frame, and compositing the result with ffmpeg. ## Core Features & Use Cases - Deterministic frame scripting: A __tick(frame) function computes every visual state from the frame index, so captures never drift out of sync with the timeline. - Real site manipulation: The actual website runs inside a same-origin iframe and receives genuine MouseEvent dispatches, with a fake cursor and highlight ring making it look like a real user recording. - Multi-format output: Supports 9:16, 16:9, and 1:1 aspect ratios, MP4 via ffmpeg, plus GIF and contact-sheet generation for blog embeds. - Use Case: You launched a web tool and need a 20-second vertical video for Threads showing the tool being used. The Skill builds a stage page from the provided HTML template, scripts the drag-and-click timeline, captures frames, and outputs a ready-to-post MP4. ## Quick Start Ask the agent to create a short demo video of your website using the web-demo-video skill, specifying the target platform and aspect ratio.

Frequently Asked Questions about web-demo-video

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make a product demo video without screen recording software?

Load the real website in an iframe on a stage page, drive it with scripted MouseEvent dispatches on a deterministic frame timeline, capture each frame with page screenshots, and composite the frames into MP4 with ffmpeg. A fake cursor SVG makes it look like a genuine recording.

How to capture website interactions as video frames with a headless browser?

Define a __tick(frameIndex) function that reconstructs the full visual state from the frame number, then loop through frames calling page.evaluate and page.screenshot with a clip region. The clip uses CSS pixels, so do not multiply by devicePixelRatio.

Why does iframe manipulation fail when capturing a website demo?

The stage page and target site must share the same origin, or iframe.contentDocument access is blocked. Serve both from one local server such as python3 -m http.server, and place the stage file inside the project folder temporarily.

What ffmpeg settings are required for SNS-compatible MP4 videos?

Use libx264 with -pix_fmt yuv420p, which is mandatory for SNS compatibility, plus -movflags +faststart for streaming. A typical command scales frames with lanczos, sets fps=30, and uses crf 20 for quality.

Can I make an animated GIF for a blog post instead of a video?

Yes, use the ffmpeg two-pass palettegen and paletteuse filters for high-quality GIFs. For blog body embeds, a width of 620-640px at 12fps around 70KB is sufficient, and you can skip the browser mockup and ending card.

What are the limitations of scripted iframe demo capture?

Capture speed is about 0.09 seconds per frame, so long videos must be split into batches of 100-150 frames to avoid REPL timeouts. Real-time setTimeout animations break determinism, and cross-origin sites cannot be manipulated at all.