Communitygithub.com

i0wU/claude-autocut

AI 影片剪輯工具,專為說話者錄影設計,可在本地端執行。自動智慧剪輯,移除長時間停頓、填充詞與重錄片段,適用於訪談與播客編輯、製作 Reels、TikTok 與 Shorts 的垂直影片、自動生成字幕(SRT 與嵌入字幕),以及動畫播客/卡通模式,讓紙片剪影場景跟隨旁白在說話者上方演出。

claude-autocut 是什麼?

Claude AutoCut 是一款以詞彙級逐字稿驅動的本地影片剪輯工具,完全在使用者的電腦上執行:使用 Whisper (faster-whisper) 進行語音辨識、FFmpeg 處理媒體、Pillow 製作字幕,而卡通模式則依賴 HyperFrames (Node.js) 來渲染動畫。無需 API 金鑰、無需付費服務、不上傳任何資料。支援多種模式:自動編輯(移除停頓、填充詞與重錄片段)、純字幕生成、完整動畫播客(保留原片,在說話者上方加入動畫場景),以及先編輯再動畫的完整流程。其核心特色為保守但智慧的自動剪輯策略,從不刪除未在其他地方出現的否定詞等高影響力片段,並提供詳細的決策報表與人工審核機制,確保剪輯不改變語意。使用者可透過 `overrides.json` 加入自訂剪輯規則,而動畫內容則完全由使用者編寫的分鏡腳本決定。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Claude AutoCut

由詞彙級逐字稿驅動的本地影片剪輯工具。一切都在使用者的機器上執行:語音辨識使用 Whisper (faster-whisper),媒體處理使用 FFmpeg,字幕使用 Pillow,而卡通模式則使用 HyperFrames (Node.js) 來渲染動畫。無需 API 金鑰、無需付費服務、不上傳任何資料。

命令列工具為此技能資料夾內的 scripts/autocut.py。請使用已安裝所需套件(參閱「設定」)的 Python 執行:

python "<技能資料夾>/scripts/autocut.py" <命令> ...

<技能資料夾> 是此技能的基礎目錄(技能載入時會顯示)。

選擇模式

使用者需求模式指令
「剪輯這部影片」、「剪掉停頓」、「移除嗯嗯啊啊」、「清理重錄片段」自動編輯edit 影片 -o 專案
為影片加上字幕,但不剪輯字幕captions 影片 -o 資料夾
在說話者上方加入動畫場景,保留完整錄影完整動畫cartoon init 影片 -o 專案,撰寫分鏡,cartoon render
先剪輯,再為剪輯後的影片加入動畫完整流程complete 影片 -o 資料夾,撰寫分鏡,cartoon render
「卡通」、「動畫播客」,但未說明是否要剪輯用一個問題詢問:保留全部(完整動畫)或先剪輯(完整流程)?

如果需求不明確,請用一個簡短問題詢問要使用哪種模式,並推薦一個。在任何操作之前,請先在該工作階段執行一次 doctor:它會顯示目前機器支援哪些模式。

設定(每台機器一次)

  1. python -m venv .venv 並啟動虛擬環境,然後執行 pip install -r "<技能資料夾>/requirements.txt"。
  2. 將 FFmpeg(ffmpeg 和 ffprobe)加入 PATH。
  3. 僅限卡通模式:Node.js 18+(npx 和 npm)。HyperFrames 0.8.79 會在首次使用時由 npx 下載,且不會自動更新;每個卡通專案都需使用 npm 安裝 GSAP。
  4. 執行 python "<技能資料夾>/scripts/autocut.py" doctor

首次轉錄會下載 Whisper 模型(--model tiny 約 75 MB,small 約 480 MB,為預設值)。當語言已知時請使用 --language;對於難以辨識的音訊,請使用 --model medium 或 large-v3。

自動編輯

