Communitygithub.com

infofilm:資訊圖表解說影片

製作一部旁白解說的資訊圖表影片(通常5–15分鐘),主題為真實事物——系統如何運作、發生了什麼、接下來會怎樣——以1950年代教學卡片新聞片風格呈現,搭配默劇吉祥物、熱情旁白、歌唱廣告插曲,以及與口語同步的程式繪製資訊圖表。

infofilm:資訊圖表解說影片 是什麼?

infofilm 技能用於創建高度風格化的解說影片,將複雜主題轉化為吸引人的1950年代新聞片。它整合了完整的製作流程:從研究與事實查核開始,生成腳本,然後使用 ElevenLabs 進行旁白錄製(附帶逐字時間戳),通過 Suno 創作主題曲、背景音樂和廣告歌,利用 Gemini 生成插圖,最後使用 Remotion 創建與口語精確同步的場景。最終輸出為符合 −14 LUFS 標準的主檔案與 SRT 字幕檔。此技能特別適合 Claude Code 使用者,因為它將 AI 驅動的內容創建與程式化影片渲染相結合,確保可重複的高品質結果。它支援所有主要平台(macOS、Linux、Windows),前提是已安裝 Node.js、pnpm/npm、ffmpeg 和 Python 3,並具備 ElevenLabs 和 OpenRouter 的 API 金鑰。使用者應在請求解說影片、資訊圖表影片、或「像選舉影片那樣」的影片時使用此技能。

相容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/fltman/infofilm/tree/HEAD/skills/infofilm

在你喜歡的 AI 中提問

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

說明文件

infofilm:資訊圖表解說影片 是做什麼的?

使用本技能製作的影片,是一副在深藍色桌面上展開的教學卡片。每張卡片都有標題帶、圖片視窗和說明帶。AI 插圖在視窗中播放,而程式繪製的資訊圖表會在說出它們名稱的那個字時,精準地覆蓋在插圖上。新聞片旁白傳達意義,吉祥物則以默劇方式演繹,從不開口說話。歌唱廣告插曲和結尾歌謠賦予影片節奏。

每個數字、標題和標籤都是根據事實庫以程式碼繪製。圖片從不包含文字。

template/ 中的範本是一個完整、可運作的影片:一個關於閏年的 1 分鐘示範。先搭建骨架,再逐步用你的影片內容取代示範。每個步驟都會渲染影片:缺少元件的場景會顯示其卡片,缺少旁白的場景會使用估計時間。這樣你總能在花錢之前看到整體效果。

基本規則(凌駕於便利性之上)

  1. 花錢:先問。 ElevenLabs、圖片生成和 Suno 下載都需要花費真實貨幣或配額。在每次付費批次前,說明內容、數量及估計成本;--dry-run 會印出這些資訊。等待同意。同意僅涵蓋該批次,除非使用者已給予常態性授權(「你已獲得圖片、語音和音樂的授權」)。在 notes/log.md 中記錄所有授權和成本。
  2. 絕不猜測事實。
    • 每個論述和數字都來自 notes/research.md,後者引用了主要來源。每個螢幕上的數字都來自 video/src/data.ts,後者引用了研究章節。
    • 時事必須透過主要來源驗證。如果無法驗證,則不放入影片,或讓該場景等待;請參閱 references/script.md 中的「等待的場景」。
  3. 文字和數字以程式碼繪製,絕不交給圖片模型。 圖片提示禁止文字,且每張圖片都會被檢查。
  4. 使用者聆聽,Whisper 不聽。 絕不透過轉錄生成的語音來檢查它;Whisper 聽到的錯誤比實際存在的還多。提供使用者一個聆聽頁面。
  5. 公正的諷刺。 諷刺針對的是系統、機器和奇觀,絕不針對任何政黨、團體或個人。在大小、顏色邏輯和動畫上平等對待各方。圖片中不出現真實人物或商標。
  6. 處處使用正確的變音符號(å ä ö é ü …),包括在給子代理的提示中。明確告知每個子代理。
  7. 按字面意思解讀使用者的話。「反烏托邦」、「復古」或「輻射風格」是氛圍,不是道具清單。當一個風格詞可能有多種含義時,先展示提案並在據此建構前獲得確認(參閱 references/style.md)。

