Communitygithub.com

NiJingzhe/promo-video-skill

製作節拍同步的產品宣傳 / 發表影片,從頭到尾有人在流程中把關 – 選擇音樂(Epidemic Sound 的「Create a cut」)、共同設計分鏡、撰寫鏡頭腳本與 ElevenLabs 旁白稿、裁剪回傳的語音錄音檔、最後在 Remotion 中建構影片(three.js 金屬渲染、產品 UI 複現、虛擬鏡頭的推拉搖移、每個剪接點都對拍)。當使用者想要宣傳片、預告片、發表影片、產品搶先看、動態圖形廣告,或要求將影片與音樂同步、生成分鏡加上旁白稿時使用。

promo-video-skill 是什麼?

此技能實現了一個結構化、六階段的端到端流程,用於製作節拍同步的產品宣傳影片,特別適合需要動態圖形廣告、產品預告片或發表影片的情境。核心優勢在於其「人在流程中」的設計:每個階段都產生一個可供人類檢查的產出,確保昂貴的渲染階段僅在前期創意決策(音樂、分鏡、旁白)確定後才進行。技能支援透過瀏覽器自動化工具(如 ego-browser)與 Epidemic Sound(選曲、建立剪輯片段)及 ElevenLabs(生成旁白)整合,但也明確保留了手動操作路徑。透過準確的音訊節拍分析與 Remotion(基於 React 的影片框架)搭配 three.js 渲染,確保畫面切換與音樂節奏精確同步。技能還提供了多個 Python 輔助腳本(音訊分析、導表剪輯、語音切割、審閱 UI),以及一個包含金屬舞台、節拍時鐘、虛擬攝影機等完整 Remotion 專案模板,大幅簡化開發流程。關鍵規範包含使用真實產品素材、以音樂為時間基準、並透過靜止畫格預覽而非直接信任完整渲染來進行效率檢查。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add NiJingzhe/promo-video-skill

在你喜歡的 AI 中提問

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

說明文件

promo-video

一部影片分六個階段製作。每個階段都以人類需確認的產出結束。 不可超前執行:昂貴的階段(建構)只有在前面階段都確定之後才變得便宜,因為每一幀畫面事件都是相對於音樂和語音來擺放的。

一開始先向人類說明計畫一次(README.md 有人類看得懂的版本),然後依序執行各個階段。用他們的語言與他們溝通。將所有專案檔存放在同一個目錄(<project>/)下:包含 audio/、vo/、PLAN.md、elevenlabs.md,以及 Remotion 專案 video/。

#階段你做的事情人類做的事情參考文件
1音樂分析音軌,找出真實節奏與明顯標記在 Epidemic Sound 上選曲、使用 Create a cut 設定長度、給你檔案references/01-music.md
2分鏡提出引導性問題,撰寫 PLAN.md(配合音樂時間的鏡頭表)回答問題、核准references/02-storyboard.md
3旁白稿撰寫台詞 + 標記好的 ElevenLabs 錄音稿在 ElevenLabs 產生語音、傳送檔案references/03-voiceover.md
4裁剪語音開啟 cut_ui.py 處理錄音、分割、調整音量、擺放每個句子在瀏覽器頁面上按句子之間點擊、按下 Done;檢查擺放位置表references/03-voiceover.md
5建構從 template/ 建立 Remotion 專案,一個場景一個場景來,持續以靜止畫格檢查審視靜止畫格 / 草稿渲染references/04-build.md
6審閱 + 打磨渲染、檢查音量、在渲染檔上開啟 review_ui.py、閱讀人類的筆記與幀數、修正、重新渲染在審閱頁面上觀看、在畫面上留下筆記、選擇「已核准」或「需要修改」references/05-review.md

瀏覽器自動化:主動提供,但從不預設

階段 1 與階段 3 在網站上進行(Epidemic Sound、ElevenLabs)。如果瀏覽器自動化的技能或工具可用(例如 ego-browser、Playwright 設定、browser MCP),主動提議由你來做這些部分,並在詢問同意前清楚說明會涉及哪些事項:

  • 帳號:兩個網站都需要帳號(Epidemic Sound 是付費訂閱制,有試用期;ElevenLabs 有免費方案,每月有字數上限)。如果人類還沒有帳號,他們自行註冊:你不可建立帳號。
  • 費用:ElevenLabs 以字數計費;一部 40-60 秒的影片約 600-1000 字,每次重新產生都會再次收費。Epidemic 的下載次數會計入方案用量。告知他們預估花費並先詢問。
  • 登入與付款是人類的責任:將瀏覽器控制權交給人類(例如在 ego-browser 中 task.handOff()),讓他們處理登入、雙重驗證、驗證碼以及任何付款畫面;等他們說完成後再繼續。絕不打人類的密碼,絕不輸入或儲存信用卡資訊,絕不將他們的 API 金鑰貼到頁面或檔案中。
  • 同意後你可以做的事:按商定的風格與 BPM 搜尋/篩選音軌,並開啟候選曲目讓人類試聽(由他們選擇);按下 Create a cut 設定目標長度並下載結果;貼上 elevenlabs.md 的錄音稿、套用他們挑選的聲音與設定、產生一次、下載 mp3。
  • 如果沒有此類工具,或人類拒絕使用:給他們確切的步驟(階段 1 與階段 3 的文件),然後等待檔案。

