web-demo-video

Automatically generate website demo/presentation videos. Records website interactions with Playwright, then composites intro/outro/captions/transitions with Remotion to produce a polished MP4 video. Use when asked to: create a website demo video, product walkthrough, feature showcase, service introduction video, UI tutorial, or web-based presentation recording. Triggers: "make a demo video", "record website walkthrough", "create product video", "웹사이트 데모 영상", "서비스 소개 영상", "제품 시연 영상", "기능 워크스루 영상"

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "web-demo-video" with this command: npx skills add nerddaddy/web-demo-video_skills/nerddaddy-web-demo-video-skills-web-demo-video

Web Demo Video Skill

Playwright 녹화 + Remotion 합성으로 웹사이트 시연/소개 영상을 자동 생성하는 스킬.

When to use

  • 사용자가 웹사이트/웹앱의 시연(demo) 영상을 요청할 때
  • 제품/서비스 소개 영상을 만들 때
  • 기능 워크스루(walkthrough) 영상을 만들 때
  • 웹 기반 UI의 튜토리얼 영상을 만들 때

Overview

이 스킬은 3단계 파이프라인으로 동작한다:

1. 시나리오 생성 → 2. Playwright 녹화 → 3. Remotion 합성 → MP4 출력

Phase 1: 시나리오 생성

사용자의 요청을 분석하여 JSON 시나리오를 생성한다. 시나리오 스키마는 ./rules/scenario-schema.md 참고.

시나리오에는 다음이 포함된다:

  • scenes: 각 장면의 URL, 액션(클릭/입력/스크롤), 대기 시간
  • captions: 각 장면에 대응하는 자막/설명 텍스트
  • branding: 인트로/아웃트로 타이틀, 로고, 색상 등

Phase 2: Playwright 녹화

시나리오 기반으로 Playwright가 웹사이트를 조작하며 녹화한다. 상세 가이드는 ./rules/playwright-recording.md 참고.

핵심 사항:

  • browser.newContext({ recordVideo: { dir, size } })로 녹화 활성화
  • 각 scene별로 별도 context를 생성하여 개별 클립으로 녹화
  • 액션 간 적절한 딜레이(500ms~1500ms)를 삽입하여 시청자가 따라올 수 있도록 함
  • 녹화 완료 후 반드시 context.close() 호출하여 영상 파일 저장
  • 출력: WebM → bunx remotion ffmpeg로 MP4 변환

Phase 3: Remotion 합성

녹화된 클립들과 자막/인트로/아웃트로를 Remotion으로 합성한다.

핵심 사항:

  • <Video> 컴포넌트로 녹화 영상 삽입 (@remotion/media)
  • <TransitionSeries>로 장면 간 전환 효과 (@remotion/transitions)
  • <Sequence>로 인트로 → 클립들 → 아웃트로 시퀀싱
  • 자막은 <AbsoluteFill> 오버레이로 각 장면 위에 표시
  • calculateMetadata로 녹화 영상 길이에 맞춰 동적 duration 설정

Rule Files

상세 규칙은 개별 rule 파일 참고:

Remotion 기본 규칙

아래 규칙을 반드시 따를 것 (remotion-best-practices 기반):

  • 애니메이션: useCurrentFrame() 훅 기반. CSS 애니메이션/Tailwind 애니메이션 클래스 절대 금지
  • 시퀀싱: <Sequence> 사용, 항상 premountFor 설정
  • 트랜지션: @remotion/transitionsfade, slide, wipe 사용
  • 비디오 임베딩: @remotion/media<Video> 컴포넌트
  • 폰트: @remotion/google-fonts 또는 loadFont() 사용
  • FFmpeg: bunx remotion ffmpeg로 접근 (별도 설치 불필요)

프로젝트 구조

project-root/
├── package.json
├── remotion.config.ts
├── src/
│   ├── Root.tsx                    # Composition 정의
│   ├── WebDemo/
│   │   ├── index.tsx               # 메인 합성 컴포넌트
│   │   ├── Intro.tsx               # 인트로 장면
│   │   ├── SceneClip.tsx           # 녹화 영상 + 자막 오버레이
│   │   ├── Outro.tsx               # 아웃트로 장면
│   │   ├── CaptionOverlay.tsx      # 자막 컴포넌트
│   │   └── CursorHighlight.tsx     # 커서 하이라이트
│   └── types.ts                    # 타입 정의
├── scripts/
│   └── record-scenes.ts            # Playwright 녹화 스크립트
├── public/
│   ├── recordings/                 # 녹화 영상들
│   ├── assets/                     # 로고 등
│   └── scenario.json               # 시나리오
└── out/
    └── demo-video.mp4              # 최종 출력

실행 순서

# 1. 프로젝트 초기화
npx create-video@latest     # Blank, TailwindCSS ON
cd my-video && npm install
npm install playwright
npx playwright install chromium

# 2. 시나리오 생성 → public/scenario.json

# 3. Playwright 녹화
npx tsx scripts/record-scenes.ts

# 4. WebM → MP4 변환 (각 클립)
bunx remotion ffmpeg -i public/recordings/scene-01.webm -c:v libx264 -c:a aac public/recordings/scene-01.mp4

# 5. Remotion 프리뷰
npm run dev

# 6. 최종 렌더링
npx remotion render src/Root.tsx WebDemo out/demo-video.mp4

설계 원칙

  1. 장면 분리: 각 scene → 별도 Playwright context → 독립 클립
  2. 자막 동기화: scene마다 captionText + captionPosition 매핑
  3. 유연한 합성: <TransitionSeries>로 인트로-클립-아웃트로 배치
  4. 동적 길이: calculateMetadata로 녹화 길이 기반 자동 계산
  5. 브랜딩 커스텀: 타이틀, 색상, 폰트를 시나리오에서 설정

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ll-feishu-audio

飞书语音交互技能。支持语音消息自动识别、AI 处理、语音回复全流程。需要配置 FEISHU_APP_ID 和 FEISHU_APP_SECRET 环境变量。使用 faster-whisper 进行语音识别,Edge TTS 进行语音合成,自动转换 OPUS 格式并通过飞书发送。适用于飞书平台的语音对话场景。

Archived SourceRecently Updated
General

test_skill

import json import tkinter as tk from tkinter import messagebox, simpledialog

Archived SourceRecently Updated
General

51mee-resume-profile

简历画像。触发场景:用户要求生成候选人画像;用户想了解候选人的多维度标签和能力评估。

Archived SourceRecently Updated
General

51mee-resume-parse

简历解析。触发场景:用户上传简历文件要求解析、提取结构化信息。

Archived SourceRecently Updated