Communitygithub.com

JohanDuran/video-studio

使用影片工作室(video-studio)外掛製作和編輯影片的固定規則——僅限免費工具(免費版 DaVinci Resolve 21.0.x、HyperFrames 本地渲染、ffmpeg、本地媒體工具箱),絕不改動原始錄製檔、以非破壞性方式工作、將專案檔案保留在工作室資料夾中,以及使用者從其工作室設定檔自訂的規則。在執行任何 DaVinci Resolve、HyperFrames、動畫、音訊、色彩、渲染或短影音任務之前,以及在建議任何工具、升級或付費功能之前,都應該先閱讀此文件。

video-studio 是什麼?

這是一個專為 AI 代理(如 Claude Code、Cursor 或 Codex)設計的規則集,用於指導影片製作與編輯工作流程。其核心原則是以非破壞性、僅使用免費工具的方式進行操作,依賴 DaVinci Resolve 21.0.x 的免費版(避免因後續版本造成 Python 腳本限制)、HyperFrames 的本地渲染以及其他開源工具(如 ffmpeg 和 Kokoro TTS)。該規則明確定義了工作室的資料夾結構,將原始錄製檔設為唯讀,並在建議任何修改之前,要求先預覽音訊/視覺更動。此規則集同時整合使用者特定的「內部規則」與隱私限制(例如「永不顯示」區域),確保 AI 代理的工作流程與使用者的偏好以及付費功能的限制保持一致。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JohanDuran/video-studio/tree/HEAD/plugins/video-studio/skills/editing-rules

在你喜歡的 AI 中提問

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

說明文件

編輯規則

請直接遵循,無需再次詢問。如需了解現有哪些工具及其使用方式,請閱讀 video-toolkit。

0. 設定檔與內部規則

  • 頻道的設定檔位置如 video-toolkit §0 所述:取工作資料夾上層最近的 studio.json;若無,則使用 ~/.video-studio/config.json 中的預設頻道。 找不到 → 提供 /studio-setup。
  • 設定檔中的 house_rules 是使用者自己的決定(例如「不要動麥克風的聲音」)。 它們會覆蓋下方的預設值。當使用者陳述新的固定偏好時,將其以一行簡短文字(附上理由與日期)附加到 house_rules 中,並告知使用者已儲存。

1. 一切都必須免費

  • DaVinci Resolve:免費版,21.0.x。 從不建議升級到 21.1 或更高版本:21.1 將 Python 腳本功能改為僅限 Studio 版, 這會破壞免費版上的 Resolve MCP。
    • 不要提議 21.1 專用的 API 功能(SetSpeed、AddTransition、SetFades、NormalizeAudioLevel、 CreateMulticamClip、AutoAlignClips、output blanking)。應提供替代方案(關鍵幀、Fusion、ffmpeg 或 手動 UI 步驟)。
    • 不要提議僅限 Studio 版的功能(Voice Isolation、Dialogue Leveler、時間/空間降噪、Super Scale、Magic Mask) 而不說明它們是 Studio 版專用。
    • 如果設定檔中的 resolve.edition 是 studio,則 Studio 功能可正常使用;21.0.x 的限制僅在使用者依賴 應用程式內橋接器時才有效。
  • HyperFrames:僅限本地渲染。 使用工具箱的 render_hyperframes 或 npx hyperframes render。
    • 絕不執行 hyperframes cloud render、lambda、cloudrun 或 hyperframes auth login。
    • 絕不使用需要 HeyGen 點數的功能:HeyGen TTS/語音、虛擬角色、media-use resolve --type bgm|sfx (需要 heygen CLI),或任何需要付費的 AI 圖片/音樂/影片生成。請改用工具箱: 使用 speak 生成語音、sfx_search/sfx_generate 處理音效、transcribe 處理逐字稿。
    • 如果 HyperFrames 工作流程步驟需要上述任一功能,請跳過該步驟或使用免費替代方案,並告知使用者。
    • 不要推廣 HyperFrames 桌面應用程式或 hyperframes open:流程是 Claude + CLI 渲染 + Resolve MCP。 網頁版 Studio 預覽僅供使用者自行進行小幅調整。
  • 其他工具: 優先使用已安裝的工具(ffmpeg、Node、Docker)。不要註冊或連接付費服務。
  • 語音: 使用 Kokoro(本地,Apache 2.0 授權)透過 speak 生成,並採用設定檔中的語音與速度。不要為頻道影片 使用非商業用途的 TTS 權重。
  • 轉錄: 使用工具箱的 transcribe(WhisperX),而不是 Resolve 或 HeyGen 的轉錄功能。除非使用者要求,否則不進行說話者分離。
  • 產生的音效/音樂: 使用工具箱的 sfx_generate(Stable Audio Open 1.0)產生,其 Hugging Face 授權已在 /studio-setup 過程中接受。

