Video Understand
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
화면 녹화 도구 없이 웹사이트/웹앱의 짧은 제품 데모·소개 영상(SNS용 1:1, 9:16, 16:9)을 만들 때 사용.
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bam-bam-2/solo-skills web-demo-video --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/web-demo-video .claude/skills/web-demo-video && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .claude/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-videoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bam-bam-2/solo-skills web-demo-video --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/web-demo-video .agents/skills/web-demo-video && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .agents/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bam-bam-2/solo-skills web-demo-video --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/web-demo-video .cursor/skills/web-demo-video && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .cursor/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bam-bam-2/solo-skills.git --path skills/web-demo-video--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bam-bam-2/solo-skills web-demo-video --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/web-demo-video .gemini/skills/web-demo-video && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .gemini/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bam-bam-2/solo-skills web-demo-videoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/web-demo-video .github/skills/web-demo-video && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .github/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bam-bam-2/solo-skills --skill web-demo-video -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bam-bam-2/solo-skills web-demo-video --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bam-bam-2/solo-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/web-demo-video .opencode/skills/web-demo-video && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "web-demo-video" agent skill from https://github.com/bam-bam-2/solo-skills/tree/main/skills/web-demo-video into .opencode/skills/web-demo-video/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "web-demo-video", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
web-demo-video화면 녹화 도구 없이 웹사이트/웹앱의 짧은 제품 데모·소개 영상(SNS용 1:1, 9:16, 16:9)을 만들 때 사용.
Web Demo Video is an agent skill from bam-bam-2/solo-skills. 화면 녹화 도구 없이 웹사이트/웹앱의 짧은 제품 데모·소개 영상(SNS용 1:1, 9:16, 16:9)을 만들 때 사용. 실제 사이트를 iframe에 띄워 진짜 마우스 이벤트로 조작하면서 프레임을 캡처하고 ffmpeg로 합성한다.
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including assets.
It sits in Media & Creative, covering Video production. It works with FFmpeg. The repository describes itself as: 1인 사업가 생산성 키트 — 직원 없이 58개를 자동화했고, 그중 바로 쓸 수 있는 AI 에이전트 스킬 38개(+실행 스크립트 19개)를 공개합니다. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0712439. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3ffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Web Demo Video loads about 1.3k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 728 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from bam-bam-2/solo-skills at commit 0712439, republished under its MIT licence (© bam-bam-2). 728 words, ~1,271 tokens.
.claude/skills/web-demo-video/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.밤밤의 웹 프로젝트(모자이크, 겟백앱, 카공메이트 등) 소개 영상을 만들 때 쓰는 절차. 목업 이미지를 이어붙이는 게 아니라 실제 사이트를 실제로 조작한 화면을 찍는 게 핵심이다.
영상은 어디 쓰느냐로 비율·길이가 갈린다. 만들기 전에 반드시 확인한다.
| 용도 | 비율 | 길이 |
|---|---|---|
| 스레드·릴스·쇼츠 | 9:16 (1080x1920) | 15~25초 |
| 블로그·유튜브 임베드·랜딩 | 16:9 (1920x1080) | 30~40초 |
| 인스타 피드·카톡 공유 | 1:1 (1080x1080) | ~20초 |
밤밤은 시각 산출물의 형식에 구체적인 기대가 있다. 레퍼런스가 있으면 먼저 달라고 한다.
cd <프로젝트> && python3 -m http.server 8899무대(stage) 페이지와 대상 사이트는 반드시 같은 오리진이어야 한다.
포트가 다르면 iframe.contentDocument 접근이 막혀서 조작이 불가능하다.
→ 무대 파일을 프로젝트 폴더 안에 임시로 두고, 작업이 끝나면 반드시 빼낸다(안 그러면 다음 배포에 딸려 올라간다).
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) — 프레임 번호 하나를 받아 그 시점의 화면 상태를 만드는 결정론적 함수__tick(frame) 안에서 t = frame / FPS로 시간을 계산하고, 모든 상태를 t로부터 다시 계산한다.
실시간 setTimeout을 쓰면 캡처 속도와 어긋나서 망가진다.
once(key, fn) 으로 중복 실행을 막는다drag(t, 시작초, 끝초, ptFn) — 시작 프레임에 mousedown, 매 프레임 mousemove, 끝나면 mouseupW.MouseEvent로 만들어 clientX/clientY(iframe 기준 좌표)로 dispatch한다.
mousedown은 대상 요소에, mousemove/mouseup은 보통 window에 붙어 있으니 확인하고 각각 맞는 타깃에 쏜다getBoundingClientRect() 또는 그려넣은 목업의 rect 비율로 계산한다. 창 크기를 바꿔도 안 깨진다iframe load 시점에 <style> 주입으로 숨긴다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);
}clip은 CSS 픽셀 단위다. devicePixelRatio를 곱하면 안 된다. dpr 2면 540 클립이 1080px 이미지로 나온다__tick(0) 후 이미지 로드가 끝날 시간을 준다ffmpeg는 PATH에 없다. export PATH="$PATH:/opt/homebrew/bin" 를 붙인다.
ffmpeg -y -framerate 20 -i frames/f%04d.png \
-vf "scale=1080:1080:flags=lanczos,fps=30" \
-c:v libx264 -profile:v high -pix_fmt yuv420p -crf 20 -movflags +faststart out.mp4-pix_fmt yuv420p는 SNS 호환 필수fps=10,scale=420:-1:flags=lanczos,palettegen=stats_mode=diff → paletteuse=dither=bayer:bayer_scale=3select='eq(n\,20)+...',scale=340:340,tile=3x3lsof -ti:8899 | xargs kill -9SNS 영상과 목적이 다르다. 블로그 독자는 **"이 도구가 뭘 하는지"**를 3초 안에 봐야 하므로, 맥 브라우저 창 목업·엔딩 카드 없이 작업 대상만 크게 보여주는 편이 낫다. 무대(stage) 페이지도 로컬 서버도 필요 없다. 배포된 사이트를 직접 조작하고 캔버스를 그대로 뜬다.
await page.evaluate(async (b64) => {
const blob = await (await fetch('data:image/png;base64,'+b64)).blob();
const dt = new DataTransfer(); dt.items.add(new File([blob],'s.png',{type:'image/png'}));
document.dispatchEvent(new ClipboardEvent('paste',{clipboardData:dt,bubbles:true}));
}, b64);adInCanvas 같은 광고 영역).const bbox = (x0,x1,y0,y1) => { /* 어두운 픽셀(r,g,b<110)의 min/max */ };page.screenshot({clip})은 스크롤/DPR 때문에
좌표가 어긋나기 쉽다. 자막·커서·선택 박스·브러시 원도 이 합성 단계에서 그려 넣는다.사진 버튼 → 파일 선택으로 올린다 (GIF도 그대로 애니메이션된다)첨부 → 사진. 업로드하면 [##_Image|...|_##] 문법이 본문에 들어가므로,
그걸 읽어서 전체 HTML을 조립한 뒤 setContent() 하면 이미지 위치를 원하는 곳에 둘 수 있다<figure> + loading="lazy" + 캡션에 "예시 데이터는 전부 가짜"를 명시© bam-bam-2, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (assets) in skills/web-demo-video of bam-bam-2/solo-skills.
Open the folder on GitHubat commit 0712439
Web Demo Video next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Web Demo Video this skillbam-bam-2/solo-skills | 367 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Video Understandcalesthio/OpenMontage | 66k | — | ~841 | Automated safety check: Pass | AGPL-3.0 | |
| HyperFrames Video Entry Pointheygen-com/hyperframes | 60k | 3 repos | ~5.2k | Automated safety check: Pass | Apache-2.0 | |
| Video Shotseternityspring/reelbench-skills | 878 | 1 repos | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| Mobile Demo Film Editorsuperset-sh/superset | 15k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Video Editcalesthio/OpenMontage | 66k | — | ~855 | Automated safety check: Notes | AGPL-3.0 |
calesthio/OpenMontage
Understand video content locally using ffmpeg frame extraction and Whisper transcription.
heygen-com/hyperframes
Entry point for making, editing and rendering videos from HTML compositions with HyperFrames, routing each request to the right workflow.
eternityspring/reelbench-skills
拉片:把一条成片拆成逐镜头的分析表——每个镜头的时长、景别、类别、运镜、画面. An agent skill from eternityspring/reelbench-skills.
superset-sh/superset
Edits real mobile screen recordings into a configurable demo video with phone framing, title cards, cutaways and an end card, using a bundled renderer.
calesthio/OpenMontage
Edit videos locally using ffmpeg. An agent skill from calesthio/OpenMontage.
lemomo-ai/lemo-opuscar
Directs a short film made entirely in code in one of the Lemo-Opuscar library's named visual styles, from fetching the library through production and delivery.
bam-bam-2/solo-skills
Use Orca's computer-use CLI to inspect and operate local desktop app windows through accessibility trees, screenshots, and safe UI actions.
bam-bam-2/solo-skills
Use Orca orchestration for structured multi-agent coordination: threaded messages, blocking ask/reply flows, task dispatch, workerdone/escalation waits, task DAGs, decision gates, coordinator loops…
bam-bam-2/solo-skills
마크다운 원고를 실제 책처럼 보이는 PDF/EPUB 전자책으로 만들 때 사용. An agent skill from bam-bam-2/solo-skills.
bam-bam-2/solo-skills
밤밤의 강연·라이브·기수 세션 녹화본(줌 클라우드·디스코드·맥 화면기록)을 자막판 영상으로 만들고 배포할 때 읽을 것.
bam-bam-2/solo-skills
밤밤의 네이버 메일(you@example.com)을 브라우저 없이 읽어야 할 때 사용. An agent skill from bam-bam-2/solo-skills.
bam-bam-2/solo-skills
Creative writing skill for creating style skills that teach Claude to write in specific styles.
Works with
Categories
화면 녹화 도구 없이 웹사이트/웹앱의 짧은 제품 데모·소개 영상(SNS용 1:1, 9:16, 16:9)을 만들 때 사용. Web Demo Video is an agent skill from bam-bam-2/solo-skills. 화면 녹화 도구 없이 웹사이트/웹앱의 짧은 제품 데모·소개 영상(SNS용 1:1, 9:16, 16:9)을 만들 때 사용.
Web Demo Video fits situations like: tasks that involve Video production.
Run `npx skills add bam-bam-2/solo-skills --skill web-demo-video -a claude-code`. Or copy the skill folder (skills/web-demo-video in bam-bam-2/solo-skills) into .claude/skills/web-demo-video in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bam-bam-2/solo-skills --skill web-demo-video -a codex`. Or copy the skill folder (skills/web-demo-video in bam-bam-2/solo-skills) into .agents/skills/web-demo-video in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bam-bam-2/solo-skills --skill web-demo-video -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/web-demo-video, .gemini/skills/web-demo-video, .github/skills/web-demo-video and .opencode/skills/web-demo-video in your project.
Going by SKILL.md and its folder, Web Demo Video needs the command-line tools its instructions call (python3 and ffmpeg). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Web Demo Video is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Web Demo Video: Video Understand (calesthio/OpenMontage, 66k stars), HyperFrames Video Entry Point (heygen-com/hyperframes, 60k stars), Video Shots (eternityspring/reelbench-skills, 878 stars) and Mobile Demo Film Editor (superset-sh/superset, 15k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bam-bam-2 (a GitHub user) maintains it in bam-bam-2/solo-skills, which has 367 GitHub stars. The repository holds 38 skills in this directory. The repository was last updated on September 14, 2026.
Source: bam-bam-2/solo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.