はじめに
こんにちは!株式会社Sapeetでアルゴリズムエンジニアとして働いている堀ノ内です。
これまでSapeetではClaude DesignをテーマにYouTube Liveを行ったりしてきましたが、もっと世の中にSapeetのことを知ってもらいたい!という想いから、この度YouTube動画制作も始めることにしました!
Sapeetでは「研究室感」「部活感」というキーワードを大切にしています。エンジニアはもちろん全職種においてテクノロジーに興味を持ちつつ、一丸となって物事に取り組むというカルチャーがあり、YouTubeやブログを通じて、こうしたカルチャーも発信していきたいと考えています。
さて、今回の動画は最近よく見かけるNotionやGoogle Docsのような「同時編集エディタの仕組み」をソフトウェアエンジニアに解説してもらおうという企画です!
動画制作は編集が大変だとよく聞きますが、実際にやってみると本当にそうでして、カットを決め、字幕を打ち、扉絵を作って・・・とやることが山ほどあります。そこで今回は、この編集作業をどこまでAIに任せられるのかにチャレンジしてみました。
動画編集をAIに行わせるには動画編集ソフトとAIをMCPで繋ぐなど様々な方法が存在しますが、僕としてはコードで実現出来ないことは世の中に無いと思っており、Claude Codeによる動画編集にトライしてみます!
最終的な細かい詰めの作業は人間がやらないとダメだろうなぁという感覚がありますので、大まかな方針としては、Claude Codeに撮影した動画を渡し、編集を行ってもらい、CapCut(という動画編集ソフト)で読み取れる形式のプロジェクトファイルを作成してもらいます。そして、CapCut上で人間が仕上げをするという流れを想定しています。
※なお本検証は執筆時点のものです。CapCutのアップデートにより内部仕様が変わり、同様の手法が使えなくなる可能性があります。
結果として完成した動画がコチラです!是非ご覧ください!
そして、ここからはClaude Codeがどうやってこの動画を作り上げたのかの裏側に迫ります!
Claude Codeに渡したものと作ってくれたもの
まず、撮影した撮りっぱなし動画を4本と、動画の途中で差し込む説明用のパワーポイントファイル1つをClaude Codeに渡しました。最初の指示は「これらの素材を編集してYouTube動画を作りたいです。素材を適切な長さのカットに切り、つなぎ合わせて、適切な扉絵を追加し、字幕をつけるなどしてください」だけです。
そこからはClaude Codeが主体でヒアリングを行ってくれ、大まかな流れ、テイストや編集後の動画の長さの目安などを確定していきました。
Claude Codeの提案により最終成果物は「CapCutのプロジェクトファイル」に決まりました。Claude CodeはCapCutのプロジェクトファイル(主にjson形式)のフォーマットを細部まで知らないため、一旦僕の方で空のプロジェクトを作成し、そこに編集を加えていく形です。
プロジェクトは実際にCapCutで開くことができ、カット済みの動画、扉絵、説明用スライド、テロップがタイムラインに並んだ状態となります。そしてエクスポートボタンを押すと動画ファイルとして書き出すことができます。
全体の作業の流れ
Claude Codeが行った全体の作業の流れは以下です。
各ステップでやったことは以下の通りです。
- 文字起こし:Whisperを用い、時刻付きで発話の文字起こしを作成
- カット表・字幕表作成:文字起こしを読んで構成を考え、カット表(どの素材の何秒から何秒を使うか)を作成。ポイントとなる発言を選んでハイライト部分を含めた字幕表を作成
- カット位置の調整:切れ目を発話の途中ではなく無音の位置に置き、前後にフェードイン/アウトを付けてノイズを防ぐ
- グラフィック生成:あらかじめ決めた動画のテイストに合わせて扉絵などを作成
- CapCutプロジェクト生成:カット表・字幕表・グラフィックを用いて、CapCutのプロジェクトファイルを生成する
- CapCut上で人間が確認・修正を指示:「12:26への繋ぎが唐突」のように直してほしい箇所を伝える。Claude Codeは2に戻って修正を行い、プロジェクトを作り直す
- CapCut上で人間が手編集:確認と修正指示を繰り返したあと、最後にCapCut上で字幕の細かい文言の修正やBGMを足す
- 手編集の取り込み:CapCut上で人間が行った変更を字幕表に取り込み直し2に戻る
- 人間の確認で十分だと判断できたらエクスポートして完成
6、7、9以外はClaude Codeを中心に自動化しています。2のカット表と字幕表は以下のようなYAMLになっており、Claude Codeが作成してくれます。
# カット表:素材 main の 1545.6〜1566.2 秒を使う
- {type: clip, src: main, in: 1545.6, out: 1566.2, section: exp4}
# 次に章扉(第5章のカード)を差し込む
- {type: card, kind: chapter, chapter: 5}
# 字幕表:[ ] で囲んだ部分がオレンジのハイライト部分
- {src: main, at: 1993.3, dur: 3.7, style: normal, text: "AIに[勝手に上書き]されたら、嫌ですよね"}
ここからは、この流れの中で特に工夫が必要だった部分をピックアップして解説します。
動画をどこで切り、どう繋ぐか
YouTube動画制作において、一番のポイントはカットの位置です。
Claude Codeは文字起こしの単語の内容と時刻から「自然な会話の流れになっている範囲」を決め、その範囲をうまく切り出すようにしながら、無音の箇所を探しカット位置を定めます。
この「無音の箇所で切る」というルールは、最初からあったわけではありません。最初のバージョンは音量が大きい箇所でカットされていたため切れ目でプツプツ鳴っていました。「切る位置は必ず無音の中に置く」とルールを伝えることで、Claude Codeは無音の位置でカットするようになり、かつ安全策として全カット位置にフェードを付けるようになりました。
さらに全カット位置の音量を自動検査するスクリプトを作成し、プロジェクトを生成する前にこのスクリプトが走るため、カット部分が無音であることが担保されます。
字幕は画像ではなくCapCutのテキストで
最初のバージョンでは字幕が画像として扱われており、CapCut上でテキストを人間が編集することができませんでした。そこで、CapCutのテキストとして生成するように伝えることで、人間も編集できるようにしています。
人間による手編集をClaude Codeが作ったカット表や字幕表に取り込む
途中、僕がCapCut上で直接カットや字幕修正を行いました。すると当然、Claude Code側のカット表や字幕表とずれてしまいます。そこで、CapCut上の変更(カットの長さ、字幕の文言、BGMの位置など)をカット表に取り込み直すスクリプトを作ってもらうことで同期を取るようにしました。
これにより「AIが作る → 人間が直す → AIがまた直す」のループが回るようになります。
やってみて分かったこと
AIで動画編集の手間が激減した!やったぜ!
とは残念ながらなりませんでした。AIが編集した動画には
- 話の流れがおかしい、会話が唐突
- カット位置が不自然
- 扉絵などのグラフィックの見た目がイマイチ
- 字幕のサイズが大きすぎたり小さすぎたり、位置がおかしい
といった多くの「違和感」が漂っており、それを検知し修正指示するのは人間なのです。
また、修正指示を行う際は内容だけでなく
- 修正して欲しい箇所の時刻を指定
- 扉絵などのグラフィックの修正についてはスクショを貼って違和感を伝える
といった工夫が必要でした。結局修正指示と修正後の動画の確認を50回以上繰り返し、完成までに10時間程度はかかったと思います。
とはいえ、AIとの動画編集はこれが初回。今回実施したことをスキルやルールとしてまとめておけば、次回以降は大幅に手間が軽減されることが期待されます。
最後に
今回の記事ではYouTube動画編集をAIと一緒にやってみるということにトライしました。
AIを使うことで大幅に楽になったということはありませんでしたが、動画編集におけるAIの能力の現在地を知ることができ、非常に有意義な企画となりました。
このようにSapeetでは、日々AIと一緒に様々なことを試し、AIの活用に取り組んでいます。
もしSapeetに興味を持って頂けた方は、ぜひこちらの採用サイトもご覧ください!
採用サイト
またイベントも開催予定です!是非ご参加ください!
OpenSapeet




