Communitygithub.com

直式Reels影片工作室

一個基礎、可重複使用的腳本,用於製作附旁白的直式(9:16)解說影片,適用於 Instagram Reels、Threads、TikTok 或 YouTube Shorts,以 Remotion 建置並可選用 ElevenLabs 語音。涵蓋研究、使用者批准的腳本草稿、語音生成、動態文字場景、Reels 安全匯出、品質檢查、字幕及封面選項。當使用者要求針對某主題製作短直式影片、Reel 或 Short 時使用。

直式Reels影片工作室 是什麼?

這個技能提供了一個完整且可重複使用的流程,用於自動化製作 30 到 90 秒的直式解說影片。它專為社群媒體平台(如 Instagram Reels、TikTok 與 YouTube Shorts)設計,並以 Remotion 為核心渲染引擎。主要功能包括:研究與事實查核、腳本草稿生成(需使用者批准)、透過 ElevenLabs 或自錄方式生成語音、根據語音時間點製作動態文字場景,以及最終匯出符合平台規範的影片。所有品牌設定(如社交帳號、浮水印、呼籲行動文字、語音偏好)都會在首次執行時引導使用者設定並儲存在 `brand.config.json` 中,確保每次使用都是個人化且符合品牌需求的。此技能支援 Claude Code、Cline 或 Cursor 等 AI 代理,並強制執行嚴格的品質檢查,包含語音響度驗證、影片安全區域校準,以及自動化 QA 腳本,確保輸出的影片品質穩定可靠。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ahmadaryanto/vertical-reels-video-studio/tree/HEAD/skills/vertical-reels-video-studio

在你喜歡的 AI 中提問

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

說明文件

直式 Reels 影片工作室(基礎版)

一個簡單、逐步執行的流程,用於製作一支 30–90 秒的直式影片。

0. 首次執行:詢問使用者自己的設定(絕不使用預設值)

在製作第一部影片之前,如果 brand.config.json 不存在、包含 "configured": false,或仍含有 @yourhandle, 請詢問使用者(一次一個問題)並將答案儲存在 brand.config.json 中:

  1. 社交帳號:Instagram、Threads、TikTok、X(他們使用的平台)。
  2. 浮水印文字(完全按照希望顯示的樣子,例如 @yourhandle 或 @ig / @x)和位置(bottom-center、bottom-left、top-left、top-right)。
  3. CTA 文字及其提及的帳號。
  4. 語音:他們的 ElevenLabs 語音 ID + 模型 + 語言,或「我會自己錄音」。API 金鑰僅作為 ELEVENLABS_API_KEY 祕密變數請求。
  5. 語言和語氣;語音應如何說出他們的名字/帳號。

然後將 "configured" 設為 true。絕不虛構帳號,絕不重複使用他人的帳號(包括此套件的作者),且絕不渲染仍帶有 @yourhandle 的浮水印。

下方的佔位符對應到 brand.config.json:

佔位符設定鍵意義
{{HANDLE}}handles.*使用者自己的帳號
{{WATERMARK}}watermark.text、watermark.position使用者指定的浮水印文字與位置
{{LANGUAGE}}language、tone語音和字幕的語言與語氣
{{VOICE_ID}}voice.voiceId使用者選擇的語音
{{TTS_MODEL}}voice.modelElevenLabs 模型,例如 eleven_multilingual_v2
{{CTA}}cta.text、cta.handle使用者的行動呼籲

API 金鑰總是來自環境變數 ELEVENLABS_API_KEY。絕不列印它,絕不將它寫入會提交的檔案中。

流程

  1. 詢問使用者設定(首次執行) → 1. 主題 → 2. 研究與事實查核 → 3. 腳本草稿 → 4. 使用者批准 →
  2. 語音生成 → 6. 時間點計算 → 7. 建置場景 → 8. 渲染 → 9. Reels 安全匯出 →
  3. 品質檢查 → 11. 封面與字幕 → 12. 交付。 如果使用者要求修改,請回到修改影響的最早步驟(新增一行文字意味著僅需为该行重新生成語音)。

