Communitygithub.com

Claude AutoCut

トークヘッド動画のAI編集をローカルで実行。長い間、フィラーワード、撮り直しを自動的にカット。インタビューやポッドキャストの編集、Reels/TikTok/Shorts用の縦型動画、自動字幕(SRTおよび埋め込み)、さらに切り絵アニメーションでナレーションに合わせた動くシーンを作成するアニメーションポッドキャスト/カートゥーンモードを提供。

Claude AutoCut とは?

Claude AutoCut は、単語レベルの文字起こしに基づいてトークヘッド動画をローカル環境で自動編集する AI スキルです。Whisper(高速版)、FFmpeg、Pillow などのツールを活用し、すべての処理をユーザーのマシン上で完結させるため、APIキーや外部サービスは不要で、データがアップロードされることもありません。主な機能として、長い間やフィラーワード(「えーと」「あー」など)の削除、撮り直しのクリーンアップ、インタビューやポッドキャストの編集、縦型動画の作成、さらにカートゥーンモードでは切り絵アニメーションを動画上に重ねるアニメーションポッドキャストを実現します。編集は控えめで、文を切るような「高インパクトカット」は自動では行わず、ユーザーの明示的な承認を必要とします。対応プラットフォームは Claude Code などの AI エージェント環境で、コマンドラインから実行します。最初に `doctor` コマンドで動作環境を確認し、その後 `edit`(自動編集)、`captions`(字幕のみ)、`cartoon`(アニメーション)、`complete`(編集+アニメーション)の各モードを選択して利用します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/i0wU/Claude-AutoCut-Skill/tree/HEAD/.claude/skills/claude-autocut

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

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

ドキュメント

Claude AutoCut は何をしますか?

単語レベルの文字起こしに基づくローカル動画編集。すべての処理はユーザーのマシン上で実行されます:Whisper(faster-whisper)による音声認識、FFmpegによるメディア処理、Pillowによる字幕、そしてカートゥーンモードのみHyperFrames(Node.js)によるアニメーションレンダリング。APIキーや有料サービスは不要で、何もアップロードされません。

コマンドラインは、このスキルフォルダ内の scripts/autocut.py です。必要なパッケージがインストールされたPythonで実行してください(「セットアップ」を参照)。

python "<skill-dir>/scripts/autocut.py" <command> ...

<skill-dir> はこのスキルのベースディレクトリです(スキル読み込み時に表示されます)。

モードの選択

ユーザーの要望モードコマンド
「この動画を編集」「間をカット」「「えーと」を除去」「撮り直しを整理」自動編集edit VIDEO -o PROJECT
動画をカットせずに字幕だけ追加字幕captions VIDEO -o FOLDER
話者の上にアニメーションシーンを配置、録画全体を保持フルアニメーションcartoon init VIDEO -o PROJECT、ストーリーボード、cartoon render
最初に編集し、その後編集済み動画をアニメーション化コンプリートcomplete VIDEO -o FOLDER、ストーリーボード、cartoon render
「カートゥーン」「アニメポッドキャスト」でカットするかどうか不明1回だけ質問:全体を保持(フルアニメーション)または最初にカット(コンプリート)?

リクエストが曖昧な場合は、短い質問でどのモードかを尋ね、おすすめを提案してください。最初に、セッション中に一度だけ doctor を実行します。どのモードがこのマシンで利用可能かを表示します。

セットアップ(各マシンで一度だけ)

  1. python -m venv .venv で仮想環境を作成して有効化し、pip install -r "<skill-dir>/requirements.txt" を実行。
  2. FFmpeg(ffmpeg と ffprobe)をPATHに追加。
  3. カートゥーンモードのみ:Node.js 18以上(npxとnpm)。HyperFrames 0.8.79 は初回使用時にnpxで取得され、自動更新はされません。各カートゥンプロジェクトはnpmでGSAPをインストールします。
  4. python "<skill-dir>/scripts/autocut.py" doctor

最初の文字起こしでWhisperモデルをダウンロードします(--model tiny 約75MB、small 約480MB、デフォルト)。言語が既知の場合は --language を使用し、音声が難しい場合は --model medium または large-v3 を使用してください。

自動編集

python "<skill-dir>/scripts/autocut.py" edit input.mp4 -o edits/my-video [--language en] [--model small]

手順:文字起こし → 分析 → 計画 → レンダリング → 検証(編集結果を再度文字起こしして比較)→ 字幕 → REPORT.md。プロジェクトフォルダに出力:renders/cut_vN.mp4(クリーン編集)、renders/final_vN.mp4(埋め込み字幕付き)、captions_vN.srt、decisions.md(削除されたすべての区間とそのタイプ、理由)、analysis.md、verify_vN.json。既存のファイルは上書きされません。新しいバージョンが作成されます。ソース動画は読み取り専用です。

