Communitygithub.com

影片Podcast製作小工具

最小的個人旁白解說影片流程(有聲解說搭配視覺效果,非純音頻Podcast),完全工具無關且預設全自動化——主題 → 研究 ∥ 素材收集 → 腳本 → TTS → 影片 → 4K渲染 ∥ 發布資訊 + 封面。技能定義流程邏輯和自我驗證檢查點;任何TTS後端和任何影片工具(Remotion、HyperFrames、CapCut...)都可運作,且人為監督程度由工作專案的AGENTS.md/CLAUDE.md設定,而非此處。當使用者想要快速製作個人旁白影片且步驟最少時使用,無論是否指定工具堆疊。請勿觸發純音頻Podcast、書面連續內容或大量多格式製作。

影片Podcast製作小工具 是什麼?

這是一個功能強大且高度靈活的AI技能,專為創建個人旁白解說影片而設計。它提供一個完整的7步驟流程,從研究與素材收集,到腳本撰寫、文字轉語音(TTS)、影片製作、預覽檢查,最終產出4K解析度影片及完整的發布套件(包含封面圖片與發布資訊)。此技能的獨特之處在於其「工具無關」的設計理念:不綁定任何特定TTS引擎或影片編輯工具(如Remotion、HyperFrames、CapCut),使用者可自由選擇,並透過專案中的AGENTS.md或CLAUDE.md檔案來設定工作流程與人為介入的程度。 此技能透過三個核心不變原則確保品質:檢查點絕不跳過、音頻是主時鐘、腳本變更會使下游所有項目失效。它支援多種平台,包括Claude Code、Cursor、Codex等。其工作流程包含七個明確步驟,每個步驟都有對應的檢查點以進行品質驗證,並支援疊代開發。預設模式下,所有檢查點均由AI代理自主驗證,但可透過專案設定檔升級為人為審查,以滿足不同專案對品質與控制的需求。此技能也詳盡規範了腳本風格,強調口語化、避免書面用語和空洞的商業術語,以確保旁白自然流暢。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Agents365-ai/video-podcast-maker/tree/HEAD/skills/video-podcast-maker-nano

在你喜歡的 AI 中提問

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

說明文件

影片 Podcast 製作小工具 (Video Podcast Maker Nano)

一個供個人使用的 7 步驟流程:研究 ∥ 素材 → 腳本 → TTS → 音頻檢查點 → 影片 → 預覽檢查點 → 4K 渲染 ∥ 發布套件。無捆綁腳本、無硬編碼後端、無模板。此技能擁有邏輯並預設自主運行;TTS 後端和影片工具則依每個影片選擇(參閱工具選擇(每個影片))。

使其無論工具選擇為何都能運作的關鍵——三個不變原則:

  1. 檢查點絕不跳過——但誰來檢查則由政策決定。 存在三個檢查點:腳本(步驟 2 後)、音頻(步驟 3 後)、預覽(渲染前)。預設檢查者是代理自身(自我驗證,定義於每個檢查點);專案的 AGENTS.md/CLAUDE.md 可將任何檢查點升級為人為關卡——參閱監督政策。
  2. 音頻是主時鐘。 最終影片的持續時間必須與旁白音頻相符,誤差在 ±0.5 秒內(兩者皆使用 ffprobe)。視覺效果需配合音頻長度,反之則否。
  3. 腳本變更會使下游所有項目失效。 編輯腳本 → 重新運行腳本檢查點,然後依序執行 TTS → 音頻檢查點 → 視覺效果 → 預覽檢查點 → 渲染。切勿手動修補時間。

監督政策

預設模式為自主:流程從頭到尾執行,代理執行每個檢查點的自我驗證。工作專案的 AGENTS.md/CLAUDE.md 可透過每行一個設定來覆寫每個檢查點:

  • Checkpoint 1 (script): human — 在步驟 2 後暫停,直到使用者批准腳本。值得這麼做:後期修改腳本需要完整重新執行一次。
  • Checkpoint 2 (audio): human — 使用者在視覺效果前聽取完整音頻。當 TTS 誤讀在後期難以察覺時值得這麼做。
  • Checkpoint 3 (preview): human — 使用者在渲染前審查草稿。對於風格敏感的頻道值得這麼做。

