株式会社ホコサキ

video-useで動画編集を自動化した検証レポート

天京祐輔
天京祐輔
video-useで動画編集を自動化した検証レポート

自然言語で動画編集を指示するだけで、カットもテロップ挿入も自動でやってくれる——そんな触れ込みの browser-use/video-use が GitHub に登場してから、「本当に使えるのか」を試してみたくなったエンジニアは少なくないはずです。

セットアップから「カット→テロップ挿入」の最小フローを実際に動かした検証結果を、うまくいった箇所も詰まった箇所も正直に書きます。
「FFmpeg や MoviePy を自分で書かなくてよくなるか?」という問いに、コードと出力ログを交えながら答えていきます。

video-use の設計思想:「動画を見ない動画編集 AI」という逆張り

video-use は、browser-use チームが GitHub で公開している Claude Code 用の動画編集スキルです。
2026年4月25日時点で GitHub スターは約 4,300、フォークは約 616。
browser-use 本体がウェブブラウザを自動操作するためのフレームワークであるのに対して、video-use は動画編集に特化した「スキル(Agent Skill)」として設計されています。
混同しやすいので最初に整理しておくと、browser-use はブラウザ自動化、video-use は動画編集、別プロダクトです。

このツールの設計で一番面白いのは、 映像フレームをほぼ見ない という点です。
普通「動画 AI」と聞くと、フレームを解析して映像の内容を理解しているイメージがありますよね。
video-use はその逆を行きます。

まず ElevenLabs Scribe で音声を文字起こしし、単語ごとのタイムスタンプ付きテキストを生成します。
それを約 12KB の takes_packed.md というファイルに圧縮して、LLM に渡す。
LLM は映像ではなくこのテキストを読んで編集判断を下し、EDL(Edit Decision List:「何秒から何秒を残す」を記述した台本)を生成します。
最後にその EDL を FFmpeg コマンドに変換して実行する、という二段構えのアーキテクチャです。
MoviePy は使っていません。

この設計には明確な合理性があります。
映像フレームをトークンとして LLM に食わせると、コストと処理時間が跳ね上がります。
音声→テキスト変換に絞ることで、計算コストを大幅に抑えながら「何を話しているか」という情報は拾える。

ただし、この設計の制約は後半の失敗事例に直結します。
映像を見ていない ということは、画面に何が映っているか、表情がどう変わったか、BGM のビートがどこにあるか——そういった視覚・聴覚的な情報は原理的に判断できません。
ここは最初から割り切って使う必要があります。

ローカル環境へのセットアップ:Setup prompt 一発で動くはずが、そうでもなかった話

公式ドキュメントには「Setup prompt をエージェントに貼るだけで全部やってくれる」と書いてあります。
実際に試すと、おおむねその通りなのですが、いくつかハマりどころがありました。

まず必要なものを整理します。

  • uv:Python パッケージマネージャー(pip の代替)
  • ffmpeg:動画処理の実行エンジン(システムにインストール済みであること)
  • ElevenLabs API キー:音声文字起こし(Scribe)に使用
  • Claude Code:エージェント本体(Anthropic のターミナル型 AI)

公式の Setup prompt はこれをそのままエージェントに貼ります。

Set up video-use for me.
Read install.md first to install this repo, wire up ffmpeg, register the skill
with whichever agent you're running under, and set up the ElevenLabs API key
— ask me to paste it when you need it. Then read SKILL.md for daily usage,
and always read helpers/ because that's where the editing scripts live.
After install, don't transcribe anything on your own — just tell me it's
ready and wait for me to drop footage into a folder.

エージェントはこれを受け取ると、リポジトリのクローン・依存パッケージのインストール・スキル登録を順番に実行します。
途中で ElevenLabs API キーを貼るよう求められるので、そこで貼り付ける。
フローとしてはシンプルです。

詰まったのは WSL 環境での ffmpeg パス解決でした。
WSL 上で ffmpeg をインストールしても、エージェントが Windows 側のパスを参照してしまい「ffmpeg が見つからない」と言い出すことがあります。
この場合は以下のように明示的にパスを確認して、必要であればインストールし直すのが確実です。

# WSL 内で ffmpeg のパスを確認
which ffmpeg
# → /usr/bin/ffmpeg などが返ってくれば OK

# 返ってこない場合はインストール
sudo apt update && sudo apt install -y ffmpeg

# 動作確認
ffmpeg -version

もう一つ、uv が入っていない環境だとスキル登録のステップで静かに失敗します。
エラーメッセージが分かりにくいので、事前に uv をインストールしておくのが無難です。

# uv のインストール(公式推奨)
curl -LsSf https://astral.sh/uv/install.sh | sh

# インストール後に確認
uv --version

セットアップ完了後、エージェントが「準備できました。素材フォルダを教えてください」と返してきたら動作確認は完了です。
ここまで来るのに、素直にいけば 15〜20 分程度でした。

「カット→テロップ挿入」を実際に動かす:コードと出力の実態

セットアップが終わったら、素材動画を任意のフォルダに置いてエージェントを起動します。

# 素材フォルダに移動してエージェントを起動
cd ~/footage/seminar_20260420
claude

エージェントに編集指示を渡すと、まず ElevenLabs Scribe で文字起こしが走り、takes_packed.md が生成されます。
このファイルは単語ごとにタイムスタンプが振られたテキスト構造になっていて、概念的にはこんなイメージです(実際のフォーマットは ElevenLabs Scribe の出力仕様に依存します)。

[00:00:03.2] えー
[00:00:03.8] 本日は
[00:00:04.1] お集まり
[00:00:04.4] いただき
[00:00:04.7] ありがとう
[00:00:05.0] ございます
[00:00:07.8] えーと
[00:00:09.3] では
[00:00:09.6] 早速

