Communitygithub.com

johnnyfekete/video-organize

スクリプト動画用の生映像を整理します。すべての録画をローカルで文字起こしし、各テイクを検出してストーリーボードのシーンにマッチングし、完全性、途切れた単語、音声をスコアリングし、現場の合否判定を読み取り、最適なテイクまたは2つのテイクからのパッチを提案し、BロールをストーリーボードのBロールノートにカタログ化し、TAKES.mdを作成し、映画風の名前(S02A_T03_original)へのリネームを提供します。新しい映像が到着したとき、ユーザーがテイクの整理、比較、選択を希望したとき、使用可能なテイクがないシーンを知りたいとき、またはクリップのリネームを依頼したときに使用します。

video-organize とは?

このスキルは、**video-organize** と呼ばれ、DaVinci Resolve プロジェクト用にスクリプト化された動画の撮影映像を自動的に整理・評価するためのツールです。`video-setup` スキルの後に実行し、`video-assemble` スキルの前に実行することを想定しています。主な機能として、各録画ファイルをローカルで文字起こし(Whisper または任意の文字起こしコマンドを使用)、ストーリーボードの各シーンにテイクを自動マッチング、テイクの完全性や音声品質を0~100でスコアリングし、現場の合否判定を考慮して最適なテイクまたは2つのテイクからのパッチを提案します。また、Bロール映像のフレームを抽出し、ストーリーボードのBロールノートとマッチングする機能も提供します。結果は `TAKES.md` ファイルとして出力され、ユーザーはテイクの選択やリネーム(例:S02A_T03_IMG_5419.MOV)を対話的に行えます。このスキルは Claude Code や Cursor などの AI エージェントと連携し、コマンドラインから実行されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/johnnyfekete/resolve-video-skills/tree/HEAD/skills/video-organize

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

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

ドキュメント

video-organize は何をしますか?

video-setup の後に、video-assemble の前に実行します。タイムラインは不要で、Resolve を閉じた状態で動作します。このスキルの隣に resolve-bridge スキルがインストールされているか(または RVS_BRIDGE が設定されていること)、ffmpeg、および uv(ローカル Whisper 用)または RVS_TRANSCRIBE_CMD 内の文字起こしコマンドが必要です。

スクリプトは python3 <このスキルのフォルダ>/scripts/organize.py --workdir <フォルダ> <コマンド> として実行します。

ストーリーボード形式

プレーンな Markdown で、シーンごとに1つのブロック。シーン ID は見出しから取得します。

## S01
Setup: counter top

Let me start with a confession: AI helped me plan this video.

## S03
Voiceover: yes
B-roll: showing AI researching something funny

Setup、Voiceover、B-roll はオプションです。ブロック内のその他すべては話されるテキストです。B-roll: のみのブロックは Bロールのみのシーンです。見出しのないプレーンなスクリプトは、各パラグラフを1つのシーンとしてカウントします。ストーリーボードがまったくない場合、テイクは類似テキストごとにグループ化され(G01、G02)、TAKES.md の上部に警告が表示され、スクリプトに対するスコアリングやリネームの提案は行われません。