未提及的檢查點保持由代理驗證。專案政策檔案起始於 AGENTS.template.md(位於此 SKILL.md 旁):將其複製到影片專案根目錄作為 AGENTS.md(加上一個 CLAUDE.md 副本給 Claude Code)並填入工具繫結。此技能絕不會在任何地方上傳或發布任何內容——發布套件是磁碟上的檔案;發布始終是人類在此流程外的行為。

工具選擇(每個影片)

在步驟 3 之前,一次性決定 TTS 後端和影片工具,優先順序如下:

  1. 專案繫結優先。 工作專案中已填寫的 AGENTS.md/CLAUDE.md(參閱監督政策)即為使用者的常駐規格——使用它,無需掃描,無需猜測。如果使用者在對話中指名某個工具,則覆寫該檔案。如果政策檔案遺失或仍包含模板佔位符(/absolute/path/to/...),則透過規則 2-3 解決繫結,然後將解析後的值寫回專案政策檔案,以便下次運行時從繫結狀態開始。
  2. 自動檢測已安裝的技能。 掃描對話中可用的技能,尋找能夠執行該工作的技能——影片:包裝了創作工具(Remotion, HyperFrames, CapCut, ...)的技能;TTS:任何包裝了 TTS 引擎的技能。排除端到端流程技能(例如其他 video-podcast-maker 變體,如果已安裝):它們像此技能一樣是流程,而非後端——在此處調用它們會嵌套工作流程並使檢查點數量加倍。找到一個合適的 → 使用它;找到多個 → 選擇最符合專案語言和輸出需求的。將選擇記錄在 research.md 中;在最終摘要中呈現。切勿阻塞等待工具確認。
  3. 未找到任何工具。 回退到使用者已有的純 CLI(ffmpeg 加上任何 TTS CLI)並告知使用者——切勿未經提示就安裝新工具。如果 TTS CLI 無法輸出字幕時間,則透過將腳本均勻分割到音頻持續時間來推算提示時間,並在檢查點 2 標記此近似值。如果使用者指定的工具缺失或無法滿足最低能力要求,則告知使用者並降至規則 2,而非臨時湊合。

最低能力要求(適用於規則 1-3):TTS 選擇必須產生旁白音頻加上字幕時間;影片選擇必須能匯出一個草稿影片檔案(用於檢查點 3 驗證)和 4K 解析度。即時預覽是額外獎勵,絕不能替代草稿匯出。輔助工作無需選擇:研究使用內建網路搜尋,靜態圖片/封面則使用影片工具的靜態圖片匯出或任何圖片工具,持續時間檢查使用 ffprobe。如果 ffmpeg/ffprobe 缺失,則報告並停止——±0.5 秒的不變原則無可協商,且不能為了維持運行而跳過它。

工作目錄佈局

一個影片的所有成品位於 videos/{name}/ 中({name} = 小寫英文,連字號分隔)。音頻/時間檔案的名稱會根據所選後端調整;重要的是檔案集:

videos/{name}/
├── research.md          # 步驟 1 — 事實 + 來源
├── podcast.txt          # 步驟 2 — 旁白腳本
├── podcast_audio.wav    # 步驟 3 — 旁白音頻   (名稱依後端而定)
├── podcast_audio.srt    # 步驟 3 — 字幕時間  (或後端的等效格式)
├── assets/              # 步驟 1 — 圖片/BGM + sources.md(每個素材的來源 + 授權)
├── video-project/       # 步驟 5 — 影片工具產生的任何內容
├── final_4k.mp4         # 步驟 7 — 3840×2160 渲染
├── cover.png            # 步驟 7 — 影片封面
└── publish_info.md      # 步驟 7 — 標題 / 描述 / 標籤 / 章節

工作流程

進入點檢查(步驟 1 之前)。 在專案根目錄(或使用者命名的目錄)尋找 videos/{name}/。如果它已包含先前對話中的成品,則這是疊代——從受影響的最早步驟開始(參閱疊代),不要重新執行步驟 1。僅在無任何成品存在時才從步驟 1 開始。

