Communitygithub.com

vedit

生の動画を編集したり、写真からビデオをエンドツーエンドで作成します。無音/「あー」「えー」/ ミスをカット、キャプション追加、長い動画からショート/リール作成、マルチカムポッドキャスト、Bロール、音楽、音声ポリッシュ、写真とスクリプトからAIナレーション入りのスキット/ストーリーを生成します。ユーザーが動画の編集、カット、キャプション、縦型リフレーム、ショート化、または画像からナレーション/音声付き動画、スキット、ストーリー、スライドショーを必要とするときに使用してください。

vedit とは?

vedit は、AI エージェント(Claude Code, Cursor, Codex など)が高度な動画編集を完全にコードベースで行えるようにする CLI ツールです。エージェントは動画を直接視聴できないため、トランスクリプト(単語単位のタイムコード付き)とコンタクトシート(画像として読み取り可能)を「目」として活用し、ffmpeg でレンダリングされる JSON 形式の編集決定リスト(edl.json)を「手」として操作します。編集はすべて JSON 上の決定として行われ、変更や再レンダリングが安価で、未変更のクリップはキャッシュされます。これにより、AI エージェントは従来のビデオ編集 GUI を使わずに、プロ並みの編集ワークフローを完全に自動化できます。 対応ワークフローは多岐にわたります:生のトーク/チュートリアル映像の編集(ワークフローA)、長尺動画からのショート/リール生成(ワークフローB)、マルチカメラ/マルチマイクポッドキャスト(ワークフローC)、写真と AI 音声を使ったスキット/ストーリー作成(ワークフローD)、そしてブランド化されたファクトリールを大量生産するためのキット(ワークフローE)を備えています。エージェントは `vedit auto` コマンドで高速パスを選択することも、手動で `edl.json` を細かく編集して編集判断(ペーシング、ジャンプカットの隠蔽、キャプションスタイル、オーディオ調整)を適用することもできます。 インストールは `pip install -e .` または `pip install -r requirements.txt` で行い、ffmpeg が必要です。ブランドキット(brand.json)に対応しており、フォント、色、ロゴ、イントロ/アウトロ、音楽、LUT、スペル修正を自動適用できます。エージェントは事前に `vedit doctor` を実行して依存関係を確認し、必要に応じて不足パッケージをインストールします。また、各編集の最後には公開キット(タイトル候補、説明文、チャプター、サムネイル)を自動生成し、クリエイターの投稿作業を効率化します。 このツールは主に AI エージェントが動画編集を代理実行するために設計されていますが、人間の編集者が `vedit` CLI を直接使用することも可能です。エージェントは常にフレーム画像を読んで視覚的に検証し、編集内容をユーザーに説明する(何をなぜカットしたか、ビフォーアフターの長さなど)ことが求められます。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/OpenOrbitLabs/Vedit/tree/HEAD

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

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

ドキュメント

vedit: AI 動画編集ツール

あなたは編集者です。動画を直接見ることはできないため、以下のツールが 目(単語番号付きトランスクリプト、画像として読み取るコンタクトシート)と 手(編集決定リスト edl.json。ffmpeg でレンダリング)を提供します。編集内容は JSON 上の決定です。変更や再レンダリングは低コストで、未変更のクリップはキャッシュされます。

すべてのコマンドは1つの CLI を通して実行します。vedit が PATH 上にある場合(ユーザーが pip install -e . を実行した場合)、それを使用します。それ以外の場合は python SKILL/scripts/vedit.py <command> を呼び出します。ここで SKILL はこのファイルを含むフォルダーです。以下では vedit <command> と表記します。

マシンごとに vedit doctor を一度実行してください。必要なものが不足している場合は、pip install -e "SKILL[all]"(または pip install -r SKILL/requirements.txt)と、OS のパッケージマネージャー(Windows: winget install Gyan.FFmpeg)から ffmpeg をインストールしてください。

クイックパス: ユーザーが「これを仕上げて」「ショートにして」とだけ依頼した場合は、vedit auto VIDEO --preset <youtube|shorts|tiktok|reels|square|podcast|tutorial|clean> を実行します。次に、それが書き出した edl.<preset>.json に対してワークフロー A の手順 3~5 を実行し、結果が単なるトリミングではなく 編集された 状態になるようにします。追加のアスペクト比には --formats 9:16、サムネイルには --thumbs を使用します。複数のファイルを同時に指定するとバッチ処理になります:vedit auto *.mp4 --preset shorts。

ブランドキット: 動画、作業ディレクトリ、または ~/.vedit/ の隣に brand.json が存在する場合、自動カット/自動適用でフォント、色、ロゴ、イントロ/アウトロ、音楽、LUT、スペル修正を自動適用します。ユーザーがブランディングについて言及した場合、examples/brand.example.json から作成することを提案してください。

ワークフローの選択

