Communitygithub.com

iamaanahmad/screen-recording-demos

クリーンなプロダクトデモやWebアプリのウォークスルーを録画します。Playwrightを使ったスクリプトブラウザ録画、カーソルとズームの調整、スピードランプ、無駄な時間のトリミング、ナレーションとの同期を備えています。ウォークスルー、チュートリアル、UIデモ、リリース動画、または繰り返し可能な録画が必要なときに使用します。

screen-recording-demos とは?

このスキルは、開発者向けにスクリプト化された高品質な画面録画とデモ作成を実現します。特にWebアプリケーションの場合、Playwrightを使用したブラウザ録画が推奨され、UIが変更されてもスクリプトを再実行するだけで簡単に録画を更新できます。デスクトップアプリにはOS標準の録画ツール(OBS Studio、Windows Game Bar、macOS Screenshot)を、CLI操作にはターミナルレコーダー(asciinema、VHS)を使用します。さらに、録画後のポストプロダクションとして、ffmpegを使った不要部分のカット、速度調整、ズーム/パン効果、ナレーションとの同期など、プロフェッショナルな仕上げをサポートします。このスキルは、Playwright(Python)、ffmpeg、Remotionなどのツールと連携し、再現性と高品質を両立したデモ動画を効率的に作成したいエンジニアに最適です。

対応~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/screen-recording-demos

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

画面録画とデモ

スクリプト化された録画は再利用可能です。UIが変わったら、手動で録画し直す代わりにスクリプトを再実行するだけです。

方法の選択

状況方法
ブラウザで開けるWebアプリPlaywrightを使ったスクリプト録画
デスクトップアプリや全画面作業OS標準の録画ツール(OBS Studio、Windows Game Bar、macOS スクリーンショット)
アプリのソースがあり、滑らかでノーグリッチな結果が欲しいRemotionで画面を静的コンポーネントとして再構築(remotion-programmatic-video を参照)
CLI操作ターミナルレコーダー(asciinema、VHS)またはアニメーション付きターミナルコンポーネント

Playwright 録画(Python)

pip install playwright && playwright install chromium
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    ctx = browser.new_context(
        viewport={"width": 1920, "height": 1080},
        record_video_dir="recordings/",
        record_video_size={"width": 1920, "height": 1080},
    )
    page = ctx.new_page()
    page.goto("https://example.com")
    page.wait_for_load_state("networkidle")
    page.wait_for_timeout(800)                       # 視聴者が読む時間
    page.get_by_role("button", name="Sign in").click()
    page.get_by_label("Email").type("[email protected]", delay=60)   # 入力動作を可視化
    page.wait_for_timeout(1200)
    ctx.close()                                      # close時に動画が確定
    browser.close()

出力はWebM形式です。変換:

ffmpeg -i recordings/xyz.webm -c:v libx264 -crf 18 -pix_fmt yuv420p -r 30 out/demo.mp4

見栄えを良くする

  • デモデータ: 現実的で機密性のないデータをあらかじめ用意したデモアカウントを使用します。実際の顧客データ、トークン、メールアドレスは絶対に記録しないでください。
  • ウィンドウ: 固定の1920x1080ビューポート、ブックマークバーと通知は非表示、テキストがスマホでも読めるように軽いズーム(110〜125%)を適用します。
  • ペース: 各操作の後に0.5〜1秒のポーズを入れます。入力は遅延をつけて行います。瞬間移動は避けてください。
  • カーソル: Playwrightはカーソルを描画しません。小さなDOMカーソルを注入するか、後処理(Remotionやオーバーレイ)で追加します。
  • 決定性: 固定のsleepではなく、expect(locator).to_be_visible() で待ってから意図的なポーズを入れます。
  • 機密情報: 録画前にページスクリプトでフィールドをぼかすかマスクします(page.add_style_tag)。

ポストプロダクション

# 不要部分をカット: 12秒から41秒までを残す
ffmpeg -ss 12 -i demo.mp4 -t 29 -c:v libx264 -crf 18 out/trimmed.mp4

# 退屈な待ち時間を高速化(例:20秒から30秒を4倍速)には分割が必要。最も簡単な方法は、カット→速度変更→再結合
# 領域をズーム: トリミングしてからリサイズ(x:y:w:h はソースピクセル単位)
ffmpeg -i demo.mp4 -vf "crop=960:540:480:270,scale=1920:1080" out/zoom.mp4

滑らかなアニメーションズーム/パンをカーソルに追従させるには、Remotion(interpolate で scale と translate)を使用します。

ナレーションとの同期

  1. まずスクリプトを書き(video-planning)、ボイスオーバーを録音します(voiceover-tts)。
  2. 画面を録画し、各アクションが該当するセリフに合うようにシーンごとに速度を調整します。速度 = 録画秒数 / ナレーション秒数。
  3. ffmpeg-essentials の速度調整レシピを使うか、コンポジション内でタイミングを再調整します。

チェックリスト

  • 個人データ、APIキー、内部URLが表示されていないこと。
  • テキストが、スマホ画面にスケールした1080pで読めること。
  • ローディングスピナーが1秒以上残っていないこと。
  • マシンからの音声は、必要な場合を除きミュートされていること。

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

iamaanahmad/captions-subtitles

Create, edit, translate and burn in captions and subtitles - transcribe speech with Whisper, write SRT/VTT/ASS files, style them, and hard-burn word-highlight captions for Shorts, Reels and TikTok. Use for any captioning, subtitle, transcript or accessibility request.

iamaanahmad/ffmpeg-essentials

Core FFmpeg and ffprobe recipes for trimming, joining, converting, resizing, compressing, speed changes, fades, audio extraction and GIF conversion. Use for any direct media transformation task, or when a video will not play, has odd dimensions, or is out of sync.

iamaanahmad/motion-design-craft

Motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

iamaanahmad/moviepy-python-video

Compose and edit video in pure Python with moviepy 2.x - overlay text, lower thirds and captions on footage, cut and join clips, add audio, build short single-file build.py videos without Node. Use when the user wants Python-based video editing or deterministic text over AI-generated video.

iamaanahmad/remotion-programmatic-video

Build videos as React code with Remotion - compositions, sequences, springs, interpolation, audio sync, data-driven props, studio preview and rendering to MP4. Use for explainers, product demos, release notes, data charts, branded templates, or any video that should be reproducible from code.

iamaanahmad/voiceover-tts

Generate and time narration with text-to-speech (ElevenLabs, OpenAI TTS, Kokoro, Piper) or prepare a recorded voice - script prep, per-scene audio files, pacing, pronunciation, cleanup and loudness. Use when the user needs a voiceover, narration, dubbing, or voice cloning guidance.

関連スキル