Communitygithub.com

Robbert-Sombrio/VideoEdit-

9:16のトーキングヘッドクリップから、完成されたプレミアムなInstagramリールをエンドツーエンドで生成します。最適なテイクの選択、無音のカット、4Kからのズームイン、背景透過、3種類のデザインルックの適用、アニメーションUIの挿入、サウンドデザイン、セーフゾーンの確認までを自動実行。 /video-edit または「このクリップを編集して」「リールにカットして」などのフレーズで起動します。

VideoEdit- とは?

VideoEdit- スキルは、生の9:16トーキングヘッドクリップを、プロフェッショナルなInstagramリールに完全自動で変換するエンドツーエンドのエージェントスキルです。ユーザーは動画編集ソフトを一切操作する必要がなく、仕上がったリールのレビューとフィードバックのみを行います。 このスキルは、複数クリップから各ラインの最もクリーンなテイクを自動選択し、無音部分をカット、4K素材から適切なズームイン処理を行います。さらに、背景から話者を切り抜いてテキストを配置する「Behind-head」機能、3種類のデザインルック(ボールド、クールガール、クールデュード)の適用、並列サブエージェントによるアニメーションUIインサートの生成、控えめなサウンドデザインの追加を実行します。すべてのカットはInstagramリールのセーフゾーン(上部220、下部450、左右35など)内に収まるようフレーム単位でチェックされます。 対応プラットフォームはmacOS、Linux、Windowsで、最初のセットアップは約2分で完了します。セットアップ時にPython、ffmpeg、Node.jsの依存関係が自動チェック・インストールされ、Apify連携によるプロフィール統計取得もオプションで可能です。スキルは `setup.py` によって各マシンの環境を検出し、OSに応じた適切なコマンド(Pythonインタプリタのパスなど)を `config.json` と `.platform.json` に記録して以降の実行を効率化します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Robbert-Sombrio/VideoEdit-/tree/HEAD/.claude/skills/video-edit

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

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

ドキュメント

/video-edit

未編集クリップを入力として、完成したリールを出力します。ユーザーは編集アプリを開くことはありません。スマートフォン用のコピーを確認し、修正を指示するだけで、毎回約2分で再レンダリングされます。

構築前に読むもの:references/looks.md(3つのルックと正確な値)、references/layout.md(セーフゾーン、配置、後頭部テキストの計算式)、references/gotchas.md(過去に発生した問題とその対策)。アニメーション挿入が必要な場合はreferences/overlays.mdも読んでください。

macOS、Linux、Windowsで動作します。setup.pyは実行のたびにマシンを検出し、以下のすべてのコマンドはその記録に基づきます。そのため、パスやシェルを推測しないでください。ステップ0の直後の「このマシンについて」を参照してください。

ステップ0:初回セットアップ(一度だけ実行)

SKはこのスキルのフォルダ(このSKILL.mdがあるフォルダ)のフルパスです。通常は~/.claude/skills/video-edit、WindowsではC:/Users/<name>/.claude/skills/video-editです。

SK/config.jsonを探します。

存在する場合: 読み込んで(名前、Instagramハンドル、デフォルトルック、フォルダ)、下記ステップ3のセットアップスクリプトを実行します(数秒:更新後に環境をチェックし修復するだけです)。「このマシンについて」を読み、READYと表示されたらステップ1に進みます。

