Communitygithub.com

創作者拆解分析

反向工程短影音創作者的影片格式,從真實數據中分析。擷取 TikTok、YouTube Shorts 或 Instagram Reels 個人檔案或貼文連結,取得觀看、按讚與儲存次數,逐字轉錄頂尖影片,測量節奏、停頓與填充詞,將每部影片映射為計時節拍,並撰寫可供拍攝的 teardown.md、包含圖形、動態與音效的 teardown.html 頁面,以及 style.json 供風格編輯技能使用。

創作者拆解分析 是什麼?

這是一個專為 AI 代理(如 Claude Code、Cursor、Codex)設計的進階技能,旨在對短影音創作者進行深度分析與格式拆解。它會自動從 TikTok、YouTube Shorts 或 Instagram 等平台擷取指定創作者的多部影片(包含頂尖表現影片與中位數對照組),並透過 Whisper 或 ElevenLabs Scribe 進行逐字轉錄,測量語速、停頓、填充詞、句子長度等口語特徵。接著,技能會執行視覺分析(鏡頭切換、縮放、臉部構圖、字幕樣式、調色盤)、圖形分析(物件種類、進場動畫)、聲音分析(音效與音樂),最後透過格式檢查(format_check)過濾出不一致的格式,確保分析聚焦於創作者最核心的單一風格。輸出包含一份完整的拆解報告(teardown.md)、可互動瀏覽的 HTML 頁面、供 Claude 閱讀的 look.md,以及一份標準化的 style.json,後者可直接用於「風格編輯」技能,將分析出的風格套用到使用者自己的影片編輯計畫中(包含編輯表與 .srt 字幕檔)。此技能的核心價值在於以數據驅動而非主觀猜測,所有結論都必須附帶對應的觀看數,並透過對照組區分創作者習慣與真正有效的格式特徵,非常適合用於研究、模仿或教學用途。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Conz-Wilts/ai-editor/tree/HEAD/.claude/skills/creator-teardown

在你喜歡的 AI 中提問

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

說明文件

創作者拆解分析 是做什麼的?

路徑:${CLAUDE_SKILL_DIR} 代表包含此 SKILL.md 的資料夾。在 Windows 上,請使用 py 代替以下指令中的 python3。

所有向使用者提出的問題都應使用問題框:呼叫 AskUserQuestion 工具(提供 2-4 個選項,建議選項排第一)。只有在不支援該工具的代理中,才以文字方式提出編號問題。

輸出

creator-teardowns/<handle>/:teardown.md(分析報告)、teardown.html(供使用者檢視的頁面)、look.md(Claude 讀取的內容)、style.json(所有測量數據,用於以此風格進行編輯),以及 ${CLAUDE_SKILL_DIR}/references/outputs.md 中所列的每部影片檔案。編輯計畫會輸出至 edit-plans/<name>/。判斷編輯是否符合此風格:scripts/match.py(references/outputs.md 的「符合檢查」)。

第一步:診斷

python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" doctor

在每次工作階段第一次拆解前執行。顯示 Ready. 表示就緒。如果顯示 Not ready,或使用者要求安裝或設定此技能,請遵循 ${CLAUDE_SKILL_DIR}/references/setup.md。ElevenLabs 金鑰為選用。請勿在對話中詢問:使用者應在自己的終端機中使用 setkey 儲存金鑰。

VPY="${CLAUDE_SKILL_DIR}/scripts/run.py";下方使用 python3 "$VPY"(Windows 上使用 py)會以工具虛擬環境中的 Python 執行腳本,無論 AI_EDITOR_HOME 設定在何處。

管線

快速模式(由 ai-editor 的 start、setup 或 style-edit 呼叫)

當其他技能僅需要 style.json 時,請依序執行:步驟 1 list、步驟 2 的指令加上 --top 5(5 部外加 2 部對照與 2 部備用;貼上連結則全部處理)、步驟 3b 的四個指令、步驟 3c 的四個指令,然後停止。步驟 0 的問題部分僅在呼叫者尚未詢問時提出。跳過 metrics.py、步驟 3 的文字分析階段以及步驟 4-6。每個創作者在 14 核心 Mac 上約需 3 分鐘(實際測量 2-3 分鐘;備用影片最多增加 1 分鐘),8 核心筆電則需兩倍時間。請先告知使用者。

