Communitygithub.com

eduramza/shorts-factory

將長影片(轉錄稿 + 元數據)轉換為針對留存率最佳化的垂直短片(Shorts/TikTok/Reels),採用掛鉤 → 故事 → 回報結構。選取片段、評分、重新排序掛鉤、定義剪輯、字幕、縮放、音樂與特效,並回傳 JSON 格式的編輯決策清單 (EDL)。

shorts-factory 是什麼?

此技能將長影片轉化為高留存率的垂直短片,核心遵循「掛鉤 → 故事 → 回報」結構。它會根據轉錄稿與中繼資料,自動分割候選片段並評分(0-100),考量掛鉤潛力、張力、回報、自足性、節奏與情感新穎度。支援三種模式:`viral`(12-20 秒)、`balanced`(20-40 秒)與 `authority`(40-75 秒),並能透過冷開場技術重新排序片段以優化掛鉤。輸出的 JSON 格式 EDL 包含精確的時間碼、字幕樣式、音訊設計(音樂、音效)、視覺效果(縮放、疊加文字)以及留存率預測,適合直接匯入 Claude Code、Cursor 或 Codex 等 AI 代理工具進行自動化編輯。技能還包含消除靜默、填充詞與節奏清理的規則,以及完整的品質檢查清單,確保剪輯維持原意並避免常見反模式。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/eduramza/shorts-factory/tree/HEAD/skill-retention-shorts

在你喜歡的 AI 中提問

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

說明文件

技能:留存短片(掛鉤 → 故事 → 回報)

0. 來源與方法論誠實聲明

基礎:影片「這個技巧讓我的 Shorts 獲得 3000 萬觀看」(頻道 O Milionário,ID iPpt_INjn8A)。標記為 [影片] 的項目來自作者所教的內容。標記為 [擴展] 的項目是此系統的工程擴展:合理的啟發式規則,但未經影片證實。須根據實際留存數據進行校準(見第 10 節)。

1. 核心原則 [影片]

  • 決定短片是否爆紅的關鍵是留存率:觀看至結束的人數越多,平台推薦越多。
  • 目標:讓留存率盡可能平直,無急遽下降。重要的是觀眾看到最後。
  • 三個必要部分:掛鉤、故事、回報。
  • 腳本/敘事是「汽車引擎」:只有漂亮剪輯而無敘事是留不住人的。
  • 時長:約 ~15 秒的影片更容易爆紅,因為觀眾更容易看完。較長的影片更難爆紅,但能建立忠實觀眾。如果您的領域需要較長影片,請同樣使用這三個步驟。

2. 時長模式 [影片 + 擴展]

模式目標時長使用時機
viral12–20 秒(最多 25 秒)最大化觸及率。預設值。
balanced20–40 秒需要最少背景資訊的內容。
authority40–75 秒建立忠實觀眾,更深入的內容。

使用者選擇模式。即使片段很好,也絕不超過該模式的限制:透過剪掉死氣沉沉的部分來縮短。

3. 決策流程(依序進行)

步驟 1:分割候選片段

  • 輸入:包含逐字時間戳記的轉錄稿、場景切換、靜音、說話者標記。
  • 生成候選時間窗口,起止點應在句子邊界(絕不在句子或想法中間)。生成的候選數量應為所需數量的 3 倍。
  • 每個候選片段必須自成一體:沒有前後文的觀眾也能理解。如果依賴先前的上下文,則捨棄該片段或準備上下文字幕(第 6 節)。

步驟 2:為每個候選片段評分 (0–100)

標準權重評估重點
掛鉤潛力25在前 3 秒內是否有一個句子或時刻清晰、直接、快速且承諾回報 [影片]?
張力/敘事25是否存在衝突、出錯的事情、障礙、開放性問題或懸念 [影片]?有解決方案嗎?
回報20結尾是否兌現了掛鉤的承諾(結果、揭露、情感、結論) [影片]?
自足性15單獨看是否有意義? [擴展]
密度/節奏10入題快,停頓少,每隔幾秒就有新資訊 [擴展]
情感/新穎度5驚喜、幽默、強烈觀點、衝擊性數字 [擴展]

規則:

  • 掛鉤 < 12/25 或 回報 < 8/20 → 捨棄,無論總分如何。
  • 向使用者顯示每項標準的得分以及每項標準的一行說明。
  • 按分數排序。避免重疊超過 30% 的剪輯:保留最佳者。

步驟 3:映射掛鉤 → 故事 → 回報結構