流程

按順序執行這些階段。⛔ 步驟是關卡:停下來讓使用者決定後再繼續。

0 · 啟動

  • 確認主題、觀眾、語言、長度(預設約 12 分鐘)和目的。檢查環境中的 ELEVENLABS_API_KEY 和 OPENROUTER_API_KEY、安裝了 claude-in-chrome 擴充功能的 Chrome、Suno 登入狀態,以及 node、pnpm/npm、ffmpeg 和帶有 numpy 和 elevenlabs 的 python3。
  • 建立骨架:
    <skill>/scripts/new_film.sh <dir> --slug my-film --title "My Film" --lang sv --locale sv-SE
    
    這會複製範本、安裝 Remotion、合成音效、建立初始時間線並進行型別檢查。
  • 將決定記錄在 notes/log.md 中,包含日期和決策者。
  • 渲染需要空間。檢查 df -h,當系統磁碟可用空間小於約 20 GB 時,將 OUTDIR 指向一個大磁碟。

1 · 研究 → notes/research.md

  • 撰寫編號章節(## 2.3 · 閾值),每個章節一個事實或一組事實,每個事實附上其主要來源:立法、官方統計、主管機關自己的頁面。
  • 標記任何不確定的事項。對於近期事件,記錄事實有效的日期。
  • 參閱 references/script.md。

2 · 風格與選角 ⛔

  • 重複使用內建風格(奶油色、深藍色和金色墨水;1957 年復古未來主義;Bowlby One SC + Jost + Lobster)或提出替代方案。以 3-7 種風格渲染同一個小型資訊圖表,以便使用者進行同類比較。
  • 選定吉祥物:一個沉默的普通人,有一個標誌性手勢(內建吉祥物會抬起帽子)。避免使用著名吉祥物的手勢,例如眨眼搭配豎起大拇指。
  • 先生成參考肖像(kind: "ref"),然後生成模型表,並在製作任何場景圖片之前獲得批准。
  • ⛔ 使用者選擇風格、吉祥物、手勢和字型。詳情:references/style.md 和 references/images.md。

3 · 腳本 → script/script.md ⛔

  • 結構:開場主題曲、2-4 個段落、段落間的廣告插曲、以及結尾歌謠。每個場景是一張持續 15-40 秒的卡片。
  • 字數預算為分鐘數 × 約每分鐘 127 字(新聞片旁白速度)。
  • 旁白中拼出數字;卡片則顯示確切數字。
  • 避免使用「星期一」這類依賴日期的詞彙。影片的生命週期超過一週。
  • 在任何人付費之前進行審查。 讓一個獨立的子代理根據主要來源檢查腳本和研究報告,將其發現分類為 MUST、SHOULD 和 COULD。修復所有評為 MUST 的問題。審查曾發現研究本身中的錯誤。
  • ⛔ 使用者批准腳本。格式與技巧:references/script.md。

4 · 旁白 ⛔

  1. 使用 voice/design_voice.py preview <tag> 設計 3 種風格(先詢問),讓使用者選擇一種。使用 create 儲存。
  2. 對 2 個代表性場景進行測試朗讀,讓使用者確認語速和發音。
  3. 朗讀所有內容:python3 voice/narrate.py --dry-run,然後詢問,再執行。

稍後編輯某個場景時,僅會對該場景再次收費。詳情與陷阱:references/voice.md。

5 · 音樂(Suno,官方網頁介面,透過 Chrome)

你需要這些提示音:

  • 一個約 20 秒的開場主題曲,在語音模式下作為冷面密集和聲效果極佳
  • 每個段落一個器樂背景音樂,循環播放並在語音下方降低音量
  • 每個廣告插曲一首歌唱廣告歌
  • 一首結尾歌謠,通常是主題曲的翻唱版。

提示時使用美國 1950 年代的慣用語;像「schlager」這類類型詞會將音樂帶往其他方向。使用者喜歡 Suno 的試聽版本,除非他們已經將選擇權交給了你。透過 Suno 自己的選單下載 WAV,提取用於剪輯點的對齊歌詞,並撰寫 music/cuts.json 和 video/src/lyrics.ts。詳情:references/music.md。

6 · 插圖

  • 每個場景一張 21:9 2K 圖片,在 art/shots.json 中命名為 film-Sxx,根據吉祥物參考繪製。成本:python3 art/gen.py --dry-run,然後詢問。
  • 檢查每張圖片是否有文字、重複道具、多餘肢體和錯誤服裝,並重新生成有問題的圖片。
  • 執行 python3 tools/sync_art.py,然後執行 python3 tools/build_timeline.py。詳情:references/images.md。

7 · 場景(Remotion)

  • 自行製作兩個黃金場景:承載影片核心資訊圖表的場景。使其達到標準,並將它們註冊到 golden.ts 中,取代示範中的 TheYear/TheRule。
  • 然後使用 video/CONTRACT.md(填寫其中的 {{…}} 行)將工作分配給 2-3 個並行的子代理建構者。每個建構者都有自己的群組註冊表,並使用連絡表進行驗證。
  • 建構者可以在旁白存在之前就開始工作,因為提示會先依循估計字數,然後再自動轉換為真實字數。如果腳本在他們工作期間發生變化(審查結果下來),使用 SendMessage 將確切的變更內容發送給每個建構者。
  • 自行審查每個場景的提示表。
  • 詳情:references/scenes.md。

8 · 渲染與交付

  • 執行 tools/render.sh。它會重建時間線、檢查提示、進行型別檢查、渲染、套用兩次 loudnorm 達到 −14 LUFS / −1 dBTP,並撰寫 SRT。
  • 驗證每個片段的響度,並從 mp4 中抽檢影格,然後為使用者開啟影片。
  • 詳情:references/render.md。

9 · 修訂

  • 文字變更:僅重新錄製該場景的旁白,然後重建時間線。提示會自動跟隨文字。
  • 圖片變更:重新生成圖片、同步、重建。
  • 音樂變更:編輯 cuts.json。

視覺修正只需重新渲染,不花費任何成本;只有新的旁白、圖片或下載才需要花錢。

範本地圖

路徑內容
film.json標題、代號、語言、地區、段落啟動詞和背景音樂、場景 intro/after 音樂、TTS 模型、輸出目錄
script/script.md手稿:## Sxx · name、<!-- title: -->、<!-- facts: -->、> visual:、旁白
notes/research.md、notes/log.md事實庫;決定與成本
voice/design.json + design_voice.py(語音設計)、narrate.py(旁白 + 時間戳)、listen.py(聆聽頁面)、voice.json
music/suno/*.wav、cuts.json、tools/beats.py(節奏)、tools/suno_lines.py(對齊歌詞 → 行)
art/style.json(外觀、不可清單)、shots.json、gen.py、img/
tools/build_timeline.py、cues.py、lint_cues.py、make_srt.py、sync_art.py、art_sheet.py、unframe.py、make_sfx.py、render.sh
video/src/theme.ts、fonts.ts、timing.tsx(useScene、cue)、data.ts、lyrics.ts、Music.tsx、primitives/(Card、Bits、Film、Jingle、Hemicycle)、scenes/
video/tools/stills.mjs(選定影格的連絡表)、review.mjs(每個場景 N 個影格,多個場景)

已知陷阱及其解決方案:references/pitfalls.md。

相關技能