選擇權始終屬於人類:音樂和聲音都不是由你為他們決定的。

基本規則(從經驗學到的教訓)

  1. 所有展示內容都必須是真實的。 真實的範例網格(將實際 CAD/STEP 檔案細分網格)、程式碼面板中的真實程式碼與 API、從產品自己的前端元件重建的 UI。虛假內容是觀眾唯一會注意到的東西。如果你無法取得真實內容,請說出來並詢問——切勿自行虛構。
  2. 音樂就是時鐘。 測量真實節奏(scripts/music_analyze.py 會擬合真實 BPM;猜測的 BPM 只要有 1.2% 的誤差,就會讓接合點偏移三分之一拍,人類會感覺到不流暢)。所有時間都存在 src/marks.ts 中;場景引入這些時間,絕不硬編碼秒數。
  3. 確認對外展示或昂貴的步驟:音樂檔與語音檔由人類選擇;你絕不能幫他們挑。絕不列印出現在你所拍攝產品中的 API 金鑰或登入令牌。
  4. 用靜止畫格檢查畫面,而不是靠信心:在關鍵標記點(節拍點、剪接點、標誌)渲染幀數並實際檢查,然後再進行完整渲染。完整渲染需要數分鐘;靜止畫格只需要數秒鐘。
  5. 保留舊版本。 當人類要求縮短版本或變體時,複製整個專案目錄,然後編輯拷貝(cp -R video video_short,並將 node_modules 建立符號連結)。
  6. 像剪接師一樣報告:說明了改變了什麼、檔案路徑、要聽/看什麼、以及在哪個時間點。

此技能內含的工具

所有 Python 腳本都透過 uv run 執行(每個檔案中都宣告了相依性;無需額外安裝)。

腳本用途
scripts/music_analyze.py track.wav --out beats.json真實 BPM(擬合)、拍子/小節格線、段落、重拍、靜音間隙
scripts/music_splice.py track.wav out.wav --beats beats.json --keep a:b --keep c:d透過對齊小節的交叉淡入跳接來縮短音軌;驗證接合點
scripts/cut_ui.py take.mp3 --mode cuts --script elevenlabs.md --out vo/cuts.json瀏覽器剪接頁面(波形、逐行顯示腳本、語音 vs 停頓、縮放、復原/重做):人類播放音檔並在每句結尾處點擊,按下 Done,分頁關閉後 cuts.json 就會產生供你使用。--mode marks --beats beats.json 在節拍格線上標記音樂的重拍、衝擊音、斷點
scripts/vo_cut.py take.mp3 --regions vo/cuts.json --out vo/將 ElevenLabs 錄音檔分割成已調整音量的片段 + clips.json(或者如果人類偏好輸入時間點,可使用 --lines N --ends t1,...)
scripts/review_ui.py out/promo.mp4 --out review/review.json [--overlay overlay.json]瀏覽器審閱頁面:上方為監視器,下方為時間軸條(膠片檢視 + 最終混音的波形 + 可選的節拍 / 標記 / 語音線條)。人類可在特定時刻或範圍內留下註記;每條註記都包含確切的幀數;他們最後選擇「已核准」或「需要修改」,然後 review.json 就會產生供你使用
scripts/new_project.sh <dir> [--link-modules path]從 template/ 建立 Remotion 專案(包含金屬舞台、節拍時鐘、VO 混音、虛擬攝影機)
template/tools/mesh.pySTEP/OCC 形狀 -> 精簡網格 + 用於 three.js 的 B-rep 邊緣
template/tools/refold.py清空 OCC 無法讀取的大型 STEP 中繼資料字串
template/tools/variants.py、stages.py網格參數變體 / CAD 筆記本中的每個中間實體(用於「拖動滑桿,模型隨之變化」和「逐格推進」的場景)

需要安裝:ffmpeg、node 20+、uv。對於 headless Chrome 中的 three.js:playwright 的 chrome-headless-shell(new_project.sh 會安裝它)。

相關技能