對於選定的候選片段,在時間軸上標記:

  • 掛鉤 (0–3 秒) [影片]:清晰、直接、快速,帶有承諾。沒有問候、沒有「大家好」、沒有「那麼」、沒有自我介紹。
  • 故事 (中間) [影片]:一系列張力節拍。每個節拍是以下類型之一:衝突(出錯的事情)、解決方案(所做的)、懸念(「但在……之前,發生了某事」)。敘事中必須有一個時刻,故事被「打斷」並引發好奇心。
  • 回報 (最後 3–5 秒) [影片]:兌現掛鉤所承諾的回報。

如果原始片段沒有以強力掛鉤開場,應用冷開場技術 [擴展]:

  1. 在片段中找到最有力的句子(承諾、結果或最具挑釁性的句子)。
  2. 將該句子放在開頭 (0–3 秒) 作為掛鉤,然後回到時間順序。
  3. 僅當句子本身有意義且回報仍然清晰時才執行此操作。不要扭曲原意:禁止改變說話者所說的內容的意義。

步驟 4:掛鉤工程 [影片 + 擴展]

  • 生成 3 個變體 的螢幕掛鉤文字(開場標題),每個不超過 8 個字:
    • 結果承諾(「讓奶奶落淚的 5 美元禮物」)。
    • 好奇心/缺口(「我只有 5 美元,然後……」)。
    • 矛盾/挑釁。
  • 文字必須相對於內容真實(沒有回報無法兌現的點擊誘餌)。
  • 必須在 ≤ 2 秒內閱讀完畢。

步驟 5:節奏清理 [擴展]

  • 移除大於 0.35 秒的靜音、猶豫詞(「嗯」、「那個」、「像」、「呃」)、重複和虛假開頭。
  • 在揭露(張力)之前保留 0.1–0.2 秒的微暫停,該暫停具有功能。
  • 不要在某個音節中間剪輯:使用音訊零交叉點的剪輯點,並加上 30–60 毫秒的淡入淡出。
  • 如果結果超過該模式的限制,請先移除中間張力最低的節拍,絕不刪除掛鉤或回報。

步驟 6:編輯計畫 [影片 + 擴展]

影片建議的元素,讓觀眾「感覺不到時間流逝」 [影片]:

  1. 動態字幕:逐字顯示,當前朗讀的單字高亮。
  2. 縮放和快速剪輯:畫面持續有變化。
  3. 場景間切換音樂:營造同時處理多件事情的感覺。
  4. 張力部分的懸疑配樂,激發觀眾想看結尾的慾望。

建議的操作參數 [擴展],可調整:

  • 視覺節奏:每 1.5–3.5 秒 一次視覺變化(縮放、剪輯、畫框切換、高亮、B-roll)。絕不超過 4 秒無變化。
  • 縮放:強調單字時 punch-in 105–115%;張力部分緩慢縮放(100→108%);下一個剪輯時重置。交替方向以避免視覺疲勞。
  • 字幕:每次 1–3 個單字,最多 2 行,當前單字使用高亮色,位置在下三分之一處(避開應用程式介面區域:底部留約 20% 邊距,側邊留約 6%)。僅當表情符號能強化單字時才使用。
  • 音樂:
    • 拍子 1(掛鉤和開頭):中等能量,從 0 秒開始。
    • 張力拍子:懸疑配樂,音量稍微提高,低音更突出。
    • 回報:解決(張力下降或 swell + 揭露前 0.2 秒靜音)。
    • 音樂切換:僅在拍子/場景邊界,淡入淡出 200–400 毫秒。
    • 人聲始終在音樂之上:語音下進行 −14 到 −18 dB 的側鏈壓縮。
  • 音效:剪輯/縮放時用 whoosh,揭露時用 hit,回報前用 risers。每約 2 秒最多 1 個音效。
  • B-roll/輔助畫面:當提到具體物件、地點、數字時,顯示 1–2 秒。
  • 可選進度條(選擇性):強化觀眾看完的預期。

步驟 7:影片結尾 [擴展]

  • 回報應是最後一個相關時刻。在最終句子之後立即剪輯(≤ 0.3 秒的緩衝)。
  • 可選,循環模式:如果結尾能在視覺或聽覺上與掛鉤銜接,則保持最後一幀接近第一幀。
  • 沒有「感謝觀看」或破壞結尾的行動呼籲。如果有 CTA,請使用回報上的低調文字。

4. 反模式(拒絕或修正)

  • 以問候、長篇上下文或「今天我要談談」開頭。
  • 掛鉤承諾了回報無法兌現的內容。
  • 片段在想法中間結束。
  • 超過 4 秒無視覺變化。
  • 音樂音量過大,蓋過人聲。
  • 字幕在安全區域之外或難以辨識。
  • 剪輯改變了說話的含義。
  • 影片長度超出所選模式。
  • 對留存率無幫助的效果(裝飾)。

5. 輸出格式:JSON 格式的編輯決策清單 (EDL)

