web-demo-video

web-demo-video is a skill for Claude Code from bam-bam-2/solo-skills. It costs 77 tokens per session (2,582 once invoked), scanned A, original, MIT.

A process for making product-demo videos from a real website or web app by displaying it in an embedded browser page, controlling it with real mouse events, capturing the frames, and combining them with ffmpeg.

In plain words
What is it for?
Use it to produce square, vertical, or widescreen demo videos for social posts, blogs, YouTube embeds, landing pages, and shared product introductions.
Why use it?
It creates demonstrations of actual site interactions rather than a sequence of static mockup images.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the solo-skills plugin — 26 skills shipped together

Good fit Use it to produce square, vertical, or widescreen demo videos for social posts, blogs, YouTube embeds, landing pages, and shared product introductions.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/bam-bam-2/solo-skills/web-demo-video
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add bam-bam-2/solo-skills --skill web-demo-video
Clone the repo
git clone --depth 1 https://github.com/bam-bam-2/solo-skills

Made for: Claude Code.

Or install solo-skills, the plugin that ships this one along with the rest of its 26 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for web-demo-video

README.md
[![agentmods](https://agentmods.dev/badge/skills/bam-bam-2/solo-skills/web-demo-video/github.svg)](https://agentmods.dev/skills/bam-bam-2/solo-skills/web-demo-video)
Your own site
<a href="https://agentmods.dev/skills/bam-bam-2/solo-skills/web-demo-video"><img src="https://agentmods.dev/badge/skills/bam-bam-2/solo-skills/web-demo-video/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for web-demo-video

Your own site · 80×15
<a href="https://agentmods.dev/skills/bam-bam-2/solo-skills/web-demo-video"><img src="https://agentmods.dev/badge/skills/bam-bam-2/solo-skills/web-demo-video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 77 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,582 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00077 $0.02582
Opus 5 $0.00039 $0.01291
Sonnet 5 $0.00015 $0.00516
Haiku 4.5 $0.00008 $0.00258

Measured 13d ago against content hash afb3279fee80, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

web-demo-video scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/web-demo-video/SKILL.md · 147 lines

How it starts

The opening of the file, as written. The whole thing — 147 lines — stays where its author put it; the contents beside it link to each section on GitHub.

웹 데모 영상 만들기

사용자의 웹 프로젝트(모자이크, 커뮤니티앱, 카공메이트 등) 소개 영상을 만들 때 쓰는 절차. 목업 이미지를 이어붙이는 게 아니라 실제 사이트를 실제로 조작한 화면을 찍는 게 핵심이다.

먼저 물어볼 것

영상은 어디 쓰느냐로 비율·길이가 갈린다. 만들기 전에 반드시 확인한다.

용도 비율 길이
스레드·릴스·쇼츠 9:16 (1080x1920) 15~25초
블로그·유튜브 임베드·랜딩 16:9 (1920x1080) 30~40초
인스타 피드·카톡 공유 1:1 (1080x1080) ~20초

사용자는 시각 산출물의 형식에 구체적인 기대가 있다. 레퍼런스가 있으면 먼저 달라고 한다.

절차

1. 로컬 서버로 대상 사이트를 띄운다

cd <프로젝트> && python3 -m http.server 8899

무대(stage) 페이지와 대상 사이트는 반드시 같은 오리진이어야 한다. 포트가 다르면 iframe.contentDocument 접근이 막혀서 조작이 불가능하다. → 무대 파일을 프로젝트 폴더 안에 임시로 두고, 작업이 끝나면 반드시 빼낸다(안 그러면 다음 배포에 딸려 올라간다).

2. 무대 페이지를 만든다

assets/stage-template.html를 복사해서 고친다. 구조:

  • #stage — 출력 비율 그대로의 고정 크기 div (1:1이면 540x540, dpr 2로 캡처하면 1080x1080)
  • #cap / #foot — 큰 자막(상단) / 보조 문구(하단)
  • #win — 맥 브라우저 창 목업(신호등 3개 + URL) 안에 <iframe>transform: scale()로 축소해 넣음
  • #cursor — 가짜 마우스 커서 SVG. 이게 있어야 조작 영상처럼 보인다
  • #ring — 클릭·브러시 크기를 보여주는 하이라이트 원
  • #end — 엔딩 카드(제품명 / 한줄 설명 / 셀링포인트 3개 / URL)
  • window.__tick(frameIndex) — 프레임 번호 하나를 받아 그 시점의 화면 상태를 만드는 결정론적 함수

3. 타임라인을 결정론적으로 짠다

__tick(frame) 안에서 t = frame / FPS로 시간을 계산하고, 모든 상태를 t로부터 다시 계산한다. 실시간 setTimeout을 쓰면 캡처 속도와 어긋나서 망가진다.

  • 1회성 동작(이미지 로드, 모드 전환)은 once(key, fn) 으로 중복 실행을 막는다
  • 드래그는 drag(t, 시작초, 끝초, ptFn) — 시작 프레임에 mousedown, 매 프레임 mousemove, 끝나면 mouseup
  • 이벤트는 iframe의 W.MouseEvent로 만들어 clientX/clientY(iframe 기준 좌표)로 dispatch한다. mousedown은 대상 요소에, mousemove/mouseup은 보통 window에 붙어 있으니 확인하고 각각 맞는 타깃에 쏜다
  • 좌표는 하드코딩하지 말고 요소의 getBoundingClientRect() 또는 그려넣은 목업의 rect 비율로 계산한다. 창 크기를 바꿔도 안 깨진다
  • iframe 안에서 영상에 불필요한 요소(헤더, SEO 본문, 푸터, 광고 배너, 상태줄)는 iframe load 시점에 <style> 주입으로 숨긴다

4. 프레임을 캡처한다

for (let i = from; i <= to; i++) {
  await page.evaluate(f => __tick(f), i);
  const buf = await page.screenshot({ clip: { x:0, y:0, width:540, height:540 } });
  await fs.writeFile(`${DIR}/f${String(i).padStart(4,'0')}.png`, buf);
}

Read the full file on GitHub · 147 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago First seen · 147 lines · 77 tokens per session scan A afb3279fee80

Subscribe to this mod's changes

web-demo-video is a skill published in the GitHub repository bam-bam-2/solo-skills (363 stars, last pushed 9d ago), licensed MIT. It adds 77 tokens to every session and 2,582 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.