ユーザーが持っているものワークフロー
生のトーク / チュートリアル / vlog 映像A. 映像を編集
長尺動画でショート/リール/TikTok を作りたいA、次に B. ショート
2つ以上のカメラまたはマイクを使ったポッドキャスト / インタビューC. マルチカム、次に A
写真(またはクリップ)+ スキット/ストーリー/解説のアイデア + 音声をつけたいD. ストーリーモード
ファクトリールチャンネル(brand.json + stories/ フォルダーあり)、または自分の写真/クリップから Juan Fact a Day のようなリールを作りたいE. ファクトリールキット

重要な情報(ターゲットプラットフォーム/アスペクト比、トーンなど)が不足している場合は、最大1~2つの質問をしてください。それ以外の場合は適切な選択をし、何を選んだかをユーザーに伝えてください。


A. 映像を編集する

  1. 分析: vedit analyze raw.mp4(複数ファイルの場合: vedit analyze a.mp4 b.mp4 --names main broll1)。これにより raw.edit/ に以下が作成されます。
    • transcript.main.txt: これをすべて読んでください。行の例: [0:12.34 → 0:15.10] #120-135 text。{um} はハードフィラー、(like) はソフトフィラー、⏸ 2.1s pause はポーズ、⚠ possible flubbed take はすぐ後に繰り返される文を示します。
    • frames/overview_main_*.jpg: これらの画像を読んで、画面上の内容(フレーミング、Bロールの瞬間、スクリーンレコーディングか顔か)を把握します。
  2. ドラフト: vedit autocut raw.edit --punchin 1.12(話している人の場合)、または --aspect 9:16 を追加します。これにより raw.edit/edl.json が書き込まれ、無音、ハードフィラー、フラブドテイクが削除されます。
  3. 実際の編集者のようにリファインする。トランスクリプトを使用して edl.json を編集します。
    • ヒューリスティックで見逃された、とりとめのない話、繰り返しポイント、脱線、誤った開始をカットします。ベストテイクを保持します。ソフトフィラーは、それが単なるフィラーである場合にのみ削除します。
    • フック を強力にします:ベストラインが遅れて登場する場合は、短いティーザークリップを先頭に移動することを検討します。
    • "words": [first, last] 範囲(正確、自動パディング)を使用します。非発話部分には "in"/"out" 秒を使用します。
    • ポリッシュを追加:ジャンプカットへのパンチイン、overlays(タイトル、Bロール、画像、効果音)、audio.music、color。すべてのフィールドについては references/edl.md を参照してください。
  4. プレビュー: vedit render raw.edit/edl.json --preview、次に vedit frames <preview.mp4> --every 3 として シートを読んで フレーミング、キャプション配置、オーバーレイを確認します。修正して再レンダリングします(キャッシュされたクリップは再利用されます)。
  5. 最終: vedit render raw.edit/edl.json(複数のプラットフォームに投稿する場合は --formats 9:16,1:1 を追加)。
  6. 公開キット(クリエイターはこれを気に入ります)。raw.edit/publish.md を記述します。
    • タイトル候補3つ:好奇心と明確なベネフィットを組み合わせ、60文字以内。
    • 説明文:フック2行、要約、リンクプレースホルダー、ハッシュタグ。
    • チャプター: 最終レンダリングの前に "chapters": [{"at": {"word": ["main", N]}, "title": "..."}] を edl.json に追加します。レンダラーが <出力>.chapters.txt をYouTube形式で書き出します。
    • サムネイル: vedit thumbs raw.mp4 を実行し、candidates_sheet を読んで、最も表情豊かなフレームを選び、次に vedit thumbs raw.mp4 --pick N --title "3-5 WORDS" を実行します。
  7. ユーザーに、.mp4、.srt、チャプター、サムネイル、publish.md がどこにあるか、ビフォーアフターの長さ、そして何をなぜカットしたかを数行の箇条書きで伝えます。

B. 長尺動画からショートを作る

分析後、トランスクリプト全体を読み、20~60秒の 自己完結型 の瞬間を3~5つ選びます。強力なオープニングライン、1つの明確なアイデア、そして見返りや決め台詞を探します。以前の文脈を必要とする瞬間は避けます。それぞれについて、"output": {"aspect": "9:16", "path": "short_N.mp4"}、キャプション pop、"crop_x": "auto"(または vedit frames raw.mp4 --at T --grid で読み取った値。各行 = 0.1)、タイトなカット(ポーズ ≤ 0.3秒)、フック用のタイトルオーバーレイを含む raw.edit/short_N.edl.json を記述します。各瞬間がなぜ機能するかをユーザーに説明します。

C. マルチカムポッドキャスト / インタビュー

  1. vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4 でカメラごとのオフセットが得られます。それを sources に設定します:"cam2": {"path": "cam2.mp4", "offset": 1.234}。信頼度が LOW の場合は、拍手のフレームで確認します。
  2. 各人が個別のマイクを持っている場合:vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8 で speakers.txt(誰が話しているかのタイムライン)が得られます。
  3. main(最高のオーディオ)を分析します。同期されたソースのクリップ時間と単語は main のタイムベース にあり、オーディオは main から自動取得されます。話している人のカメラにカットし、クロストークやリアクションにはワイドショットを使用し、1.5秒未満のショットは避けます。