2. 資料夾結構

<studio>/
  sfx_library/       共享的已產生音效 + index.jsonl(跨影片和頻道重複使用;toolbox.sfx_library)
  recordings/        來自任何來源的原始錄製檔(預設 recordings.folder):唯讀
  _scratch/          沒有專案資料夾的工具箱輸出
  <channel>/         每個頻道一個資料夾
    studio.json      該頻道的設定檔
    <ProjectName>/   每個影片一個資料夾,名稱與 Resolve 專案名稱完全相同
      plan.md, script.json, short.json
      audio/          旁白、混音
      capture/        為此影片製作的螢幕錄製
      transcripts/    每檔逐字稿 + <timeline>.timeline.*(時間軸時間)
      timeline/        擷取的軌道佈局
      animations/     HyperFrames 專案與渲染輸出
      builds/, renders/, audio_preview/

單一頻道的工作室可以直接將 studio.json 和專案資料夾放在 <studio>/ 根目錄下;這樣也行。

  • 當 Resolve 專案開啟時,從 Resolve 取得專案名稱(project_manager get_current);否則與使用者協商決定。 在第一次需要時才建立該資料夾。
  • 絕對不要將專案檔案寫入工作室根目錄、其他頻道的資料夾或原始錄製檔旁邊。

3. 原始錄製檔為唯讀

  • 錄製檔資料夾(recordings.folder)絕對不會被寫入:不覆寫、刪除、重新命名或產生側邊檔。 處理過的媒體會以複製方式放入專案資料夾,然後透過媒體池進行交換。
  • 使用 recordings.mic_audio_stream 進行轉錄。如果錄製檔有額外的音軌(例如桌面音訊、 麥克風的重複音軌),請指出來,未經詢問不要移除或靜音。

4. 除非使用者要求,否則不予變動

  • 音訊: 除非使用者要求,否則不要對使用者的聲音進行 EQ、降噪、壓縮或 normalization。
  • 影像: 除非使用者要求,否則不要進行調色或銳利化。

5. 工作方式

  • 在提交前先預覽: 對於音訊/視覺變更,先將簡短的前後對比樣本渲染到 <project>/audio_preview/(或類似位置),讓使用者決定。
  • 先提議,再套用: 在修改時間軸之前,先展示建議的剪輯點、觸發點和疊加層位置。
  • 疊加層 → Resolve: 在 <project>/animations/ 中建立 HyperFrames 專案,以時間軸幀率的 mov(含 Alpha)格式 渲染,匯入後放置在空的影片軌道上。如果另一個工作階段可能在 animations/ 中作業,請將一次性疊加層 建立為獨立 HyperFrames 專案,放在同層的資料夾中。
  • 人臉安全區: 當有攝影機畫面時,在放置卡片前先測量人臉的位置(使用 ffmpeg 對圖格幀進行取樣); 絕不能遮蓋人臉。
  • 隱私: 絕不顯示 channel.never_show 中的任何內容。螢幕錄製會捕捉螢幕上的一切—— 請在裁剪範圍的起始與結束幀進行檢查。
  • 音效庫: 先搜尋再產生,使用 sfx_mark 記錄使用者的評價,絕不刪除音效庫中的檔案(包括被拒絕的)。 將挑選的音效放置在空的音軌上,絕不能放在 Audio 1。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能