1–2. 主題與研究

  • 每部影片講述一個故事。為初學者撰寫。
  • 針對每個數字、日期、名稱和引述,與原始來源(官方頁面、作者自己的貼文、有日期的螢幕截圖)進行比對。捨棄任何無法驗證的資訊。絕不虛構事實。
  • 將使用的連結保留在簡短的 sources.md 中。

3–4. 草稿,然後等待

  • 針對前 2 秒提供 2–4 個鉤子選項(一個問題或一個令人驚訝的對比)。
  • 撰寫一個時間表:時間 | 螢幕文字 | 旁白。目標為 45–65 秒,絕不超過 90 秒。
  • 停止並將草稿發送給使用者。在使用者批准之前,不要生成音訊或進行渲染。

5. 語音生成

  • 使用 {{VOICE_ID}}(參見 scripts/tts.py)生成已批准的腳本。保留兩種文字:顯示文字(字幕顯示的內容)和 TTS 文字(為語音拼寫,例如 A.I. 代表「AI」,數字寫成單詞)。
  • 聆聽音訊。僅重新生成有問題的句子。絕不在音訊中保留同一行兩次。
  • 如果你沒有 ElevenLabs 帳號,請自己錄音。效果一樣好。

6. 時間點計算

  • 取得單字時間戳記(ElevenLabs 對齊,或對音訊使用 Whisper)並儲存 timing.json:{duration, words:[{w,s,e}], scenes:[{id,start}]}。
  • 動畫在其對應單字被說出的影格開始:frame = Math.round(seconds * 30)。

7. 建置場景 (Remotion,1080 × 1920,30 fps)

  • 深色背景,一種淺色文字顏色,一種強調色。每個節奏一個大字幕。
  • 動態文字: 每個標題單字在對應的語音單字處彈入(縮放 0.6 → 1,帶輕微過衝)。
  • 每 1.5–3 秒在螢幕上顯示一個新內容。數字至少停留 1.5 秒,以便觀眾閱讀。
  • 鉤子文字從第 0 影格開始可見,因此第一個影格可作為靜止畫面。
  • 安全區域:保持文字在 y = 200 和 y = 1500 之間。將 {{WATERMARK}} 文字以小字體放置在使用者選擇的位置(底部預設:y ≈ 1430)。
  • 使用真實的螢幕截圖和標誌並附帶來源註明。將模擬畫面標記為「示意圖」。

8–9. 渲染與匯出

npx remotion render src/index.ts <CompositionId> out/raw.mp4
bash scripts/reels-export.sh out/raw.mp4 out/final-reels.mp4

匯出設定:1080 × 1920,H.264 High ≤ 4.1,yuv420p(電視範圍),BT.709,恆定 30 fps,8–12 Mbps,AAC 48 kHz,+faststart,−14 LUFS / ≤ −1 dBTP。將影片控制在 90 秒以下。

10. 品質檢查(務必在交付前執行)

執行 bash scripts/qa-check.sh out/final-reels.mp4 並查看 scripts/contact-sheet.sh 的輸出。檢查:

  • 音訊:字詞清晰,無中斷,無重複行,響度 ≈ −14 LUFS。
  • 影片:無文字被截斷,無內容超出安全區域,無凍結片段,無空白的第一秒或最後一秒。

在發送任何內容之前修正並重新渲染。

11–12. 封面、字幕、交付

  • 2–4 個封面選項,1080 × 1920 外加 1080 × 1350 的格線版本。一個大字鉤子,一張主圖,最多 2–3 個小數字卡。將關鍵文字保持在中心 1080 × 1080 區域內。
  • 字幕:Instagram(鉤子、內文、{{CTA}}、幾個標籤)、Threads(更短,無標籤)、TikTok。
  • 交付最終的 MP4、一個小型預覽(< 40 MB)、封面、字幕、一個 .srt 檔案和來源清單。

規則

  • 從不張貼、上傳或購買任何東西。將檔案交給使用者。
  • 禁止虛構的事實。為每個來源和展示的每個開源作者提供來源註明。
  • 僅使用你有權使用的音樂、片段和語音。

Individual skills in this repo

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

相關技能