存在しない場合:

  1. 次のように表示します:「Welcome to /video-edit! Let's get you set up. This takes about 2 minutes and only happens once.」
  2. 1つのメッセージで以下を質問します:
    • あなたの名前(Instagramプロフィール挿入に使用)
    • あなたのInstagramハンドル(プロフィール挿入と、オービットエフェクト用にあなたのリールを取得するため)
    • デフォルトルック:bold(後頭部に並ぶキネティックワード)、cool girl(暖かみのある黄色のセリフ斜体、あなたのリールが周囲を公転)、またはcool dude(ダークなエディトリアル、トラッキングされた大文字+セリフ)。迷っている場合にはboldを提案します。
    • 生クリップの通常の保存場所(デフォルトは~/Downloads)と、プロジェクトの保存場所(デフォルトは~/reel-edits)
  3. マシンにインストールされているPythonを使用してセットアップスクリプトを実行します。STATUS行が表示されるまで、以下の順序で試します: python3 "SK/scripts/setup.py"、次にpython "SK/scripts/setup.py"、次にpy -3 "SK/scripts/setup.py"。 (Windowsではpython3がMicrosoft Storeのスタブで「Pythonが見つかりません」と表示されることが多いので、次のものを試してください。) どれも動作しない場合:Pythonが不足しています。システムに適した修正方法を表示して停止します(Windows:winget install --id Python.Python.3.12 -e、Mac:brew install python、Linux:sudo apt install python3 python3-venv)。 その後、STATUS行を読みます:
    • ffmpeg / node / python venv MISSING:行の末尾にこのマシンに適した正確な修正方法が表示されます(Windowsはwinget、Macはbrew、Linuxはapt)。ユーザーに表示して停止し、スクリプトがREADYを表示するまで待ちます。
    • Windows:ユーザーはwingetの行を自分でPowerShellウィンドウに貼り付け(wingetは初回に利用規約への同意を求めます)、Claude Codeを完全に終了してから再起動します。新しいプログラムが見つからなくなるためです。
    • スクリプトは6つの効果音を自分でダウンロードします。それでもMISSING(オフライン)と報告された場合、それはオプションです:リールには効果音が追加されるまで無音になります。
  4. オプション、Apify(リールとプロフィール統計を自動取得):簡単なApify MCP呼び出しを試します。接続されていない場合、オプションであり、追加方法を説明します:
    1. https://apify.com で無料アカウントを作成し、設定 > API & Integrations からAPIトークンをコピーします。
    2. ターミナルで、YOUR_TOKENの代わりにトークンを入れた次の1行を貼り付けます: claude mcp add apify -e APIFY_TOKEN=YOUR_TOKEN -- npx -y @apify/actors-mcp-server (注意:Claude Codeはトークンを~/.claude.jsonに平文で保存します。このファイルは非公開にしてください。)
    3. Claudeを再起動し、/video-editを再度実行します。 Apifyがない場合、スキルはユーザーにリールファイルをプロジェクトにドロップするよう求めます。
  5. SK/config.jsonを保存します(機密情報は含めない):
    {"name": "...", "instagram": "@なしのハンドル", "defaultLook": "bold", "clipsDir": "~/Downloads",
     "projectsDir": "~/reel-edits", "setupComplete": true, "setupDate": "YYYY-MM-DD"}
    
  6. 次のように表示します:「Setup complete! Running /video-edit now...」そして続行します。

このマシンについて(毎回実行時に読む)

setup.pyによって書き込まれるSK/.platform.jsonを読みます。OS(os:macos、linux、またはwindows)、CPU、およびこのコンピュータ用の正確なコマンドが記録されています。

  • PY = pythonの値:スキル専用のPython(MacとLinuxでは.venv/bin/python、Windowsでは.venv/Scripts/python.exe)。このスキルのすべてのPythonスクリプトはこれで実行し、決して素のpython3は使用しません。
  • HF = PY "SK/scripts/hf.py":どのOSでも適切なNodeでピン留めされたHyperFrames(npx --yes [email protected] ...)を起動します。nvm useやnpx.cmdの問題はありません。
  • cutout:CoreML(Apple Silicon)またはCPU(Windows、Linux、Intel Mac:GPUの支援がないため、切り抜きステップが遅くなります。その旨を伝え、バックグラウンドで実行し、編集を続けます)。

setup.pyは実行のたびに(ステップ0)このファイルを書き換えるため、常に最新です。ファイルがない、またはPYが存在しない場合:セットアップが実行されていないか、READYに達していません。ステップ0.3のように実行し、修正方法に従います。