步驟 1 — 研究 ∥ 收集素材

從一次調查過程中產生的兩個平行輸出(事實和素材來自相同來源):

研究 → research.md。調查主題(網路搜尋、論文、使用者的指示)。提煉到 research.md:事實、數字及其來源。腳本中聲稱的每個數字都必須能追溯到這裡——沒有來源的精確數字是捏造的;刪除它或標明出處。

素材 → assets/。將視覺效果和封面將使用的所有內容收集到 videos/{name}/assets/:每個章節的圖片/插圖/螢幕截圖、品牌標誌、背景音樂。兩個來源,按優先順序:

  1. 使用者提供 — 使用者提供或指向的檔案;複製到 assets/,切勿原地引用。
  2. 自動收集 — 首先尋找官方素材(產品橫幅、規格卡、螢幕截圖),否則使用免費/授權素材集(unDraw SVG、Pixabay/Pexels、OpenMoji / Microsoft Fluent Emoji / Google Noto Emoji、@lobehub/icons 用於品牌標誌)。

在收集時將每個素材的來源 URL + 授權記錄在 assets/sources.md 中(需要歸屬的素材集必須在步驟 7 的影片描述中註明來源)。某個章節沒有合適的素材?不要偽造螢幕截圖——改為對該章節回退到純文字佈局(或通用的免費授權插圖),將此決定記錄在 assets/sources.md 中,然後繼續;在人類模式下可選擇詢問使用者。缺失的素材可以在步驟 5 之前的任何時間添加。

步驟 2 — 腳本 → podcast.txt,然後檢查點 1

僅口語文字,無 markdown。使用 [SECTION:xxx|display-label] 標記將腳本分割成片段(小寫英文名稱,例如 [SECTION:hero|intro])——每個影片片段一個章節。此標記慣例是腳本、TTS 分塊和視覺佈局之間的可攜式合約;任何 TTS/影片工具都可以使用它。標記是結構化元數據:永遠不會被朗讀,也永遠不會作為字幕文字顯示——TTS 和字幕僅使用標記之間的文字。

風格規則(語言無關):參閱腳本風格(語言無關)。

檢查點 1 — 腳本自我審查(強制)。 針對每條腳本風格規則驗證腳本,然後將其章節與 assets/ 進行比對:列出沒有匹配素材的章節,根據上述無素材規則收集或回退,並記錄哪些章節沒有素材。在人為模式下(專案政策),則暫停並將腳本移交——直到使用者明確批准前,不要執行 TTS。音頻、時間和視覺入場都源於腳本;後期修改腳本需要完整重新執行一次。

步驟 3 — TTS

運行所選的 TTS 後端(Azure, Edge, fish, minimax, ... — 無論對話選擇了哪個)。產生:

  • 旁白音頻(WAV/MP3)
  • 字幕時間(SRT 或等效格式,提示文字 = 腳本原樣)

在合成前處理發音,無論旁白語言為何:無法機械推導的品牌/術語讀音(Qwen 讀作其中文品牌名,MoE 逐字母拼讀)應根據後端機制放入別名/音素列表中——切勿放入腳本文字中(否則會洩漏到字幕中)。

步驟 4 — 音頻檢查 — 檢查點 2

代理自我驗證(自主模式):使用 ffprobe 將音頻持續時間與腳本的粗略估算進行比對(依語言語速;僅用於捕獲嚴重錯誤,如靜音或截斷檔案);驗證腳本中的每個品牌/術語令牌都有別名/音素條目(涵蓋性檢查——實際發音正是人類模式檢查點 2 的目的);檢查是否存在指示合成失敗的靜音或裁剪片段(使用 silencedetect/volumedetect)。如果發現問題,修復別名列表缺口並重新合成。在人為模式下,使用者改為聽取完整音頻;誤讀 → 修復別名列表(非腳本),重新合成,重新檢查。

步驟 5 — 製作影片

使用所選工具(Remotion, HyperFrames, CapCut, ...)將視覺效果剪輯到旁白音頻,使用 assets/ 作為素材池。podcast.txt 中的章節標記驅動佈局;字幕提示驅動文字入場。將草稿檔案保留在 videos/{name}/ 中。