ワークフロー

  1. セットアップチェック。 video-setup の check を実行します。ストーリーボードが記録されていない場合に警告し、.edit/config.json には storyboard、approve_phrases、reject_phrases が含まれている必要があります(古い phrases リストは単なるメモとして表示されます:どのフレーズが承認でどのフレーズが拒否かを尋ね、setup.py write で保存します)。
  2. まずカウント。 フッテージフォルダを確認したら、次のコマンドを実行します:
    python3 scripts/organize.py --workdir <folder> run --footage <footage folder> [--storyboard FILE] [--every 2]
    
    --yes なしの場合、カウント(録画数、時間、シーン数)を出力して停止します。ユーザーにフォルダが正しいか確認します。
  3. 実行。
    python3 scripts/organize.py --workdir <folder> run --footage <footage folder> --yes
    
    文字起こし(既に文字起こし済みで変更がない録画はスキップ)、テイクの検出とスコアリング、Bロールフレームの抽出、TAKES.md の書き出し、問題点の記録(使用可能なテイクがないシーン、撮影されていないBロール、誰もパッチできない壊れた節)を行います。
  4. あなたの役割:Bロールの説明。 実行により、Bロール録画ごとに1つのフレームフォルダ(サンプルごとに1つのJPEG、フレームNは N × every 秒)がリストされます。各フォルダについて:
    • フレームを開き、タイムスタンプごとに画面に表示されている内容を説明します;
    • 説明をストーリーボードの B-roll: ノートにマッチングします:シーン、開始、終了、その理由;
    • ペイロードを書き込み、記録します:
      {"<recording path>": {"frames": {"0": "a person typing", "2": "close-up of a screen"},
                            "matches": [{"scene": "S04", "start": 2, "end": 6, "why": "screen close-up"}]}}
      
      python3 scripts/organize.py --workdir <folder> describe payload.json
      
    見えるものだけを説明してください。マッチングをでっち上げないでください。
  5. あなたの役割:ショットレターの質問。 実行が、あるシーンの2つのファイルが同じカメラセットアップかどうかを判断できない場合、フレーム差分とともに質問をリストします。ユーザーに尋ね、各回答を記録します:
    python3 scripts/organize.py --workdir <folder> answer S02 <file> B
    
  6. TAKES.md の表示。 シーンごとに1つのセクション。推奨テイクが最初に表示され、そのスコアと理由、パッチ(両方のテイクIDがマークされ、常に推奨)、マッチしないクリップ、テイクのないシーンが表示されます。問題点をユーザーに読み上げます。
  7. 修正。 ユーザーが別のテイクを希望する場合(「S02A-T03を使って」):
    python3 scripts/organize.py --workdir <folder> pick S02A-T03
    
    ユーザーの選択は再実行後も保持されます。report は他の変更なしに TAKES.md を書き換えます。
  8. リネーム。 organize.py rename によって提案されます(まず提案を表示、ユーザーが完全なリストを承認した場合のみ --apply、元に戻す場合は --undo)。完全な旧名→新名のリストを表示し、明確な同意があった場合のみ適用します。他の方法でリネームしないでください。開いている Resolve プロジェクトでタイムライン上にすでに配置されているクリップはスキップされ、その理由がリストされます。使用済みクリップのリリンクはカットやグレードを失う可能性があるためです。必要に応じて Resolve 内で手動でリネームしてください。プロジェクトにコンパウンド、マルチカム、または Fusion クリップが含まれている場合、その内容をリストできないため、インポートされたすべてのクリップがスキップされます。--apply は最後に表示された提案を正確に適用し、変更された場合は拒否します。Resolve が閉じている場合、--apply と --undo には --never-imported が必要です(フッテージが一度もインポートされていない場合)。Resolve が開いている場合でも、使用済みクリップはチェックされます。
  9. 完了。 実行によりオーガナイズステップ自体が記録されるため、他に記録するものはありません。次のステップとして video-assemble(まだ構築されていません)を指摘します。

命名規則

ケース名前
TAKES.md 内のテイクIDS02A-T03
1テイクのファイルS02A_T03_IMG_5419.MOV
1ショットの複数テイクを含むファイルS02A_T01-T03_IMG_5420.MOV
複数シーンを含むファイルS03A_S05A_S06A_IMG_5422.MOV
シーンの2番目のカメラセットアップS02B_T01_IMG_5430.MOV

すべてのショットにはレターがあります。異なるレターは異なるカメラセットアップを意味し、リテイクではありません。Bロールおよびマッチしないファイルは元の名前を保持します。

ルール

  • ソース映像は移動または上書きされません。承認された rename によってのみリネームされます。
  • スコアは0~100で、常に理由とともに表示されます。現場での拒否はスコアより優先され、承認は最優先されます。ナレーションシーンは主に音声で判断されます。
  • パッチは、自然な間で少なくとも1つの完全なアイデアのカットを入れ替えます。単語単位では入れ替えません。
  • 作業ファイルは <フォルダ>/.edit/organize/ にあります(手動で編集しないでください)。video-assemble はこれらのみを読み取ります。

Individual skills in this repo

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

関連スキル