Communitygithub.com

anudeepadi/launch-video-skills

零 API 的 SaaS 產品上市影片製作工具:從產品網站 HTML/CSS 出發,透過 Playwright 擷取畫面,再以 ffmpeg 與本機 Kokoro TTS 合成影片。

launch-video-skills 是什麼?

這是一個專為開發者設計的 AI 代理技能,能夠自動從 SaaS 產品網站擷取品牌資訊、功能與 UI 範例,並生成高品質的上市宣傳影片。它不需要任何外部 API,完全在本地端運作:使用 Playwright 抓取網站內容,以 HTML/CSS 重建 UI 場景,再透過 ffmpeg 與 Kokoro TTS(文字轉語音)合成最終影片。支援 Claude Code、Cursor、Codex 等開發者工具,透過 `npx launch-video-skills` 指令快速入門。整體流程包含六個步驟:從產品網站取得品牌與事實、撰寫腳本與分鏡、編寫 HTML 場景、透過指令反覆檢視與調整、渲染與驗證,最後交付 MP4 檔案。這個技能特別強調真實性——禁止捏造數據、客戶或介面——並提供完整的品質檢查機制,如語音同步驗證、音量檢測與跨 worker 畫面連續性檢查。

相容平台~Claude Code✓Codex CLI✓Cursor
npx skills add anudeepadi/launch-video-skills

在你喜歡的 AI 中提問

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

說明文件

上市影片

渲染器:launch-video-skills npm 套件。完整場景合約:https://github.com/anudeepadi/launch-video-skills#scene-contract

  • npx launch-video-skills setup:每台機器執行一次(安裝 headless Chromium 與 Python 語音套件)。需要 Node 18+、Python 3.10+、ffmpeg。首次執行語音功能時,Kokoro 權重(約 350 MB)與 whisper small.en(約 480 MB)會下載至 ~/.cache/lvk。
  • npx launch-video-skills new <name>:建立 launch-videos/scenes/<name>/index.html 以及旁邊的 launch-videos/kit/ 目錄。
  • npx launch-video-skills render <scene.html> [flags]:輸出至 ./out/。
  • Chromium 下載停滯時 → export LVK_CHROME=/path/to/chrome-headless-shell(可使用本機任何版本的 Chromium)。
  • macOS 上 python.org 的 Python 若 SSL 失敗 → export SSL_CERT_FILE=$(python3 -c 'import certifi;print(certifi.where())')。

好的上市影片與「AI 垃圾」之間的區別,詳見 references/craft.md。在開始分鏡之前,請務必先閱讀該檔案。

步驟

  1. 從實際產品中取得品牌與事實。 使用 Playwright 擷取網站內容。記錄下標題、副標題、功能名稱、網站自身的範例內容(示範討論串、提示詞、程式碼、議題清單)以及號召性用語。讀取計算後的字型樣式(font family、weight、letter-spacing)與背景/文字/強調色的樣板像素色(請注意 CSS 變數可能會過時)。將 Logo SVG 與任何圖片儲存至 launch-videos/scenes/<name>/assets/。僅在字型授權允許重新散布時,才使用網站的字型;否則使用最接近的內建字型(Inter、JetBrains Mono、Space Grotesk)。絕對不要捏造數據、客戶、整合功能或 UI。如果某個項目標示為「計畫中」或「預覽」,請省略或明確標註。如果你無法取得真實的 UI 範例,請停止並說明原因。在場景檔案頂端的註解中放入來源網址與日期。
  2. 先寫腳本,再畫分鏡。 每個鏡頭使用一至兩行簡短文字,取材自網站的文案;總長度 20–40 秒。使用 say 來標註口語形式與原文不同之處(如點號、縮寫:say: 'Build A.I. agents')。5–6 個鏡頭,每個鏡頭一個概念:引發興趣(2 秒內顯示產品或標題)→ 首次使用場景 → 產品實際運作(使用網站自身的範例,透過 HTML 重建真實 UI,絕不使用螢幕截圖)→ 第二項功能 → 三大支柱或運作方式 → 號召性用語與 Logo。低調品牌:music.style: 'ambient',柔和的音效(0.2–0.6)。開發者工具:使用 'pulse' 與敲擊音效。語音可選;純音樂在 X 平台上很常見。
  3. 編寫 launch-videos/scenes/<name>/index.html,搭配 ../../kit/kit.css 與 kit.js。從已建立的範本開始。為鏡頭加上 data-shot="id" 屬性,不要硬編碼 --in / --out。語音行放在 SCENE.voice.lines 中(key、shot、text/say、at/after、pause 節拍)。使用 data-on="key"、data-on="key:word"、data-edge="e" 將節拍與語音對齊。在定義完 SCENE 後呼叫 K.layout(),然後從 K.at/K.end/K.shot 推導出 JavaScript 節拍:打字速度 = 文字長度 / 語音持續時間,在關鍵字詞處觸發游標點擊,從相同的常數取得打字音效提示。onFrame(t) 必須是純函數(只依賴 t)。JavaScript 變換應套用在沒有 CSS 動畫 class 的包裝元素上。避免使用大範圍的 filter: blur、backdrop-filter 或全螢幕混合模式。
  4. 檢視迴圈。 執行 npx launch-video-skills render launch-videos/scenes/<name>/index.html --sheet 1。每一行 <- ASR heard: 都可能是發音錯誤:使用 say 重新拼寫並再次檢查(Whisper 有時會誤判正確的音訊;將這些情況標記出來,讓真人聆聽)。檢查產出的 PNG 影像,留意:文字壓在雜亂背景上、小字體可讀性、空畫面、轉場中的碰撞、打字在鏡頭結束前完成、語法高亮錯誤。使用 --stills t1,t2 進行全解析度檢查。迭代時提供具體的品味回饋(如「太快了」、「不清楚發生了什麼事」),而非一次要求所有修改。
  5. 渲染與驗證。 執行 npx launch-video-skills render launch-videos/scenes/<name>/index.html --workers 4。然後:
    • ffprobe:確認為 h264 + aac 編碼,且時長符合預期。
    • volumedetect:平均音量約 -19 至 -17 dB,最大音量低於 -1 dB。
    • 同步:使用 faster-whisper small.en 搭配逐字時間戳記轉寫最終的 MP4 檔案;每行第一個字的出現時間應與日誌中列印的時間軸相差約 0.2 秒以內。關鍵字詞應與視覺節拍對齊。
    • 連續性:比較各 worker 邊界處的畫面(使用總影格數 / worker 數量)。
  6. 交付。 提供 MP4 檔案路徑。切勿覆蓋先前的剪輯版本(使用 mv -n 或指定新的 --out 路徑)。明確說明語音與音樂是合成而來,且尚未經過人耳確認。提供貼文文案,避免使用「一鍵生成」之類的誇大說法。付費語音服務(ElevenLabs、OpenAI、Google)可透過套件內的 lib/tts.py 抽換;僅在用戶想要更自然的語音才提及其可行性。

Individual skills in this repo

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

相關技能