步驟 0:提問,僅一次

跳過訊息中已回答的部分。僅一次問題框呼叫:

  1. 哪些創作者? 他們指定的名稱或連結(建議) / 我將貼上更多。一次分析多位是常見的:有人喜歡某位創作者的字幕,另一位則喜歡其節奏。每位創作者的風格視為一種格式。
  2. 若有多位:想從誰身上複製哪個部分? 還不確定(建議):在步驟 3b 後再次詢問,屆時可比較每位創作者的 look.md;或指定:字幕、節奏(剪輯、縮放、動態)、視覺(圖形、臉部構圖、卡片)、聲音。

步驟 1:取得影片

python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <handle> --platform tiktok --limit 40   # 或 youtube
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" list <name> --urls picks.txt   # 貼上的連結,每行一個

輸出排名表格(顯示觀看數與中位數倍率),並寫入 videos.json;* 標記為中位數 3 倍的影片。

Instagram: list <handle> --platform instagram 會透過使用者在瀏覽器中登入的 instagram.com 帳號(僅傳送至 instagram.com)讀取最新的 Reels 及其觀看數。若未登入:會以一行訊息結束並退出(exit 1);請告知使用者,或提供 6 個以上的 Reel 連結放入 picks.txt 並使用 --urls(按讚數排名;請說明)。

步驟 2:下載並轉錄頂尖影片與對照組

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" download <handle>
python3 "${CLAUDE_SKILL_DIR}/scripts/fetch.py" transcribe <handle>

--top N 會下載並轉錄 N 部影片,加上 2 部對照影片(最接近中位數的 2 部;--control 可更改此數量)以及 2 部備用影片供格式檢查使用(--spare),所有影片均為創作者的常見長度(若數量足夠)。貼上連結則處理所有影片。預設 --top 8 為 12 部影片;--top 5(快速模式)為 9 部;請將此參數同時傳遞給兩個指令。兩者會先輸出影片數量。--ids <id>,<id> 可指定特定影片。中位數影片作為對照組:一個同時出現在 50 萬觀看影片和 3 千觀看影片的動作,是該創作者的習慣,而非 50 萬影片成功的原因。請保留至少 2 部對照影片。

每個測量腳本都能同時處理多部影片(CT_JOBS=1 可在小筆電上關閉此功能)。

請先告知時間(下載加轉錄,在 14 核心 Mac 上每部影片約 10 秒)。Whisper(免費、本地)為預設選項;若有 ElevenLabs 金鑰,transcribe 會使用 Scribe,可保留所有填充詞(每小時音訊 $0.22;超過 10 部影片時請先提供估計費用)。如果填充詞計數依賴於 Whisper 轉錄結果,請在拆解報告中說明。

步驟 3:測量,然後分析

python3 "${CLAUDE_SKILL_DIR}/scripts/metrics.py" <handle>

寫入 metrics.json(每三分之一段的每分鐘字數、停頓、填充詞、句子長度、你/我/我們、重複片語),所有數據皆來自文字時間戳。

先執行步驟 3b,以便分析階段跳過 format.json 排除的影片。然後載入 ${CLAUDE_SKILL_DIR}/references/analysis-framework.md 並執行其分析階段。對於階段 1,為每部影片啟動一個 video-analyst 代理,全部放在同一則訊息中(它們會同時執行):為每個代理提供絕對路徑 creator-teardowns/<handle>/ 和一個 ID。每個代理會回傳一個 JSON 節拍圖;將它們合併成表格。如果沒有 Agent 工具,請自行閱讀 transcripts/<id>.timed.txt,一次一部影片。切勿完整讀取 transcripts/<id>.json 或 metrics.json:

  1. 節拍圖 + 時間點。 每部影片分割成帶有標籤的節拍,附帶秒數標記與字數。
  2. 語音/詞彙設定檔。 句子長度、人稱、命令句、重複片語,以及使用者不會使用的動作。
  3. 視覺分析。 一律執行:步驟 3b。這是讓使用者能以此風格編輯自己影片的關鍵。
  4. 卡片事件,僅當詢問範圍涵蓋創作者的卡片與圖形,或即將產生編輯計畫時執行。會寫入符合 ${CLAUDE_SKILL_DIR}/references/edit-plan.md 格式的 events.json。scripts/strip.py 需要 ffmpeg、numpy 和 pillow。