zsh、bash、Git Bash、PowerShellで動作するコマンドスタイル:

  • フルパスをダブルクォーテーションで囲み、スラッシュを使用します(Windowsでも問題ありません):"PY" "SK/scripts/ingest.py" "<project>"。
  • PowerShell(Git for WindowsがないWindows、またはPowerShellツールを使用している場合)では、先頭に&を付けます:& "PY" "SK/scripts/ingest.py" "<project>"。
  • 1回の呼び出しで1つのコマンド。&&、VAR=1 command、引数内の~、source、zshは使用しません。
  • ffmpegとffprobeはすべてのOSでPATHにあります(setupが確認します)。そのため、単発のffmpegコマンドはどこでも同じです。

厳格なルール

  1. すべてをリールのセーフゾーン内に収める:上部220、下部450(y 1470より下には何も配置しない)、側面35、右側はy 1155から100。
  2. テキストやカードで顔を覆わない。後頭部の文字は各文字の少なくとも約70%が見えるようにする。
  3. キャプションは実際に話された内容を表示する:Whisperが誤認識した名前やキーワードを修正する("Claude"はしばしば"cloud"や"claws"に、"skill"は"scale"になります)。画面上のテキストにダッシュ(em dash)は使用しない。
  4. 効果音は控えめに(テンプレートの基本音量のSFX_GAIN = 0.75)、声より大きくしない。
  5. 他のクリエイターのリールを使用する場合は、画面上でクレジットを表示する(@ハンドル)。自分のプロフィールには実際の数値を表示する。それ以外(コメント、チャット履歴)は汎用的なプレースホルダーとし、実際の人物は使用せず、偽の証拠も作成しない。
  6. カットは最終レンダリングから証明し、スナップショットからは証明しない。
  7. ユーザーのファイルを決して削除しない。オリジナルファイルは読み取りのみで、変更しない。

ワークフロー

1. 取り込み

  • クリップ:ユーザーが指定したファイル、それ以外の場合はclipsDir内の最も新しい動画ファイル。<projectsDir>/<short-slug>/を作成する。 (config.jsonの~はユーザーのホームフォルダ、WindowsではC:/Users/<name>です。スキルのスクリプトが展開します。)
  • スタイルの参照リンク(IGリール、Pinterestピン):ダウンロードしてフレームを確認してからデザインする(取得方法はoverlays.mdを参照)。

2. インジェスト

PY SK/scripts/ingest.py <project> <clips or folder> [--newest 5]

work/sheets.jpg(セットアップとアングル)を確認し、transcript.txt(クリップごとの行、タイムスタンプ付きの単語、スピーチマップ)を読む。

3. テイク選択 -> <project>/edl.json

  • テイクからスクリプトを再構築する:人々はセリフが決まるまで繰り返す。ユーザーが特に指定しない限り(「0:47から始まる部分が良い」はそこからの連続テイクを意味する)、最後に完全でクリーンなテイクを使用する。
  • イン/アウトポイントはスピーチマップから:最初の単語の約0.05〜0.07秒前から開始し、最後の単語後の無音の開始時点で終了する。セクション間の無駄な無音を削除する。カット前後の短いポーズは、silencedetectで確認してからトリミングする(Whisperはカット箇所で先頭の単語を捏造することがある)。
  • 同じアングルのセグメントが2つ連続する場合:片方をズームインする(4Kオリジナルからズーム1.3〜1.9、中心は胸の位置)。
  • 不明な単語(キーワード、CTAトリガー):そのスニペットをmedium.enモデルと、その名前を含むプロンプトで再文字起こしする。
  • フォーマット:[{"id": "hook", "clip": "c1", "in": 12.66, "out": 15.72, "zoom": 1.0, "cx": 0.5, "cy": 0.5, "line": "..."}]
  • EDLをユーザーに短いテーブル(行、クリップ、セクションごとのルック)として投稿し、待たずに続行する。