このテキストを読んだ LLM が EDL を生成し、FFmpeg コマンドに変換して実行する流れです。

ここで プロンプトの粒度 が出力品質に大きく影響します。
曖昧な指示を渡した場合と、具体的な指示を渡した場合で、結果がはっきり変わりました。

曖昧な指示の例:

不要な間を削除して、テロップを入れてください。

これだと「不要な間」の定義が LLM に委ねられます。
結果として、話者が意図的に置いた強調のための間まで削除されたり、テロップの表示タイミングがずれたりしました。

具体的な指示の例:

「えーと」「えー」「あー」などのフィラーワードを含む区間を除去してください。
5秒以上の無音区間でカットし、前後に0.3秒のフェードを入れてください。
テロップは発話テキストをそのまま使い、画面下部中央に白文字で表示してください。
フォントサイズは 48px 相当で、各セグメントの開始から終了まで表示を維持してください。

こちらの指示では EDL の精度が明確に上がりました。
エージェントが生成した EDL の断片はこんな形です。

CUT 00:00:00.000 00:00:03.200  # フィラー除去
KEEP 00:00:03.800 00:00:07.200
CUT 00:00:07.200 00:00:09.300  # 無音区間
KEEP 00:00:09.300 00:00:15.600

これを受けて FFmpeg が呼ばれるログはこのような形で流れます。

ffmpeg -i input.mp4 \
  -vf "drawtext=text='本日はお集まりいただきありがとうございます':fontsize=48:fontcolor=white:x=(w-text_w)/2:y=h-80" \
  -ss 3.8 -to 7.2 \
  segment_001.mp4

ここで実際にハルシネーションが起きた箇所を正直に書きます。

一つ目は 存在しないタイムスタンプの参照 です。
takes_packed.md に記録されていない時刻を EDL に書いてしまい、FFmpeg がエラーを返すケースが複数回ありました。
素材の総尺を超えるタイムスタンプを参照することもありました。

二つ目は テロップの位置指定が FFmpeg コマンドに反映されない 問題です。
「右下に表示」と指示しても、drawtext フィルタのパラメータが前回の実行結果をそのまま使い回すことがありました。

対処として有効だったのは、エラーログをそのままエージェントに貼り直す方法です。

以下のエラーが出ました。原因を特定して修正してください。

[エラーログをここに貼り付け]

なお、素材の総尺は 00:18:32 です。この範囲外のタイムスタンプは使わないでください。

この形で再実行すると、多くのケースで修正されました。
より根本的な対処としては、SKILL.md にハードルールとして制約を追記する方法が効きます。

## HARD RULES
- タイムスタンプは takes_packed.md に存在するものだけを使うこと
- 素材の総尺を超えるタイムスタンプを EDL に含めないこと
- drawtext の座標パラメータは毎回指示から再計算すること

これをスキルファイルに追記しておくと、同じミスの再発は明らかに減りました。
ただし完全にゼロにはならないので、EDL の内容は人間が一度確認する習慣をつけておくのが現実的です。

「どこまで任せられるか」を正直に整理する

一連の検証を通じて、エージェントが自律的に処理できる範囲と、人手が必要な範囲の境界線がかなりはっきりしてきました。

自律処理できた操作はこのあたりです。

  • フィラーワード(えーと・あー等)の検出とカット
  • 指定秒数以上の無音区間でのカット
  • 発話テキストをそのまま使ったテロップの挿入
  • 複数テイクの結合と final.mp4 の書き出し

逆に、人手が必要だった操作はこちらです。

  • テロップのフォント・デザイン・アニメーションの調整
  • BGM のタイミング合わせ・フェードイン・フェードアウト
  • 意図的な「間」の保護(強調のための沈黙をカットしないよう指示する)
  • ハルシネーションした EDL の検証と修正

「映像を見ていない」設計の限界が具体的に出るのは、視覚的・音楽的な判断が必要な操作です。
テロップのデザインを凝らしたい、BGM のビートに合わせてカットしたい、特定の表情のカットを優先したい——こういった要求は、音声テキストだけを読んでいる LLM には原理的に答えられません。

FFmpeg を自分で書く従来のアプローチと比べると、何が変わって何が変わらないかは明確です。
フィラー除去や無音カットのような「ルールベースで決まる処理」は、video-use に任せることで実装コストをほぼゼロにできます。
一方で、drawtext フィルタや concat の細かいオプションを自分で書いていた部分は、エージェントが生成したコマンドを検証・修正する作業に置き換わるだけで、完全に省けるわけではありません。

「FFmpeg を書かなくていいか」という問いへの正直な答えは、 粗編集のルーティン作業は省ける、仕上げのチューニングは省けない です。

Premiere や CapCut との棲み分けで言うと、video-use は競合ではなく前工程の自動化ツールとして位置づけるのが自然です。
長尺のセミナー録画からフィラーを除去して粗編集済みの素材を作る、SNS 用の切り出しを複数パターン自動生成してから人間がレビューする——こういった使い方なら、現時点でも実用に耐えます。
SNS 動画の量産やセミナーの切り出しを頻繁にやっているなら、粗編集の自動化だけでも工数削減の効果は出るはずです。
仕上げの品質にこだわる工程は、引き続き慣れたツールで人間がやる。
その分業が、今の video-use の現実的な使い方だと思います。


株式会社ホコサキは山口県宇部を拠点に、AI 活用支援や業務システム開発に取り組んでいます。
「動画処理の自動化を業務に組み込みたい」「エージェントを使ったパイプラインを検討している」といった相談があれば、気軽にお声がけください。
お問い合わせはこちら

    video-useで動画編集を自動化した検証レポート | 株式会社ホコサキ