切勿省略時間點:「鉤子在前 3 秒內出現,長度 14 個字,每個項目持續 8-11 秒」才是可供拍攝的格式;「鉤子,然後列表,然後結尾」則不是。

步驟 3b:視覺分析(測量式,無需您閱讀圖片)

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/visual.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/look.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/format_check.py" check <handle>

接著執行工作表階段(下方第 4 點),然後執行 python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/lookpass.py" merge <handle>。

在 transcribe 之後執行(look.py 會將 OCR 文字與口語文字進行比對)。

  1. visual.py:剪輯及其種類、鏡頭長度、縮放、平移與晃動。
  2. look.py:每秒 3 幀進行 OCR 並偵測 YuNet 人臉:字幕(位置、大小、文字、大小寫、顏色、粗細、入場動畫)、臉部構圖、圖形佔比、調色盤、動態特徵。每部影片約需 40 秒。
  3. format_check.py:一個風格就是一種格式,而非他們發佈內容的混合體。它會根據幀、臉部、字幕、鏡頭長度和影片長度將影片分組;保留 3 個以上的多數群組,其餘移至 video/left-out/(format.json 會說明原因;請參考 references/look-pass.md)。當出現不同時,請告知使用者其第一行(「使用 4/6 部:2 部看起來是不同格式」);如果混合不明,請要求更多同一類型的影片。
  4. 工作表階段:一次 Agent 呼叫,使用 model: "haiku",為每部保留的影片讀取 sheets/<id>.jpg(每部一張 3x3 工作表,由 visual.py 產生),並根據 lookpass.py prompt 寫入 video/<id>.look-ai.json:字體、圖形風格、轉場、非通用元素。永不包含數字。確切指令在 references/look-pass.md 中。lookpass.py merge 會將結果合併到 style.json 中。

然後閱讀 look.md(少於 48 行)。請勿開啟影格或工作表。 每個欄位都在 ${CLAUDE_SKILL_DIR}/references/look-pass.md 中定義。style.json 中的數字來自程式碼;請勿手動編輯。當 look.md 與模型的文字描述不一致時(例如測量顯示 motion: punchy,但模型命名為 smooth),以測量結果為準,並在拆解報告中同時列出兩者。

無 OCR 引擎(診斷工具顯示可選):captions 保持未測量狀態,look.md 也會說明。請安裝它(doctor 會顯示安裝指令),而不是自行閱讀工作表。

步驟 3c:深入分析與頁面生成

python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/graphics.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/sound.py" measure <handle>
python3 "$VPY" "${CLAUDE_SKILL_DIR}/scripts/report.py" build <handle>

每個測量指令會輸出一行摘要與其寫入的檔案(--json 會輸出完整區塊;非必要:look.md 已包含數據)。在步驟 3b 之後執行(graphics.py 會使用 look.py 的人臉資訊遮蓋說話者)。它們會添加:每個圖形(已裁切、其種類、位置、進出場方式,以配適的 GSAP 緩動函數表示)、剪輯種類與攝影機移動(來自 visual.py)、音效與音樂、每部影片的前 3 秒、頂尖影片與對照組的比較,以及對創作者自身外觀的 AI 辨識掃描。欄位、方法、上限與成本:請參考 ${CLAUDE_SKILL_DIR}/references/teardown-page.md。 在 graphics.py measure 之後,執行該參考文件中的 haiku 種類分析(否則種類會保留為程式的猜測),然後執行 sound.py 和 report.py。

