動画の編集内容をJSON形式に集約することで、AIエージェントと人間が同じ編集状態を共有しながら作業できる様になりました。AIはカットや演出の提案・反映・検証を担い、人間は差分などの仕上がりを確認して最終承認を行います。
目指したのは完全自動化ではなく、「編集作業はAIに任せ、作品としての判断は人が持つ」ワークフロー。この記事では、ローカルファーストな動画編集基盤の設計思想と、AIと人間が安全に分担する具体的な制作フローを紹介します。
TL;DR
-
台本や構成案はAIで作れても、字幕の配置、カットのタイミング、素材の挿入、BGMや音量調整といったGUI上の編集作業はAIに任せにくく、動画制作のボトルネックとして残っていた
-
そこで、カット・字幕・演出・素材・BGMなどの編集情報を、スキーマ付きのJSONとして管理。「動画編集」を画面操作だけでなく、AIが扱えるデータ編集へと広げた
-
ブラウザエディターとAIエージェントが同じJSONを読み書きするため、人間の調整とAIによる編集を一つのタイムライン上で行えるようになった
-
AIによる変更は、差分確認・バリデーション・フレーム生成を通して検証できる。人間が細部をすべて手作業するのではなく、AIの編集結果を見て判断する進め方に変わった
-
最終レンダーには人間の承認を必須とし、AIが勝手に完成扱いできない境界を設けた。完全自動化ではなく、作業はAI、作品としての判断は人間が担う設計にした
-
その結果、編集の主導権やこだわりを手放さずに、動画制作の速度を体感できるほど大きく向上させられた
この記事でわかること
- AIに「動画を編集して」と頼めない理由
- 動画編集を「タイムライン操作」から「状態の編集」へ変える
- 人間とAIが同じ編集状態を触れる様にする
- AIに編集権限を渡すと、別の難しさが生まれた
- AIの編集を壊れにくくする仕組み
- 実際の動画制作フロー
- なぜ完全自動化ではなく、人間の承認を残したのか
- 早くなったのはレンダーではなく、判断までの距離だった
動画編集ソフトのGithubリポジトリは公開しています!
ぜひ、チェックしてください。
対象読者・前提
対象読者
- 画面収録やトーク動画のカット・字幕・素材配置を効率化したい人
- AIに動画を編集させたはいいものの、仕上がりの判断や自分らしさは手放したくない人
- AIの提案をGUIでの編集作業で反映する工程に限界を感じている人
- AIエージェントと人間が同じ動画を編集できるワークフローに興味がある人
- 動画編集を、タイムライン操作だけでなくデータとして扱ってみたい開発者
前提
- この記事で扱うのは、既存の動画編集ソフトをAIで操作させる方法ではありません。
- カット、字幕、素材、演出、BGMなどの編集状態をスキーマ付きJSONで管理し、そのデータから動画を組み立てるアプローチです。人間はブラウザ上のエディターから、AIは編集用のインターフェースから、同じ編集状態を変更します。
- AIによる完全自動編集を目指すのではなく、反復的な編集作業はAIに任せ、仕上がりの確認と公開前の承認は人間が担うことを前提としています。対象としているのは、主に画面収録、トーク画面、一本の収録素材を起点に編集する制作フローです。
なぜ「動画編集×AI」は難しいのか
私の中で一番大きかった壁は、ここです。
- 動画編集は、カット・字幕・素材・位置・タイミング・音量など、複数の状態が組み合わさっている
- それらの編集状態は、従来の編集ソフトではGUIやタイムラインの中に閉じている
- AIに「字幕を少し上へ」「この部分を削除して」と頼んでも、どの要素をどう変更するか正確に指定しづらい
- AIが適切な編集案を出せても、人間側が取捨選択できない
企画や台本はAIで効率化できても、カットや字幕調節などの制作工程の後半(編集)は手作業になり、自分のアイデアや考えを編集に反映させるのは難しいという感覚でした。
動画における「状態の編集」とは
このプロジェクトでは、カット、字幕、素材、演出、位置、タイミング、音量などの編集情報を、役割ごとのJSONで管理しています。
- cutplan.json:残す区間・カットする区間
- transcript.json:字幕の文言・表示タイミング・位置・スタイル
- overlays.json:素材、ズーム、ぼかし、注釈、画面レイアウトなどの演出
- bgm.json:BGMの配置・音量・フェード・ダッキング
- chapters.json:YouTube概要欄などに使うチャプター情報
- meta.json:動画タイトルや概要欄の下書き
- shorts.json:ショート動画として切り出す範囲・レイアウト
- thumbnail.json:サムネイルのテキスト・配置・デザイン情報
これにより、動画編集をタイムライン上のドラッグ操作だけでなく、数値や定義を書き換える「状態の編集」として扱えるようになりました。
こうしておくと、今までAIに渡しづらかった「動画そのものの編集」も、
- 自然言語でAIに指示 → 適切なJSONファイルを編集
- 編集結果をエディターで確認
というフローを実施しやすくなります。
やりたい編集を具体的なデータとして共有できることが、AIとの協業を成立させる土台になっています。
人間とAIが同じ編集状態を扱うために
編集情報をJSONファイルで管理したことで、
人間とAIが"同じ動画の状態"を共有
できるようになりました。
人間はブラウザエディターを使い、映像を確認しながらカット境界や字幕位置を直感的に調整します。一方、AIはJSONを読み取り、「字幕を少し上へ移動する」「無音部分をカットする」「この場面にズームを追加する」といった指示を、具体的なデータの変更として反映します。
操作方法は異なりますが、変更する対象は同じです。
- 人間:エディター上で映像を見ながら調整する
- AI:編集状態を読み取り、JSONへの変更案を作る
- レンダラー:更新されたJSONをもとに動画を組み立てる
AIがJSONを変更すると、その内容は起動中のエディターにも反映されます。反対に、人間がエディターで保存した変更も、AIが次に編集状態を読み取るときの前提になります。
また、AIによる変更はすぐに確定させず、差分の確認、データの検証、適用、必要に応じたフレーム確認という順序で進めます。人間とAIが同じ箇所を編集した場合も、差分を確認して、どちらの変更を採用するか判断できます。
ここで重要なのは、人間とAIが同じ操作画面を使うことではありません。GUIとデータ編集という別々の入口から、同じ編集状態へアクセスできることです。
これにより、単純な繰り返し作業はAIへ任せ、人間は映像を見ながら仕上がりを判断する、という分担が可能になりました。
AIに編集権限を渡すことで生まれる副作用
編集情報をJSONとして扱えるようになると、AIにも編集を任せやすくなります。
ただし、ここで「AIが何でも編集できる」状態にしてしまうと、逆に危なくなります。
たとえばAIが、カット範囲、字幕、素材、音量、レイアウト、承認状態まで自由に触れることができると、次のような問題が起きます。
- 必要な発言までカットしてしまう
- 字幕のタイミングや位置を大きく崩してしまう
- 存在しない素材を参照してしまう
- 人間が調整した内容を上書きしてしまう
- 最終確認前なのに「完成したこと」にしてしまう
つまり、AIに編集を手伝わせるには、単に編集ファイルを渡すだけでは不十分でした。
このプロジェクトでは、AIが使える操作をあえて絞るようにしています。
AIには編集状態を読んだり、決められた形式で変更案を出したり、検証可能な範囲でJSONを更新したりする役割を持たせます。一方で、最終的な承認や、動画として本当に成立しているかの判断は人間側に残します。
ここで大事なのは、「AIに全部任せる」ことではなく、「AIが触っていい範囲を決める」ことだと感じました。AIは作業量を減らすための編集者としてはかなり強いですが、編集全体の責任者にしてしまうと、意図しない変更に気づきにくくなります。
だからこそ、AIが使えるツールを制限し、変更内容を検証できる形にして、人間が最後に確認できる余地を残す。この制約があることで、AIを安心して編集フローに組み込めるようになります
AIの編集ガードレール
このプロジェクトでは、AIに編集作業を任せるための入口としてMCPサーバを用意しています。
ただし、MCP経由でCLIの全機能を公開しているわけではありません。
AIが使える操作は、編集状態の取得・検証・限定された編集適用・見た目の確認に絞っています。
MCPでAIに公開している操作
| 操作 | 役割 |
|---|---|
describe |
現在の編集状態を取得する |
validate |
JSONや編集ルールを検証する |
apply |
検証付きで編集パッチを適用する |
frames |
指定時刻のフレームを書き出して見た目を確認する |
materials |
利用可能な素材を確認する |
id-stamp |
編集要素にIDを付け、AIが対象を指定しやすくする |
MCPでAIに公開していない操作
| 操作 | 役割 |
|---|---|
approve |
最終承認は人間の判断として残すため |
render |
承認前に成果物を書き出さないため |
plan |
大きな編集方針の再生成をAI単独で走らせないため |
run |
複数工程をまとめて進める操作をAI単独に渡さないため |
このように、AIには「編集を進めるための道具」は渡しつつ、「完成扱いにする権限」は渡さないようにしています。
具体的には、AIは describe で現在の編集状態を読み取り、apply で検証付きの変更を適用し、validate で構造を確認し、必要に応じて frames で見た目を確認します。
一方で、最終承認やレンダリングはMCPには公開していません。
MCPは、AIに編集権限を渡すためのインターフェースであると同時に、AIが使える操作を制限する境界でもあります。
AIは編集作業に参加できる。でも、完成判断までは持てない
私の場合の動画作成手順(実フロー)
ここでは、私が実際に使っている動画制作フローを書きます。大きく分けると、次の5ステップです。
| フェーズ | やること | 主な作業 |
|---|---|---|
| A.素材作り | ネタ出し、台本作成、動画撮影 | 1, 2 |
| B.初期生成 |
run コマンドで文字起こし・カット案・編集JSONを生成 |
3, 4 |
| C.確認 | エディターでプレビューしながら全体を確認 | 5 |
| D.調節・仕上げ | カット、字幕、素材、音量などを調整 | 6 |
| E.書き出し | 承認後に動画を書き出す | 7 |
-
動画にしたい内容を、まず簡単に台本にする
- 私の場合はここではあまり細かく考えず、「話したいこと」をざっくり書き出して、AIと一緒に具体的なセリフを作っていきます。
-
台本を元に動画を撮影する
- 私の場合はOBSで画面録画をしています。
-
撮影した動画を用意したら、
runコマンドを実行します- ここで、動画編集に必要な初期データをまとめて作成します。たとえば、次のような処理です。
- 音声の文字起こし
- 無音区間の検出
- カット候補の作成
- チャプターやメタ情報の生成
- 編集用JSONの作成
-
plan-effectsコマンドを実行する- ズーム等の演出を提案してもらいます。
-
runが終わったら、エディターを開いて内容を確認-
editorコマンドからlocalhostでエディターを起動します。 - ここで見るのは主に以下の点です。
- カット案が意図通りか
- 字幕が大きくズレていないか
- 不自然に消えている発言がないか
- 動画全体の流れが崩れていないか
-
-
エディターで調整・仕上げ
- 全体の流れを確認したら、エディター上で細かい調整をしていきます。この段階で触るのは、たとえば次のような部分です。
- カット範囲の微調整
- 字幕の位置や表示タイミング
- 素材やテロップの追加
- ズームやぼかしなどの演出
- BGMの音量やタイミング
- チャプターやタイトル案の修正
- 人間はプレビューを見ながら判断し、AIには一括変更や細かい修正を手伝ってもらう。この分担が、実際に使っていて一番効率がよいと感じている部分です。
- AI編集例:
「適した箇所にボカシを挿入して」
-
承認して書き出す
- 最後に、エディターで内容を確認して承認し、動画を書き出します。このプロジェクトでは、編集したらすぐに書き出せるわけではなく、承認のステップを挟むようにしています。
- AIが作ったカット案や、AIが変更した編集内容は便利ですが、最終的に「この動画で出してよいか」を判断するのは人間です。そのため、書き出し前にプレビューを確認し、問題なければ承認してからレンダリングします。
まとめ
- 動画制作の効率化が難しかった理由は、編集ソフトのGUI作業がAIに渡しづらかったから
- 動画を「JSONデータ化」し、各JSONファイルを人間とAIの共通インターフェースにしたことで、単純作業をAIに寄せられた
- 完全自動化ではないけど、人間は企画や内容に集中しやすくなった体感がある
- 編集判断が蓄積されるほど、AIによる動画編集はより自然な形へと昇華できると思う(希望も含めて)
最初はRemotionを使用し、編集後の動画を確認する程度で良いと思っていましたが、手戻りが多く、UXは最悪でした。Remotionが提供しているエディターはプレビューのみ有効で、編集を行うことができなかったため、自作のエディター実装へと舵を切りました。結果として大掛かりな実装にはなりましたが、満足のいくものができています。(紹介できていない機能はまだまだありますが、、)
(最後に)なぜ完全自動化ではなく“協業”を選んだのか
最近は完全に自動で動画を作る試みもあり、実際そのクオリティも上がってきています。
ただ、今はあえて“AIと協業する”スタイルを選んでいます。
一つ目の理由は「自分のこだわりたい部分は自分で決めたい」 からです。
伝えたいことの細かな言い回しや、ズームのタイミング、テンポ感などは、自分のコンテンツのオリジナリティだと思いますし、十人十色の個性が面白さだと思っています。
なので、私は 「AIに任せても良いと思う部分はAIに任せて、自分のこだわりたい部分に集中する」 というスタイルを選んでいます。
これはもちろん完全自動化を否定するものではなく、自分のスタイルに合わせて色々なやり方を試行錯誤すれば良いと思っています。
二つ目の理由は完全に自動で動画を編集させるには技術的ハードルが存在するということです。AIが動画を認識するのは難しく(マルチモーダルであるGeminiは1fpsでの処理であり、動画編集にはまだ粗い)、今現段階では改善の道筋を探している途中です。ゆっくり動画やアニメーションを用いた動画であれば現段階の技術(RemotionやHyperFrames)で十分対応できるかと思いますが、生身の人間の動画ではそう上手くはいきません。もちろんAIの進歩は目覚ましいので、いずれは動画を認識できる様にはなると思います。
私が実際に作った動画編集プロジェクトのリポジトリ
こちらが実際に私が作った動画編集プロジェクトのリポジトリ公開版です!
ぜひ、AIとの協業を体験してみてください。
反響があれば、今後さらに詳しい解説記事も書いてみたいと思います!
FAQ
Q. この方法は従来の動画編集ソフトの代わりになりますか?
A. なります。高度な編集は完備していませんが、巷に溢れている自動化ツールのような編集サイクルの一部ではなく、動画編集を一気通貫で行えるソフトです。
Q. 結局、AIがやってるのはJSON編集だけ?
A. はい、私の運用ではそうです。ただ、ここが重要で、JSON編集に寄せられた瞬間に、AIが得意な領域(テキスト差分・構造編集)になるのがポイントでした。
Q. オリジナリティは無くなりませんか?
A. 私はむしろ逆で、単純作業をAIに逃がせる分、こだわりに時間を使えるようになりました。自分のこだわりたいところはとことんこだわって、AIで単純化できるところは単純化しようというのが今回のテーマです。
Q. AI編集の差分はGUIにどの様に表示されますか?
A. 以下のエディター写真のように、タイムライン上のクリップに差分として表示されます。追加されるクリップをタップすると承認/拒否と個別に選択でき、また一括承認も可能です。これらはcursorのUXを参考にし、Video-as-Codeとしての私なりのアンサーです。