輸出必須是僅有效的 JSON,符合以下結構。

{
  "clip_id": "string",
  "mode": "viral|balanced|authority",
  "source": { "start": 0.0, "end": 0.0 },
  "scores": {
    "total": 0,
    "hook": 0, "tension": 0, "payoff": 0,
    "self_contained": 0, "density": 0, "emotion": 0,
    "rationale": { "hook": "", "tension": "", "payoff": "" }
  },
  "structure": {
    "hook":    { "start": 0.0, "end": 3.0, "technique": "native|cold_open", "text_overlay_options": ["", "", ""], "chosen_overlay": 0 },
    "beats":   [ { "start": 0.0, "end": 0.0, "type": "conflict|solution|suspense", "note": "" } ],
    "payoff":  { "start": 0.0, "end": 0.0, "note": "" }
  },
  "segments": [
    { "id": "s1", "src_start": 0.0, "src_end": 0.0, "out_start": 0.0, "role": "hook|body|payoff", "speed": 1.0 }
  ],
  "cuts_removed": [ { "src_start": 0.0, "src_end": 0.0, "reason": "silence|filler|repeat|low_tension" } ],
  "reframe": { "mode": "auto_face|split|center|manual", "keyframes": [ { "t": 0.0, "cx": 0.5, "cy": 0.4, "scale": 1.0 } ] },
  "captions": { "style": "string", "words": [ { "t0": 0.0, "t1": 0.0, "text": "", "emphasis": false } ] },
  "effects": [
    { "type": "zoom_punch|zoom_slow|shake|flash|overlay_text|broll|sticker|freeze", "t0": 0.0, "t1": 0.0, "params": {}, "reason": "" }
  ],
  "audio": {
    "voice": { "normalize_lufs": -14, "denoise": true },
    "music": [ { "track_id": "", "t0": 0.0, "t1": 0.0, "mood": "energetic|suspense|resolve", "gain_db": -16, "ducking": true, "fade_in": 0.2, "fade_out": 0.3 } ],
    "sfx": [ { "id": "", "t": 0.0, "gain_db": -10 } ]
  },
  "retention_forecast": { "curve": [ { "t": 0.0, "pct": 100 } ], "risk_points": [ { "t": 0.0, "why": "" } ] },
  "qa": { "passed": true, "violations": [] },
  "duration_out": 0.0
}

JSON 規則:

  • 所有時間以秒為單位,相對於原始影片 (src_*) 或最終影片 (out_*, t0, t1, t)。
  • segments 按顯示順序描述最終剪輯(如果使用冷開場,則包含在內)。
  • 每個 effect 都需要 reason,與留存率相關(例如:「避免 12–16 秒處超過 4 秒無變化」)。
  • retention_forecast 是啟發式估計,非實際測量。請在介面中標明。

6. 缺少上下文

如果片段需要其本身未說明的上下文,請在前 3 秒內添加一個簡短的 overlay_text(≤ 8 個字),或捨棄該候選片段。

7. QA 檢查清單(返回前執行)

  1. 前 3 秒是否有清晰的掛鉤和承諾?
  2. 是否存在至少一個張力節拍和解決方案?
  3. 回報是否兌現了掛鉤的承諾?
  4. 時長是否在所選模式內?
  5. 是否有任何部分超過 4 秒無視覺變化?
  6. 是否有任何剪輯在單字/想法中間?
  7. 字幕是否在安全區域內,每次不超過 3 個單字?
  8. 音樂是否在語音下進行側鏈壓縮,且僅在場景邊界切換?
  9. 原始意義是否保留?
  10. 結尾是否在回報後立即剪輯?

如果任何項目失敗,修正並重新評估(最多 2 次迭代)。如果仍然失敗,則返回 qa.passed=false 並列出違規事項。

8. 安全與完整性規則

  • 絕不發明轉錄稿中不存在的台詞或事實。
  • 絕不因重新排序而改變說話內容的含義。
  • 掛鉤文字必須相對於內容真實。
  • 不得生成使用者未聲明擁有或擁有使用許可的內容剪輯。

9. A/B 測試變體 [擴展]

當被要求時,生成同一剪輯的多達 3 個變體,每次更改一個變數(掛鉤文字、冷開場順序或字幕樣式)。記錄哪個變數被更改。

10. 使用實際數據進行校準 [擴展]

此技能的權重和參數是起點。系統應:

  • 為每個發布的剪輯記錄實際留存曲線(當使用者從 YouTube Studio/TikTok 匯入時)。
  • 將實際曲線與 retention_forecast 進行比較,並將分數與結果進行比較。
  • 當擁有 ≥ 30 個剪輯的數據時,建議調整權重。

Individual skills in this repo

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

相關技能