然後為使用者開啟 creator-teardowns/<handle>/teardown.html(Mac 使用 open,Windows 使用 start,Linux 使用 xdg-open),並提供將其發布為 artifact 的選項。請勿自行閱讀該頁面或其圖片:look.md 已包含數據。用兩三行向使用者說明頂尖影片的不同之處(look.md 中的 Winners: 行,並附上數量 n),以及他們外觀中任何 BAN 級別的 AI 辨識徵兆。

然後在問題框中提問(頁面僅顯示證據,沒有可供勾選的項目),一個多選問題:「你的編輯應該複製 @ 的哪些部分?」選項:字幕、節奏、圖形種類、入場動畫、佈局、音效(每個問題最多 4 個選項:必要時分成兩個問題),每個選項的描述來自 look.md 的一行測量結果(例如「以超調效果在 0.25 秒內滑入」)。如果他們選擇的部分包含任何 BAN 徵兆,請在他們確認前告知。儲存答案:

python3 "${CLAUDE_SKILL_DIR}/scripts/editplan.py" blend <handle>-mine --from <handle> \
    --take captions,pace,graphics,entrances,layout,sound    # 僅挑選的部分

style-edit 會讀取 creator-teardowns/<handle>-mine/style.json;未選取的部分使用預設值。report.py build 和 editplan.py blend 會輸出此風格的技能名稱(skill edit-like-<handle> -> <path>,需安裝 ai-editor):告知使用者其名稱。針對該風格編輯的意見回饋會影響該技能。

步驟 3d:多位創作者(當使用者指定多位時)

遵循 ${CLAUDE_SKILL_DIR}/references/blend.md:對每位創作者執行步驟 1 到 3b,並列顯示 look.md,然後執行 editplan.py blend。

步驟 4:撰寫拆解報告

將 ${CLAUDE_SKILL_DIR}/references/teardown-template.md 填入 creator-teardowns/<handle>/teardown.md。每部影片都需包含統計行、逐字轉錄稿、含時間的節拍表、應保留的模式以及應拒絕的模式。

步驟 5(可選):轉換為技能

詢問該格式是否值得保留。如果是,請遵循 ${CLAUDE_SKILL_DIR}/references/skill-handoff.md(格式技能,與風格自身的技能並列)。

步驟 6(可選):以創作者的風格規劃使用者的影片

當使用者提供自己的影片時,請遵循 ${CLAUDE_SKILL_DIR}/references/edit-plan.md。它需要來自視覺分析的創作者 events.json;它不會進行渲染。

如果腳本停止

訊息處理方式
doctor Not ready: ...針對其列出的每一行,遵循 references/setup.md
yt-dlp returned nothing / parsed 0 videos閱讀其輸出的提示:更新 yt-dlp(doctor 會顯示方法),或要求單一影片連結並使用 --urls
Instagram 個人檔案失敗輸出其訊息:在 Chrome 中登入 instagram.com,或提供 6 個以上 Reel 連結(步驟 1 的「Instagram」)
... Fix the key, then rerun (transcribe)ElevenLabs 金鑰錯誤:使用者在自己的終端機中用 setkey 重新儲存,或放棄使用並改用 Whisper
no videos in ... Run download first執行 visual.py download <handle>
download failed: <ids> (exit 1)使用其輸出的 --ids 重新執行;如果再次失敗,告知樣本數較少並繼續
yt-dlp not found執行 fetch.py doctor 並修復其列出的項目
部分影片轉錄失敗使用 --ids 重試,然後告知哪些失敗;切勿填補空缺