python "<技能資料夾>/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 秒的停頓,但絕不全部移除;句子結尾後的停頓會保留較長(可能是為了強調的停頓);
  • 移除填充音和緊接著重錄的不完整片段;
  • 對於同一句的兩個完整版本,依據證據保留較清晰的一個,絕不保留「最後一個」或「最短的」;如果證據相當,則兩者皆保留,並在「待審查」下列出;
  • 保留轉錄遺漏的可聽聲音,並移除 Whisper 在靜音中創造的文字。

高影響力剪輯

若剪輯移除的詞彙未在任何其他地方出現(包括否定詞),則屬於高影響力剪輯。自動規劃絕不會執行此類剪輯;它們只來自 overrides.json(根據使用者要求加入的剪輯)。渲染會暫停,直到每個高影響力剪輯獲得批准。若要批准,請向使用者顯示 decisions.md 中的確切片段和詞彙,獲得明確同意後,執行:

python "<技能資料夾>/scripts/autocut.py" approve 專案 --start 12.0 --end 18.5 --by "user" --reason "要求移除離題內容"
python "<技能資料夾>/scripts/autocut.py" edit input.mp4 -o 專案     # 轉錄結果會重複使用,渲染新版本

切勿記錄使用者未給予的批准。plan 專案 會重新執行分析和規劃,但不進行渲染。

overrides.json(位於專案資料夾)

{"cuts":  [{"start": 12.0, "end": 18.5, "reason": "離題內容"}],
 "keep":  [{"start": 3.0, "end": 4.2, "reason": "這個填充詞是笑點的一部分"}],
 "pauses": {"p04": {"action": "keep"}, "p07": {"keep_s": 0.8}}}

停頓 ID(p04)來自 analysis.md。如需了解決策如何分類,請參閱 references/editing.md。

向使用者回報

閱讀 REPORT.md 和 decisions.md,並簡短告知使用者:剪輯前後的時長、移除了什麼及其原因、「待審查」的項目、驗證是否通過(遺漏的詞彙、保留的否定詞)。請說明您無法聽或看影片:節奏和品味需要使用者透過聲音自行判斷。

純字幕

python "<技能資料夾>/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 影片 -o 專案(完整流程會先執行 edit,然後在剪輯結果上建立卡通專案)。
  2. 閱讀 專案/speech.md(附時間的語音區塊),並撰寫 專案/storyboard.json:場景需涵蓋整部影片而無間隙,每個場景包含情境、主持人姿勢與表情、物件以及螢幕文字。結構、目錄(情境、姿勢、表情、物件、轉場)與版面規則請參閱 references/cartoon.md。請在撰寫第一個分鏡腳本前先閱讀它。
  3. 執行 cartoon check 專案,直到回報無錯誤。螢幕文字只能使用已口說的詞彙。
  4. 執行 cartoon snapshot 專案 --at 1.5,8,20,並檢視 reviews/ 中的畫面。
  5. 執行 cartoon render 專案(或使用 --range 0-6 進行快速測試)。輸出:renders/cartoon_vN.mp4,來源音訊原樣複製;renders/cartoon_vN.qc.json 用於檢查時長與音訊。

動畫僅透過您撰寫的分鏡腳本理解語音的意義:程式碼本身無法自行理解語音。

規則

  • 切勿修改或刪除來源影片或較早的渲染結果。
  • 切勿加入會改變語音意義的剪輯;切勿代使用者批准高影響力剪輯。
  • 螢幕文字和字幕只能使用已口說的詞彙。
  • 一次只執行一個渲染;卡通渲染負載較重(請參閱 references/troubleshooting.md)。
  • 切勿聲稱結果「聽起來不錯」:您無法聽到。請回報測量到的結果。

發生錯誤時

請參閱 references/troubleshooting.md(找不到 FFmpeg、模型下載失敗、Node/npx 問題、HyperFrames 問題、記憶體不足、語言錯誤、轉錄品質不佳)。

相關技能