4. アセンブル、文字起こし、切り抜き

PY SK/scripts/assemble.py <project>                 # aroll.mp4 クリーン 30fps CFR + segments.json(正確なフレーム情報)
PY SK/scripts/transcribe_cut.py <project> "<スクリプト内の名前とキーワード>"
PY SK/scripts/cutout.py <project>                   # バックグラウンドで実行;切り抜きフレーム == arollフレームであることを確認
PY SK/scripts/headpos.py <project>                  # 切り抜き後:セグメントごとの頭部/身体の位置

切り抜きは一度に1つずつ実行(約1.5 GBのRAM)。30秒ごとに進捗行を出力する。

5. インサートを並行して(EDLが確定次第)

スクリプトで要求されるアニメーションインサート(画面上のアプリ、CTAのプロフィールフォロー、ファイルスクロール)ごとに、references/overlays.mdのブリーフテンプレートを使ってバックグラウンドでサブエージェントを起動する:固定サイズ、固定長、ビートは単語のタイミングにロック、透明なwebmで出力。メインの編集をそのまま続ける。

6. ビルド

SK/assets/template/をプロジェクトにコピー(build.py、hyperframes.json、package.json、assets/fonts、assets/sfx)し、build.pyを適応させる。これは実際のリールの完成したビルドです:仕組みはそのままに、コンテンツを書き換える(docstringにどの部分が何かがリストされています)。

  • 各ルックの適用場所:リール全体はdefaultLook;ルックを指定する行がある場合、そのセクションが切り替わる。
  • オービットとプロフィールグリッドはユーザー自身のリールを使用する(overlays.md:ユーザーハンドルを使用したApify投稿スクレイパー、またはassets/reels/にドロップされたファイル)。
  • プロジェクトフォルダからイテレーションする:HF lint(エラー0)、次にPY build.py --safe、次にHF snapshot --at <10-20の瞬間> --no-end --describe false。コンタクトシートを読み、レイアウト、可読性、セーフゾーンを修正する。(HFは適切なNodeを自動的に選択するため、nvm useは不要です。) 古いバージョンのこのスキルからコピーされたbuild.pyは--safeを無視します:スナップショットに赤いガイドがない場合、そのプロジェクトは古い方法でビルドします。SAFE=1 "PY" build.py(そのようなプロジェクトはMacとLinuxにのみ存在します)。

7. レンダリングとQA

PY build.py           # --safe なし
HF render -o renders/<slug>-vN.mp4 --quality high      # Apple Siliconで25秒リールの場合約1.5〜2分
PY SK/scripts/check_cuts.py <project> renders/<slug>-vN.mp4 --phone

work/cut_check.jpgを確認:すべてのカット後のフレームで新しいショットがきれいに表示されていることを確認。オーディオのピーク(volumedetect、最大約-2〜-5 dB)とセクション結合部の無音をチェックする。

8. 納品

スマートフォン用コピー(720p)とフル品質レンダリングを送信または指示する。何が変更されたか、ユーザーの判断が必要な点を平易な言葉で報告する。すべてのバージョンをrenders/に保持する。再アセンブル前にassets/ + segments.jsonをwork/vN/にバックアップする。

実際のフィードバックから生まれたデフォルト(再議論しない)

  • ルックを作成するためにグレーディングとキャプションを変更する。背景をAI生成の部屋に置き換えない。
  • フィルムグレインは使用しない。暗めでも良いが、被写体に光が当たり、肌が赤くならないようにする。
  • 先頭のキャプションは話者の前で中央揃えにすると、左端に固定された行よりも読みやすい。
  • 後頭部のテキストは特徴的な動きだが、読みやすい場合にのみ使用する。

Built by @tenfoldmarc. Follow for daily AI automation builds, real systems, not theory.

関連スキル