本文へ移動
cccskills
無料GitHub で公開日本語紹介

mobile-demo-film

モバイルアプリの画面録画を、スマホ枠やタイトルカード付きの無音デモ動画に編集します。縦・横・正方形の出力に対応し、機能紹介や公開時の短い映像に使えます。

原文原文の説明を見る

Turn mobile screen recordings into a configurable demo video with phone footage, title cards, cutaways, and an end card. Use when asked to edit a mobile feature demo or launch clip. Use mobile-demo-record to capture real app footage first.

ParadevAI/Paradevスター 15,724(GitHub 15,724 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • モバイル機能の短いデモを作りたいとき
  • アプリ公開用の紹介動画を用意したいとき
  • スマホ映像にデスクトップ画面を挟みたいとき
  • 縦・横・正方形の動画を書き出したいとき

日本語での紹介

できること

モバイルアプリの実際の画面録画から、機能紹介用の無音動画を作ります。スマホ枠付きの映像、説明用のタイトルカード、デスクトップ画面への切り替え、エンドカードを組み合わせられます。JSONの構成ファイルで、切り出す範囲、再生速度、背景色、フェード、出力サイズなどを指定します。縦長・横長・正方形に対応し、フレームを一覧にした画像で仕上がりを確認できます。

こんなときに便利

アプリの操作から結果までを短く見せたいときや、新機能の公開に合わせて紹介映像を用意したいときに向いています。待ち時間を縮めながら、操作や文字を読める自然なテンポに整えます。

使い方の例

  • 「この画面録画で、操作から結果までを30秒の縦長デモにして」
  • 「スマホの映像の間にデスクトップ画面を入れ、最後にロゴを表示して」

注意点

Python 3.10以上、Pillow 10.1以上、ffmpeg(ffprobeとlibx264を含む)が必要です。音声は削除されるため、ナレーションやアプリ音が必要な場合は別の編集手順を使います。mobile-demo-recordでの録画にはmacOSが必要ですが、既存映像の編集には不要です。既存の出力ファイルは上書きされます。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

資料チェック

SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。

安全面送信・削除・コマンド実行などの扱いが明示されているか
B一部不足既存出力の上書きと音声削除が明記されるが、上書き前の確認手順はない。
導入のしやすさ必要なツールや API キーが少ないか、書かれているか
A良好Python・Pillow・ffmpegの最低バージョンと導入例が記載されている。

点数には入れていません。 2026年10月29日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。

評価が違うと思ったら、見直しを依頼する

どの項目が、なぜ違うと思うかを書いてください。ログインは不要です。内容を SKILL.md と照らし合わせて評価を作り直し、この欄に反映します。

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

含まれるファイル(3)

  • SKILL.md7.2 KB
  • scripts/film.py19.9 KB
  • scripts/test_film.py5.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Mobile demo film

Use this skill to edit a new demo from real app recordings. The bundled renderer produces silent video with configurable dimensions, frame rate, framing, and fades. Defaults are 1080x1920 at 30fps, with a phone frame on a warm paper backdrop. A useful default is one feature in 20 to 40 seconds; adapt the story and pacing to the request.

Prerequisites

Use Python 3.10+, Pillow 10.1+, and ffmpeg (including ffprobe and libx264). Recording with mobile-demo-record needs macOS; editing existing footage does not. Font discovery tries macOS system fonts, then Linux DejaVu fonts, then Pillow’s fallback. Specify font files for consistent typography across machines. Install Pillow in a scratch virtual environment:

python3 -m venv <scratch>/film-venv
<scratch>/film-venv/bin/pip install "Pillow>=10.1"

Use that environment's Python for the commands below. Commands assume the repo root as working directory. Output directories are created automatically. Existing outputs are overwritten; source assets and the composition spec cannot be used as the film output.

Workflow

  1. Plan one story. Write a short table of on-screen actions and durations. Start with the user's action, show the app responding, and end on the visible result. A tour can start with the finished artifact instead. Verify the feature works before filming it.
  2. Capture real footage with mobile-demo-record. Use demo data and a separate take for each beat. If the story needs an agent doing work, use a working host and agent. Capture desktop cutaways with cdp-verification when needed.
  3. Normalize before choosing cuts. Simulator recordings have variable frame rates: python3 .agents/skills/mobile-demo-film/scripts/film.py normalize raw/01.mov cfr/01.mp4. Choose start/end timestamps from this constant-rate copy. Add --fps 24 for a 24fps project (the default is 30).
  4. Compose using a JSON spec beside the recordings: python3 .agents/skills/mobile-demo-film/scripts/film.py compose <scratch>/film.json.
  5. Review a contact sheet and play the entire film: python3 .agents/skills/mobile-demo-film/scripts/film.py sheet <scratch>/film.mp4 <scratch>/sheet.jpg. Add --frames 12 --height 480 to customize sampling and thumbnail height. By default, the sheet samples eight frames; inspect transitions and typing in playback too. Check for clipped text, unreadable UI, private information, spinners, and unintended clock changes.
  6. Deliver the film and identify the build, environment, staged data, and omitted steps. Draft accompanying post copy only if requested; publishing needs user authorization.

Keep typing and reading at a natural pace. Trim or speed up waiting, and make time jumps clear. Use title cards to explain missing context rather than implying an unrecorded action happened in the app. Framing, masks, and the simulated Dynamic Island are presentation layers; do not fabricate app state inside the recording.

Composition spec

This example combines phone footage, a desktop cutaway, a result, and an end card. Replace its paths, cut points, and text for the feature being demonstrated.

{
  "output": "film.mp4",
  "backdrop": "#F2F0EB",
  "segments": [
    { "type": "phone", "src": "cfr/01.mp4", "start": 1, "end": 7, "label": "Start on your phone" },
    { "type": "card", "eyebrow": "Meanwhile", "title": "The agent works on your Mac.",
      "image": "shots/desktop.png", "duration": 4 },
    { "type": "phone", "src": "cfr/02.mp4", "start": 0, "end": 10 },
    { "type": "end", "wordmark": "Paradev", "caption": "Review the result anywhere", "duration": 2.2 }
  ]
}

Media, output, and optional titleFont/sansFont paths resolve relative to the spec file; absolute paths also work. Top-level backdrop, bezel, ink, and muted accept #RRGGBB.

Output and framing

Add a render object to the spec. Existing specs without it keep the portrait defaults. For a landscape demo:

"render": {
  "width": 1920,
  "height": 1080,
  "fps": 24,
  "crf": 18,
  "fade": 0.2,
  "phone_width": 0.45,
  "phone_height": 0.8,
  "bezel_width": 0.012,
  "corner_radius": 0.1
}

For a square clip, use "width": 1080, "height": 1080. Cards and typography scale with the canvas; the centered phone fits both width and height limits while preserving source aspect ratio. Use raw for unframed desktop footage.

Render optionMeaning and default
width, heightCanvas pixels; even integers at least 64. Defaults: 1080, 1920
fpsInteger 1–120; default 30
crfFinal H.264 quality, 0–51; lower means higher quality/larger files. Default 18
fadeFade duration in seconds; 0 disables fades. Default 0.35; capped at half each framed/still segment’s duration; raw clips have no fade
phone_width, phone_heightMaximum screen width/height as fractions of canvas dimensions, greater than 0 and at most 0.95. Defaults: 0.615, 0.82
bezel_widthBorder thickness as a fraction of the smaller canvas dimension, 0–0.25. Default 0.015
corner_radiusScreen corner radius as a fraction of screen width, 0–0.25. Default 0.137

Segments

SegmentFields
phonesrc, optional start/end in seconds, speed (default 1), label, island (false disables the overlay)
rawsrc, optional start/end, speed; unframed footage fitted to the output canvas with black padding
cardtitle, optional eyebrow, caption, image, footer, duration (default 4 seconds)
endwordmark or transparent PNG logo, optional caption, duration (default 2.2 seconds)

Keep cut points within the source duration and speed positive. Every segment must last at least one output frame. The renderer validates all segments and source paths before encoding. Card titles wrap; captions, labels, and footers should be short. The renderer removes audio, so use another editing workflow if narration or app audio is needed.

Store raw takes, specs, and finished films in a scratch directory. Share the inputs and spec when teammates need to re-edit a particular demo; they are not required to create a new one.

Reusing and checking the renderer

Run film.py --help or a subcommand with --help for CLI options. The Python module can also be imported: normalize(src, dst, fps=30), compose(spec_path) (returns the output Path), and sheet(src, dst, frames=8, height=900) work without invoking the CLI. RenderSettings holds layout calculations without mutable global canvas settings.

After editing the renderer, run its focused tests (requires ffmpeg and Pillow):

python3 -B -m unittest discover -s .agents/skills/mobile-demo-film/scripts -p 'test_*.py'

These render small portrait, landscape, and square compositions, check output dimensions, frame rate and duration, and exercise invalid specs. Also inspect a contact sheet at the intended delivery size; automated checks do not judge readability or composition.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

10x

無料概要あり

Supersetの利用状況を調べ、まだ使っていない機能と活用方法を提案します。定期実行や並列作業、タスク管理などを一つずつ説明し、選んだ機能を実際に設定します。

  • 未使用のSuperset機能を知りたいとき
  • エージェントの定期実行を設定したいとき
  • 別ワークスペースで並列作業したいとき
ParadevAI/Paradev1.6万2026年10月29日 更新

automate

無料概要あり

繰り返し作業をSupersetで自動化するために、エージェントへの指示と実行時刻・イベント条件を整え、承認後の作成から初回実行の確認まで進めるスキル。

  • 日次・週次の作業を定期実行
  • GitHubのPR作成をきっかけに実行
  • Slackの指定リアクションで実行
ParadevAI/Paradev1.6万2026年10月29日 更新

browser

無料概要あり

Superset内のブラウザでページ閲覧・クリック・入力を行い、画面やコンソールを確認します。開発中のWebアプリの動作確認やフォーム操作を支援します。

  • ローカルのWebアプリを確認したいとき
  • ページのスクリーンショット撮影
  • コンソールエラーの確認
ParadevAI/Paradev1.6万2026年10月29日 更新

build-a-stripe-integration

無料概要あり

Stripeの決済・定期課金・請求書連携を、公式資料とAPIの引数定義を確認しながら実装します。製品選びからテスト環境での検証、Webhook処理の設計まで扱います。

  • 決済や定期課金の製品を選びたいとき
  • Checkoutや請求書処理を実装したいとき
  • 動作が不正なStripe連携を調べたいとき
ParadevAI/Paradev1.6万2026年10月29日 更新

cdp-verification

無料概要あり

実際に起動しているデスクトップアプリをChrome DevTools Protocolで操作し、画面遷移や状態を記録しながらUI変更や不具合を確認します。

  • UIの不具合を実アプリで再現したいとき
  • 修正後の画面動作を確認したいとき
  • 画面遷移を含めて検証したいとき
ParadevAI/Paradev1.6万2026年10月29日 更新

ci-triage

無料概要あり

GitHub Actionsの失敗ログから最初の原因を探し、コードの不具合・環境要因・断続的な失敗・既存障害を切り分け、PRとの関係と次の対応を整理します。

  • PRのチェック失敗を調べたいとき
  • 不安定なテストと不具合の切り分け
  • 比較元ブランチの既存障害の確認
ParadevAI/Paradev1.6万2026年10月29日 更新

ParadevAI のスキルをすべて見る

このスキルの問題を報告する