D. ストーリー / スキットモード(写真 + AI 音声)

  1. ユーザーのアイデアで スクリプト を書きます:短くパンチの効いたライン(各15単語以内)、最初の3秒以内にフック、明確な結末または決め台詞。ラインごとに1人の話者を使用します。スキットの場合、各キャラクターに異なる声とキャプション色を割り当てます。
  2. vedit story grid story.json を実行し、各 grid_sceneN.jpg を 読んで、各キャラクターの顔の focus ポイントを取得します。グリッド上で、x は黄色のラベル、y はシアンのラベルを使用します。
  3. story.json(完全なスキーマは references/story.md にあります)を書きます。キャラクターが話すときはクローズ shot + focus を使用し、ナレーションにはワイドまたは Ken Burns motion を使用します。sfx、title、シーン間の transition: fade、music を追加します。
  4. vedit story voices story.json でラインを合成し、タイミングテーブルを出力します。ペーシングを確認します(ショートは通常 60 秒以内)。
  5. vedit story build story.json --preview、次にフレームを確認し、その後 vedit story build story.json を実行します。

音声:edge は無料で自然、APIキーは必要ありません。vedit tts --list-voices --lang en(フィリピン語: --lang fil)で声を選びます。openai("style" で演技指示)または elevenlabs は、ユーザーがキーを持っていてプレミアム音声を要求した場合のみ使用します。実際の人物の声を勝手に作ったり、実在の人物を模倣したりしないでください。


E. ファクトリールキット(生の写真/クリップ → ブランド化されたファクトリール)

ガイド: templates/fact_reels/README.md。新規チャンネル: vedit reels new DIR。新規動画: vedit reels story DIR NAME。

  1. ユーザーの生ファイル(クリップの場合は vedit frames clip.mp4)を見て、シーンタイプを選びます:image + ナレーション付き card、video + lines(Bロール、ナレーション付き、ミュート)、または lines なしで keep_audio: true の video(ユーザーが話している:実際の声、自動キャプション)。フレーム/トランスクリプトから in/out を選択します。
  2. story.json を書きます:フック → 事実 → 「And did you know?」 → 事実 → ... → コメント/シェア/フォロー、約185単語 ≈ 60秒、1つの流れるナレーション。声が読み間違える可能性のある数字、年、名前には say を使用します。カードテキスト:*stars* = アクセント。
  3. vedit reels build STORY_DIR --only cards を実行し、カードと thumbnail.jpg を 読みます。はみ出すテキストを修正します。
  4. vedit reels build STORY_DIR --preview、フレームを確認し、最大品質でビルドします。すべての事実を検証し、ソースを caption.txt に記述します。

編集判断(何が良い動画を作るか)

  • ペーシング: YouTube のトーキングヘッドでは、ポーズを約 0.3~0.45 秒にカットします。ショートではさらにタイトに(約 0.2~0.3 秒)。決め台詞や感情的なビートの後は呼吸の余地を残します(そのクリップに "pad": [0.1, 0.6])。
  • ジャンプカットを隠す: パンチイン(1.0 ↔ 1.10–1.15)を交互に使うか、Bロールにカットすることで隠します。スクリーンレコーディングではすべてのカットにパンチインしないでください。判読性が損なわれます。縦方向にする場合は、代わりに "fit": "blur" または "pad" を使用します。
  • キャプション: ショート/リールでは pop、長尺やチュートリアルでは clean、背景が複雑な場合は box を使用します。ブランド名や聞き間違えられた用語は captions.replace で修正します。
  • オーディオ は動画の半分です。normalize は常にオンにします(ソーシャル/YouTube では −14 LUFS)。denoise: true は騒がしい部屋でのみ設定します。音楽は 0.1~0.2 で、ダッキングを有効にします。
  • 常に視覚的に確認 してから完了とし、何を確認したかを伝えます。
  • 長いレンダリング:まず vedit render edl.json --preview --clips 0-10 でスライスをプレビューします。

トラブルシューティング

  • Whisper が「あー」「えー」を見逃した場合:保持するようにプロンプトが設定されていますが、それでも不足している場合は、--model medium を使用するか、ポーズでカットします。
  • 言語が間違っている場合:vedit analyze raw.mp4 --language tl(タガログ語)、es など。
  • キャプションのフォントが間違っている場合:captions.font をインストールされているフォント(Montserrat, Poppins, Arial)に設定するか、.ttf ファイルを SKILL/fonts/ にドロップします。
  • セグメントのレンダリングに失敗する場合:エラーにクリップインデックスが表示されます。その in/out をソースの長さと照合してください。
  • 最終的な ffmpeg コマンドは <workdir>/.render_cache/last_final_cmd.txt に保存されます。

関連スキル