自動計画の動作(意図的に控えめ):

  • 最初の単語前と最後の単語後の無音をトリミング。
  • 0.7秒より長いポーズを短縮するが、完全には削除しない。文の終わり後のポーズはより長く保持する(強調のためのポーズの可能性)。
  • フィラーワードと、すぐ後に撮り直された不完全なテイクを削除。
  • 同じ文の完全なテイクが2つある場合、証拠に基づいてよりクリーンな方を保持。「最後」や「最短」は基準にしない。証拠が同等の場合は両方保持し、そのケースを「レビュー対象」にリストアップ。
  • 文字起こしで見逃された聞こえる音を保持し、Whisperが無音の上にでっち上げたテキストを削除。

ゲート(高インパクトカット)

他のどこにも発話されていない単語(否定語を含む)を削除するカットは 高インパクト です。自動計画では決して作成されず、overrides.json(ユーザーのリクエストに基づいて追加するカット)からのみ作成されます。レンダリングは、各高インパクトカットが承認されるまで停止します。承認するには、decisions.md から正確な区間と単語をユーザーに表示し、明示的な同意を得てから次のコマンドを実行します:

python "<skill-dir>/scripts/autocut.py" approve PROJECT --start 12.0 --end 18.5 --by "user" --reason "asked to drop the tangent"
python "<skill-dir>/scripts/autocut.py" edit input.mp4 -o PROJECT     # 文字起こしは再利用され、新しいバージョンがレンダリングされる

ユーザーが与えていない承認を記録しないでください。plan PROJECT は分析と計画をレンダリングせずに再実行します。

overrides.json(プロジェクトフォルダ内)

{"cuts":  [{"start": 12.0, "end": 18.5, "reason": "off-topic tangent"}],
 "keep":  [{"start": 3.0, "end": 4.2, "reason": "the filler is part of the joke"}],
 "pauses": {"p04": {"action": "keep"}, "p07": {"keep_s": 0.8}}}

ポーズID(p04)は analysis.md から取得します。決定がどのように分類されるかについては references/editing.md を参照してください。

ユーザーへの報告

REPORT.md と decisions.md を読み、ユーザーに簡潔に伝えてください:編集前後の長さ、何がなぜ削除されたか、「レビュー対象」の項目、検証が成功したかどうか(欠落した単語、否定語が保持されたか)。自分は動画を聞いたり見たりできないこと、リズムや好みはユーザーが実際に音声を確認して判断する必要があることを伝えてください。

字幕のみ

python "<skill-dir>/scripts/autocut.py" captions input.mp4 -o captions/my-video [--no-burn] [--caption-y 0.75]

captions.srt、captions.json、captioned.mp4 を書き出します。縦型動画は高さの70%の位置に大きな大文字字幕を配置し、横型動画は下部近くに配置します。発話されたすべての単語が順番に一度だけ表示されます。

カートゥーン(フルアニメーションとコンプリート)

  1. cartoon init VIDEO -o PROJECT(コンプリートは最初に edit を実行し、編集結果にカートゥーンプロジェクトを作成します)。
  2. PROJECT/speech.md(タイムスタンプ付きの発話ブロック)を読み、PROJECT/storyboard.json を作成します:隙間なく動画全体をカバーするシーン、各シーンのシナリオ、ホストのポーズと顔、オブジェクト、画面上のテキスト。スキーマ、カタログ(シナリオ、ポーズ、顔、オブジェクト、トランジション)、レイアウトルールは references/cartoon.md にあります。最初のストーリーボードを作成する前にこれを読んでください。
  3. cartoon check PROJECT でエラーがなくなるまで確認。画面上のテキストは発話された単語のみを使用できます。
  4. cartoon snapshot PROJECT --at 1.5,8,20 でフレームを確認(reviews/ フォルダに出力)。
  5. cartoon render PROJECT(または --range 0-6 で簡単なテスト)。出力:renders/cartoon_vN.mp4(ソース音声はそのままコピー)、renders/cartoon_vN.qc.json(長さと音声をチェック)。

アニメーションは、作成したストーリーボードを通じてのみ発話の意味を解釈します。コード自体が発話を理解するわけではありません。

ルール

  • ソース動画や以前のレンダリングを変更または削除しないでください。
  • 発話の意味を変えるカットを決して追加しないでください。ユーザーに代わって高インパクトカットを承認しないでください。
  • 画面上のテキストと字幕は、発話された単語のみを使用します。
  • レンダリングは一度に1つずつ実行します。カートゥーンのレンダリングは負荷が高いです(references/troubleshooting.md を参照)。
  • 結果が「音が良い」と主張しないでください。あなたには聞こえません。測定された内容を報告してください。

問題が発生した場合

references/troubleshooting.md を参照してください(FFmpegの欠落、モデルのダウンロード、Node/npx、HyperFrames、メモリ、言語の誤り、文字起こしの不良など)。

関連スキル