步驟 6 — 預覽檢查 — 檢查點 3

代理自我驗證(自主模式):檢查草稿匯出(一個可搜尋的影片檔案——最低能力要求保證了有一個):為每個章節提取一個影格(ffmpeg -ss <mid-section-time> -i draft.mp4 -frames:v 1)並檢查每個影格是否有佈局溢出、缺少字幕、損壞的素材引用;驗證草稿持續時間與旁白音頻的誤差在 ±0.5 秒內。每次修改後修復並重新驗證。在人為模式下,使用者親自審查草稿(如果工具有即時預覽則使用,否則使用草稿匯出);僅在明確確認(「渲染」)時才進行渲染,且每一輪修改都需要重新確認。

步驟 7 — 4K 渲染 ∥ 發布套件

平行運行(渲染是長時間的阻塞工作;發布套件不依賴於它):

  • 渲染 為 3840×2160 → final_4k.mp4。在宣告完成前,驗證持續時間與旁白音頻的誤差在 ±0.5 秒內。
  • 發布套件 → publish_info.md(標題 / 描述 / 標籤 / 章節時間戳——每個章節從其第一個提示的 SRT 時間開始)和 cover.png(如果可用,從影片工具的靜態影格產生,否則使用任何圖片工具;可重複使用 assets/ 中的素材)。publish_info.md 的素材來源章節從 assets/sources.md 複製。

腳本風格(語言無關)

來源: 完整技能的 video-podcast-maker/references/natural-narration.md (反AI風格) + script-polish.md(深度編輯)是規範來源; 此處是語言無關的提煉。先在該處編輯規則,然後鏡像到 此處——不要分支規則並使其漂移。

旁白語言是使用者腳本所使用的任何語言——此流程預設為中文,但以下規則適用於任何語言的口語體。這些規則在檢查點 1 強制執行;大聲朗讀每個章節——如果卡住,請拆分句子。

  • 日常口語散文,非書面散文。 每句一個想法,主詞在前,無嵌套從句,不用 — 或 · 作為連接詞。句子長短交錯;輕微的第一人稱是可接受的。
  • 連接詞替換。 將書面連接詞(此外 / 然而 / 因此 / 總而言之)替換為日常用語,或刪除。刪除列舉式開場白(首先 / 其次 / 最後),直接進入下一個要點。
  • 殺戮清單。 刪除公式化填充詞:企業流行語、「值得注意」、「眾所周知」、「革命性」、「顛覆性」、「無縫」、「讓我們拭目以待」——以及其在旁白語言中的等效詞。
  • 結構性提示。 動詞-名詞殼(「執行最佳化」)→ 具體行動 + 結果(「將審批從三步驟縮減為一步」)。「不是X而是Y」→ 直接陳述Y。三者並列(「同時A、B和C」)→ 僅保留資訊量最大的項目;兩個比三個好。模糊加強詞(「顯著地」)→ 一個數字或可察覺的後果。模糊歸因(「專家說」)→ 具名來源 + 日期,否則刪除句子。標語式結尾(「前景光明」)→ 以具體事實、數字或下一步行動作結。
  • 數字使用阿拉伯數字(86.1, 1.5G, 9B)——字幕是腳本原樣,因此應書寫在螢幕上應顯示的形式。切勿為了修正TTS誤讀而將口語形式寫入腳本;請使用後端的別名/音素層。
  • 數字必須可追溯到 research.md——沒有來源的精確數字是捏造的;刪除它或標明出處。

疊代

  • 腳本已變更 → 重新執行檢查點 1(人為模式下由人類執行),然後從步驟 3(TTS)開始,經過檢查點 2 和 3 直到渲染。切勿手動編輯時間。
  • 音頻已重新合成(相同腳本,不同聲音/語速)→ 重新執行檢查點 2;如果時間沒有偏移,視覺效果可以保留;渲染前重新執行檢查點 3。
  • 僅修改視覺效果 → 編輯並重新執行檢查點 3。
  • 重複使用相同的 videos/{name}/ 目錄。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能