- video-use は browser-useのオープンソーススキルであり、Premiereではない。素材をフォルダに入れ、Agentに話し、
edit/final.mp4を受け取る - モデルは動画全体を見ない。主に読むのは ElevenLabs Scribe が出す単語単位の文字起こしを、約12KBに圧縮した
takes_packed.md - 順序は固定。洗い出し → 平易な方針 → 了承 → EDL → ffmpegでレンダリング → カット点の自己検査。最大3ラウンド
- Claude Code、Codex、Hermes、OpenClaw に接続できる。リポジトリ全体をスキルディレクトリへシンボリックリンクし、横に
ffmpegとELEVENLABS_API_KEYを置く - 語り、チュートリアル、インタビューに向く。絵だけのモンタージュは文字起こしが薄い。複雑なカラーはタイムラインソフトに残す
「えーとを切って」と入力欄に打っても、Agentがmp4全体を視覚モデルへ渡すだけなら、請求と遅延が先に溢れる。browser-useの video-use は別の道を取る。Claude CodeやCodexのようにコマンドを実行できるコーディングAgentに文字起こしを読ませ、編集決定表(EDL)を書かせ、ffmpegを呼んで書き出させる。リポジトリは100%オープンソースと書いてあり、入口は github.com/browser-use/video-use。本稿は 2026年9月23日時点のリポジトリにある README、install.md、SKILL.md に沿って整理した。コマンドとディレクトリはその日のファイルが正。取得後に変わっていれば、手元の SKILL.md を正とする。
向いている動画を公式は挙げている。語り、モンタージュ、チュートリアル、旅行、インタビュー。決まったメニューはない。必要なのは、最後まで走るAgentセッションと、文字起こしのあとのレンダリングを途中で眠らずに担う一台。
video-useは何を切っているか
タイムラインは開かない。元のテイクを一つのフォルダに入れ、そのディレクトリでAgentを起動し、平易な言葉で目標を言う。公式の例は一文。edit these into a launch video。Agentはまず素材を洗い出し、方針を出し、同意を待ってから、素材の隣に edit/final.mp4 を書く。スキルリポジトリ自体はきれいに保ち、生成物を video-use/ に書いてはいけない。
READMEが挙げる完成能力は、ffmpegといくつかの任意のアニメーションエンジンができることであり、新しいモデルではない。
- フィラーと、テイクのあいだの間を切る:
umm、uh、言い直し、無音 - 区間ごとのカラー:暖色のシネマ調
warm_cinematic、ニュートラル強調neutral_punch、または自分のffmpegフィルタチェーン - 各カット点で30msの音声フェード。ポップノイズを避ける
- 字幕の焼き込み:既定は2語、すべて大文字。スタイルは変えられる
- アニメーションを重ねる:HyperFrames、Remotion、Manim、またはPIL。複数のアニメーションはサブAgentで並列
- レンダリング後の自己検査。通ってから見せる。セッション記憶は
project.mdに書き、翌週も続きから切れる
browser-useがウェブを見る発想と同じ種類だ。スクリーンショットでコンテキストを埋めず、モデルに構造化されたテキストを渡す。動画では、そのテキストが文字起こしになる。
モデルはどう動画を「読む」か
SKILLははっきり書く。LLMは動画を視聴せず、動画を読む。単語境界で切るには、2層で足りる。
第1層は常に読む。音声の文字起こし。各ソースファイルを一度 ElevenLabs Scribe にかけ、単語単位のタイムスタンプ、話者分離、それに (laughter)、(applause)、(sigh) のような音声イベントを得る。すべてのテイクを、約12KBの takes_packed.md に圧縮する。フレーズは、無音が0.5秒に達するか、話者が替わると切れる。モデルが主に読むのは、次のような行だ。
## C0103 (duration: 43.0s, 8 phrases)
[002.52-005.36] S0 Ninety percent of what a web agent does is completely wasted.
[006.08-006.74] S0 We fixed this.
第2層は必要なときだけ。画面の合成。timeline_view は、ある時間窓のフィルムストリップ、波形、単語ラベルのPNGを出す。使うのは判断点だけ。曖昧な間、重なったテイクのどちらを選ぶか、カットがきれいか。走査ツールではない。毎秒呼ばない。
公式は素朴な経路と対比している。3万フレーム × 1フレーム約1500 tokenで、およそ 4500万tokenのノイズ。video-useの経路は 12KBのテキストと、少数のPNG。この数字はリポジトリ自身の対照であり、当サイトが計測した請求額ではない。覚えておく方向は一つ。コンテキストに載せるのは単語と時刻であり、抽出フレームではない。
インストール:Claude Code、Codex、OpenClaw
マシンには四つが同時に要る。安定したパスにあるリポジトリのクローン、$PATH 上の ffmpeg と ffprobe、リポジトリ直下 .env の ElevenLabs キー、そして今のAgentが SKILL.md を見つけられること。Python依存は pyproject.toml の requests、librosa、matplotlib、pillow、numpy。コンソールコマンドはなく、スクリプトは python helpers/….py で直接走らせる。
インストールをAgentに任せる
公式は、次の文を Claude Code、Codex、Hermes、OpenClaw、またはシェルを持つAgentに貼るよう勧めている。自分でクローンし、依存を入れ、スキルを登録し、必要なとき一度だけキーを求めてくる。
Set up https://github.com/browser-use/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.io の API keys ページ。インストールの確認は timeline_view.py --help と ffprobe -version だけを見る。インストールできた証明のために、本番の一本を文字起こししない。Scribeは回数課金。キーは ~/Developer/video-use/.env に書いたあと chmod 600。エコーせず、コミットしない。
自分でクローンして登録する
自分の手でやるなら、リポジトリの手動インストールに従う。シンボリックリンクするのはディレクトリ全体。helpers/ が SKILL.md の隣にいなければならない。
git clone https://github.com/browser-use/video-use ~/Developer/video-use
ln -sfn ~/Developer/video-use ~/.claude/skills/video-use
# Codex: ln -sfn ~/Developer/video-use ~/.codex/skills/video-use
cd ~/Developer/video-use
uv sync # or pip install -e .
brew install ffmpeg # required; ffprobe comes with it
brew install yt-dlp # optional, only when pulling footage from a URL
cp .env.example .env # ELEVENLABS_API_KEY=...
| Agent | スキルの置き場所 |
|---|---|
| Claude Code | ~/.claude/skills/video-use |
| Codex | ${CODEX_HOME:-~/.codex}/skills/video-use |
| Hermes / OpenClaw / その他 | そのAgentの skills ディレクトリ。名前は video-use のまま。スキルディレクトリがなければ、システムプロンプトで ~/Developer/video-use/SKILL.md を指す |
ffmpeg は4.x以降。静的ビルドでもよい。Linuxはディストリビューションのパッケージを使い、sudoのパスワードを推測しない。HyperFrames、Remotion、Manim は最初のアニメーションスロットを作るときだけ入れ、インストール当日にどれか一つを全体の好みにしない。HyperFramesは現時点で Node.js 22+。yt-dlp も同じ遅延インストール。
更新は git pull --ff-only。シンボリックリンクは次のセッションで新しいコードをそのまま読む。依存一覧が変わったら、もう一度 uv sync を走らせる。
初めての書き出し
入れたあとの作業場所は素材ディレクトリであり、スキルリポジトリではない。
cd /path/to/your/videos
claude # or codex, hermes
最初の一文を「レンダリングを始めて」にしない。これらのテイクを洗い出し、平易な言葉で方針を一つ出して。公式の流れは、問いを尽くし、確認し、実行し、自己検査し、project.md に残す。方針の了承がなければ、切ってはいけない。
普通のセッションは、次のような問いを通る。問いは素材で変わり、固定の一覧はない。動画の種類、目標の長さと画角、雰囲気、必ず残す瞬間、必ず切る瞬間、アニメーションとカラーの要否、字幕の要否。そのあとAgentは4〜8文で形を書く。どのテイクを選び、どこで切り、アニメーション、カラー、字幕、見込みの長さ。同意の返事のあとで、edl.json を書き、区間ごとにカラーをかけ、render.py を呼ぶ。
プレビューは render.py --preview(720p、速い)。自己検査が見るのは完成動画の各カット点の前後約1.5秒の timeline_view に加え、冒頭、末尾、中盤の2〜3か所で、長さは ffprobe で合わせる。失敗したら直し、再レンダリングし、また見る。最大3ラウンド。3ラウンドでも問題が残るときは印を付けて渡し、無限ループにしない。プレビューを見る時点で、自己検査は通っているはず。
プロジェクト側は、ホストされた試用(Browser Use Cloud)と、Browser Use Box で VPS や Telegram から常時開く入口も出している。自分のマシン、または Cloud Mac での経路は上の一式。素材ディレクトリと、登録済みのスキル。
ディレクトリ、スクリプト、EDL
原版は動かさない。セッションはすべて <videos_dir>/edit/ に落ちる。
| パス | 役割 |
|---|---|
project.md |
セッションごとに一段追記する。方針、決定、未了。次回はまずこれを読む |
takes_packed.md |
フレーズ単位の文字起こし。カット点を選ぶとき主に読むテキスト |
transcripts/*.json |
Scribeの生JSON。ソースファイルごとにキャッシュ。ソースが変わっていなければ文字起こしをやり直さない |
edl.json |
カット点、カラー、オーバーレイ、字幕パス、総尺 |
clips_graded/ |
区間ごとに切り出され、カラーと音声フェード済みのクリップ |
animations/slot_* |
各アニメーションスロット自身のソースと書き出し |
master.srt · preview.mp4 · final.mp4 |
完成動画のタイムライン上の字幕、プレビュー、最終版 |
パイプラインは一直線。自己検査はレンダリングへ戻れるが、上限がある。
Transcribe → Pack → LLM reasoning → EDL → Render → Self-Eval
└ if something is wrong, revise, at most 3 rounds
よく使うスクリプトは helpers/ にあり、パスは SKILL.md のあるディレクトリからの相対。
transcribe.py:単一ファイルの Scribe。--num-speakersを付けられ、結果はキャッシュtranscribe_batch.py <videos_dir>:ワーカー4本で並列。テイクが多いときはこれpack_transcripts.py --edit-dir:JSONをtakes_packed.mdにまとめるtimeline_view.py:判断点のフィルムストリップ PNGrender.py <edl.json> -o …:区間を切り出し、結合し、オーバーレイを載せ、最後に字幕を焼く。--previewは720p。--build-subtitlesはついでにmaster.srtを書くgrade.py:プリセット、または--filterで独自チェーン。カラーは切り出しのとき。結合したあとに全体を再エンコードしない
edl.json の形はおおよそ次のとおり。時間とパスは自分の素材から取る。例の秒数を写さない。
{
"version": 1,
"sources": {"C0103": "/abs/path/C0103.MP4"},
"ranges": [
{"source": "C0103", "start": 2.42, "end": 6.85,
"beat": "HOOK", "quote": "...", "reason": "cleanest take"}
],
"grade": "warm_cinematic",
"overlays": [
{"file": "edit/animations/slot_1/render.mp4", "start_in_output": 0.0, "duration": 5.0}
],
"subtitles": "edit/master.srt",
"total_duration_s": 87.4
}
複数テイクから最良の一文を選ぶときは、編集用のサブAgentをもう一つ開く。ファイル順ではなくビート(HOOK、問題、解法……)で組む。開始と終了は単語境界に落とす。構造はローンチ動画、チュートリアル、インタビュー、または自分で考えたものでよく、一種類に固定しない。
壊れるハードルール
SKILLは芸術判断をモデルに任せ、守らないと静かに壊れる12本だけを固定する。下は、切っているときに実際に聞こえ、見えるもの。残り(文字起こしのキャッシュ、並列アニメーション、確認してから切る、生成物は edit/ だけ)は前に書いた。
| ルール | 守らないと見えるもの |
|---|---|
| 字幕はフィルタチェーンの最後 | オーバーレイが字幕を覆い、必ずしもエラーにならない |
区間を切り出してから、ロスレスの -c copy で結合する |
1パスのフィルタグラフは、オーバーレイを足すとき各区間を再エンコードする |
カット点に30msの afade |
カットごとにポップノイズ |
オーバーレイは setpts で第0フレームをウィンドウ開始へ移す |
ウィンドウの途中からアニメーションが再生される |
SRTは完成動画のタイムライン:単語の開始 − 区間の開始 + 区間オフセット |
結合後に字幕が区間ごとずれる |
| カットは単語境界に置き、外側へ30–200ms広げる | 単語の途中を切る。Scribeのタイムスタンプは50–100msずれる。広げはドリフトを吸収するため |
| 単語単位の原文だけ。フレーズモードのSRTも、正規化されたフィラーも使わない | サブ秒の息継ぎが消え、「えーと」を切る信号がなくなる |
ローカル Whisper の SRT は、反パターンと明記されている。遅く、フィラーを正規化して消す。文字起こしはホストされた Scribe で行い、ソースファイルごとにキャッシュする。
素材の扱い
カット点は言葉と息継ぎから来て、画面はそれに付いていく。無音が400ms以上なら、たいてい最もきれいなカット。150–400msのフレーズ境界は使えるが、画面を一目見る。150ms未満は文の途中であることが多く、安全ではない。話者の交代は400–600msの息継ぎを残せる。速いカットは詰め、ドキュメンタリーは緩める。これは好みであり、規則ではない。笑い、オチ、強調は尾を残す。笑い声そのものがビートだ。(laughs) のようなイベントは信号であり、その直前で切らない。
どのカットも、音と画が同時に成立する。音声だけ、または画面だけを直すのは、SKILLが名指しする失敗の仕方。
カラーは区間ごとにかける。まず timeline_view で一フレームを見て、一つだけ直し、また見る。プリセットは出発点にすぎない。語りには warm_cinematic が比較的安全。neutral_punch はコントラストだけ足し、色相は動かさない。none は、カラーに触れなかったときの既定。肌色を試していないなら、スロープを強く引かない。
字幕のつまみは三つ。一行の語数、大文字小文字、下端からの距離。短尺のローンチ動画の既成スタイルは、2語・すべて大文字、Helvetica 18 Bold、白文字に黒縁、MarginV=35。ドキュメンタリーは1文4–7語、通常の大小文字、余白を大きくできる。どちらも字幕は最後に焼き、タイムコードは完成動画の軸。
アニメーションはスロットごとにエンジンを選ぶ。「ウェブっぽい」から Remotion を既定にしない。
- HyperFrames:HTML/CSS/GSAP。製品UIの動き、透明な WebM。スロットディレクトリで
npx --yes hyperframes。Node 22+ が要る - Remotion:Reactを名指ししたとき、または既存の Remotion デザインシステムがあるときだけ
- Manim:数式、状態機械、図の変形。リポジトリに
skills/manim-video/が付く - PIL + PNGシーケンス:カウント、タイプライター、一本のリビール。ローンチ動画の例が使っている経路で、速い
配色とフォントが決まっていなければ、方針の段階で止める。確認してから描く。ナレーションに合わせるカードは、単純なものならおよそ5–7秒、複雑な図は8–14秒。着地は少なくとも1秒止める。出現は三次のイーズアウト。線形にしない。複数のアニメーションスロットは同時にサブAgentを開く。壁時計時間は、最も遅い一本にほぼ等しい。各サブAgentへの指示は自己完結にする。親セッションは見えない。
画角はソースに合わせる。指定があるときだけ変える。よくある目標は、シネマ調 1920×1080@24、画面収録は30fps、縦 1080×1920、正方形 1080×1080。render.py の既定は、受け取ったものを1080pへ縮める。納品比率は、方針の段階で一言聞く価値がある。
自然言語の言い回し
効く言い回しは方針を制約するものであり、ffmpegの代わりにフィルタを書くものではない。同じ流れでそのまま言える文を挙げる。日本語でも英語でもよい。Agentが読むのは意図だ。
- 「文字起こし以外はまだしないで。ファイル名、長さ、セリフの有無を洗い出し、方針を6文で出して。返事を待ってからEDLを書いて。」
- 「これは製品発表の語り。目標は60–90秒、16:9。えーと、あの、言い直しは切る。We fixed this の一文と、そのあとの笑い声は残す。」
- 「2本とも価格の話をしている。言い間違いのないほうを使う。カットは単語の境界に置き、前後に約80ms残す。」
- 「カラーはかけない。字幕もなし。先に
--preview。了承してからfinal.mp4。」 - 「縦型1080×1920。字幕は2語の大文字。アニメーションは5秒のタイトルカード1枚だけ。配色を確認してから作る。」
- 「ソースファイルは差し替えていない。文字起こしをやり直さない。直前の指摘どおり、HOOKのアウト点だけ直す。」
直しは自然言語の往復で行う。方針を決め直し、レンダリングし直し、文字起こしはやり直さない。最終版はプレビューを確認したあとに出す。各セッションの終わりに、project.md へ方針、決定、未了を追記する。次にディレクトリへ入ったとき、Agentは前のセッションを一文で要約し、続けるかを聞く。
使わないほうがよいとき
これはコーディングAgentの上の編集スキルであり、カラーグレーディング台ではない。
- セリフがほとんどない音楽モンタージュ。カット設計は音声境界と無音が主。画面の意図は方針に自分で書く。そうしないと、モデルが主に読むテキストがない。
- キーフレームを手で引き、マルチカメラをリアルタイムで切り替え、精密なセカンダリーカラーをする。これらは Final Cut、Premiere、DaVinci に残す。video-useは粗編集、フィラー除去、字幕の焼き込み、単純なオーバーレイを担当する。完成動画はあとから NLE に入れられる。
- 文字起こしの予算。Scribeが使うのは ElevenLabs の枠。キャッシュがあるのは、二重払いを避けるため。インストール時に長い一本を試すのが、最もよくある無駄。
- 自己検査は試写ではない。カット付近のPNGと波形を抜き、ジャンプカット、ポップノイズ、隠れた字幕を拾う。冗談が面白いか、ブランドカラーが正しいかは保証しない。好みは自分で了承する。
- 権利。編集する権利のある素材だけを扱う。スキルは
yt-dlpと組み合わせて URL を取れる。それは素材の入口であり、著作権を回避する理由ではない。 - キー。置く場所はスキルリポジトリの
.envだけ。素材ディレクトリに書かない。別の場所へ同期されるチャットに貼らない。
長いセッションをCloud Macに置く理由
一本のローンチ動画は、たいてい次の流れになる。一括の文字起こし、方針の往復、720pプレビュー、アニメーションスロットを1〜2本足し、最後に1080p。ffmpegもサブAgentも時間を食う。ノートを閉じるとAgentプロセスも眠り、edit/ は途中のプレビューで止まる。
- セッションを切らない。Cloud Macで
tmuxを開き、その中で Claude Code または Codex を走らせる。回線が切れてもレンダリングは続き、project.mdも残る。 - ツールチェーンは brew。公式の macOS 手順は
brew install ffmpeg。同じマシンに Python、uv、HyperFrames が要する Node 22 がある。レンダリングの途中で Linux へ乗り換え、フィルタ差を探さなくてよい。 - ディスクは素材と一緒に動く。原版と
edit/は、Agentがいるディスクに置く。シンボリックリンクが結ぶのはスキルリポジトリであり、素材ではない。 - コーディング作業と分けてもよいし、一台にまとめたほうが手間は少ない。同じ Mac で、午前は Codex がリポジトリを直し、午後は video-use が発表の語りを切る。どちらも長いセッションで、スリープが怖い。
来週モデルは代わっても、スキルディレクトリと ffmpeg は残る。Agentを Vuncloud Cloud Mac に置き、ノートは preview.mp4 を見て「HOOKをもう2秒短く」と返すだけにする。
FAQ
video-useは編集ソフトですか?
違います。browser-useが公開しているAgentスキルで、リポジトリは github.com/browser-use/video-use です。素材ディレクトリで Claude Code、Codex、Hermes、OpenClaw に話しかけると、Agentが単語単位の文字起こしを読み、EDLを書き、ffmpegで edit/final.mp4 をレンダリングします。タイムライン画面はありません。
どのAI Coding Agentで使えますか?
シェルを実行でき、SKILL.md を読めるAgentなら使えます。公式のインストール説明は Claude Code(~/.claude/skills/video-use)、Codex(~/.codex/skills/video-use)、Hermes、OpenClaw をカバーします。スキルディレクトリへはリポジトリ全体をシンボリックリンクし、SKILL.md だけをリンクしてはいけません。
ElevenLabsは必須ですか?
文字起こしには必要です。公式パイプラインは ElevenLabs Scribe で単語単位のタイムスタンプ、話者分離、笑い声などの音声イベントを取ります。キーはリポジトリ直下 .env の ELEVENLABS_API_KEY に書き、権限は600です。キーがなければ文字起こしできません。インストール確認で文字起こしを試さないでください。Scribeは回数課金です。
モデルは動画全体を画像として見ますか?
常時は見ません。主に読むのは約12KBの takes_packed.md です。判断に迷う間、比較ストリップ、カット点の自己検査のときだけ、timeline_view でフィルムストリップと波形のPNGを出します。公式はフレーム抽出の4500万tokenと、このテキスト経路を対比しています。
完成動画はどこにあり、元の素材は変わりますか?
元ファイルは置いたディレクトリに残ります。文字起こし、EDL、プレビュー、完成動画はその下の edit/ に書き出され、完成動画は edit/final.mp4 です。ハードルールは、セッションの生成物を video-use リポジトリへ書くことを禁じています。方針を平易な言葉で確認するまで、Agentは切ってはいけません。
PremiereやFinal Cutの代わりになりますか?
語り、チュートリアル、インタビュー、ローンチ動画の粗編集とフィラー除去は速いです。複雑なマルチカメラのカラー、精密なキーフレーム、慣れたタイムラインの手触りは NLE に残します。音楽だけ、またはセリフがほとんどないモンタージュは文字起こし層が薄く、画面の意図を自分で言葉にする必要があります。
まとめ
三つ。video-useはコーディングAgentに、フレーム抽出ではなく文字起こしを読ませる。了承する前にレンダリングしてはいけない。完成動画は素材の隣の edit/final.mp4 であり、スキルリポジトリの中ではない。先に ffmpeg、キー、ディレクトリ全体のシンボリックリンクを正しく入れ、最初の一文は方針だけを求める。プレビューが通ってから、カラーとアニメーションを話す。
フィラーと息継ぎは、このパイプラインに任せてよい。好みと権利は手元に残る。マシンを、レンダリングの途中で眠らせない。
編集Agentには、スリープしないMacが要る
ffmpeg、Scribeのキャッシュ、project.md は同じマシンにある。Claude Code や Codex は tmux に入れる。回線が切れても edit/ は残る。