嚴格規則

  • 真實數據,否則不分析。 每個關於「有效」的聲明都必須附帶旁邊的觀看數。切勿在沒有數字的情況下說影片「爆紅」。
  • 僅使用逐字轉錄稿。 切勿摘要未經轉錄的影片。
  • 複製結構,而非語調。 每個拆解報告都必須說明應拒絕的內容。
  • 中位數對照組。 至少轉錄兩部中等表現的影片,否則分析無法區分格式與創作者的習慣。
  • 切勿虛構轉錄行,或為卡片虛構統計數據或引言。如果轉錄失敗,使用 --ids 重試,然後告知失敗。
  • 切勿在對話中詢問 ElevenLabs 金鑰。
  • style.json 中只能有測量數值。 pace 和 zoom 來自 visual.py;captions、face、graphics 和 motion 來自 look.py;只有文字(look、font_match)來自模型。
  • 閱讀 look.md,而非影格。 僅在解決 look.md 無法回答的問題時才開啟影格,並說明開啟了哪個。使用者得到 teardown.html;Claude 得到 look.md。
  • 頂尖 vs. 對照:附上數量 n。 切勿稱某種差異為「已證實」;「所有頂尖影片都……」僅表示在此樣本中無例外。

Individual skills in this repo

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

Conz-Wilts/ai-editor

Turns one long video or podcast (a local file or a YouTube link) into the best 3-5 short vertical clips, each cut and styled in the user's profile style. Transcribes once, splits the talk into candidate clips at sentence boundaries inside the chosen length, scores every candidate in code (speech rate, loudness, laughter, numbers and names said), shows the shortlist on one page with a preview of each, then trims, cuts and style-edits each pick as its own edit. Use when the user says "clip this video", "make shorts from my podcast", "find the best clips", "cut this into TikToks", "turn this YouTube video into reels", "repurpose this long video", or drops a long video (over about 3 minutes) or a YouTube link and wants short clips. Not for editing one short take (that is start or cut), and not for measuring someone else's style (that is creator-teardown).

Conz-Wilts/ai-editor

Cuts raw talking-head footage into a clean jump cut. Takes one take or several joined (mp4 or mov, any aspect, 4K phone footage is fine), transcribes it word by word, removes retakes, false starts, fillers and dead pauses, and renders cut.mp4 at the source resolution plus words.json timed to the cut. The user approves the cut on a page with the whole transcript and every removed word struck through. Use when the user says "cut my video", "just cut it", "remove my mistakes", "cut out the retakes", "remove the pauses", "clean up this take", "jump cut this", "tighten this clip", or asks only for the cut of a raw take; start calls it for a full edit. Runs before style-edit. Not for a general request to edit a video or to make it look like a creator (that is start), not for adding captions, zooms or cards (style-edit), and not for analysing someone else's videos (creator-teardown).

Conz-Wilts/ai-editor

Generates new footage with Higgsfield and puts it on the edit's timeline. Prices every generation first, asks the user with the dollar amount (and, for their own footage, whether it may be uploaded to Higgsfield), then submits, waits, downloads into the edit's generated/ folder and adds the result to the timeline's Generated track. Covers motion transfer on a clip of the user's video (their moves onto a character or styled look), b-roll from a sentence (text to video), a still brought to life (image to video) and stills for cards (text to image). Use when the user says "generate b-roll", "make a shot of", "AI b-roll", "generate a clip", "use Higgsfield", "motion transfer", "put my moves on", "restyle this part with AI", or asks for footage they did not film. Not for animated diagrams or motion graphics (motion), not for real screenshots and logos (overlays, logo-pack), and not for the cut (cut).

Conz-Wilts/ai-editor

For the editor's maintainers. Turns what users corrected into lasting fixes in this repo, for every user, enforced by code and tests rather than notes. Reads the suggestions users marked "would help everyone" (~/.ai-video-editor/suggestions.jsonl), taste rules said twice (taste.py report), preview corrections (edits/*/corrections.jsonl), review-page notes (*/review.json) and open GitHub issues labelled feedback; groups repeats; for each item the maintainer accepts, writes the general rule into PRINCIPLES.md and the skill that owns it, adds or tightens the check that enforces it, adds a test that fails before and passes after, and runs the full test set. Use when the maintainer says "improve the editor", "turn feedback into fixes", "process suggestions", "what are users complaining about", "go through the feedback issues". Not for one user's own preferences (that is taste), and not for editing a video.

相關技能