開發者影片 (hub)
路徑:
${CLAUDE_PLUGIN_ROOT}是此外掛的根目錄。若未設定此變數,則根目錄為此技能「Base directory」向上兩層 (<raiz>/skills/<skill>)。若技能檔案是直接複製到~/.claude/skills,請使用~/.claude/skills取代${CLAUDE_PLUGIN_ROOT}/skills。
此技能記錄了製作 「什麼是 SSH」 與 「Git 與 GitHub 最佳實務」 影片時所學到的經驗。 結果是直式 1080x1920、30 fps 的 MP4 檔,使用 Python (Pillow) 逐幀繪製動畫、免費的神經網路語音 (edge-tts) 以及由程式碼產生的音樂 (numpy)。不需要 After Effects、CapCut 或任何付費軟體。
請使用簡單明瞭的巴西葡萄牙語回覆,先給出結果。
技能地圖
| 技能 | 使用時機 |
|---|---|
| video-dev (本技能) | 永遠先使用:提問、準備工作、建立資料夾、最終渲染、交付 |
| video-conceito | 解釋 某個東西如何運作 (SSH、DNS、HTTPS、Docker、JWT...):圖表、資料包傳輸示意 |
| video-tutorial-terminal | 教學 要跟著輸入的指令 (Git、Docker CLI、npm、Linux...):含鍵入動作的終端機畫面 |
| narracao-voz | 撰寫/調整口播腳本、語音、英文術語發音、單字時間點 |
| trilha-video | 背景音樂及與語音混音 (Ducking) |
一旦知道影片類型,請立即閱讀該類型的技能說明。旁白與配樂的部分可以在進行到該步驟時再閱讀。
路徑
SK = ${CLAUDE_PLUGIN_ROOT}/skills (外掛根目錄;請參閱下方的「路徑」說明)
SK/video-dev/scripts/ motor.py, render.py, novo.py, checar.py
SK/video-dev/exemplos/ssh/ SSH 影片的完整專案 (概念型)
SK/video-dev/exemplos/git/ Git 影片的完整專案 (教學型)
SK/narracao-voz/scripts/ narracao.py, pronuncia_base.json
SK/trilha-video/scripts/ trilhas.py, mixar.py
SK/video-dev/references/ elementos.md (API 與版面配置), licoes.md (曾犯過的錯誤)
步驟 1 — 提問 (在建立任何檔案之前)
使用 AskUserQuestion 工具提問,一次最多 4 個問題,將推薦選項放在第一個。跳過使用者已在要求中回答的部分。如果使用者說「你決定」,請使用預設值 (以粗體表示)。
第一輪 (一定執行):
- 影片類型:概念型 (解釋運作原理,含圖表) · 終端機教學 (逐步指令) · 混合型 (先解釋概念再示範指令:使用概念型技能,並從教學型技能借用
Term)。 - 視覺:Dracula (暗色系,霓虹色,與最終影片相同) · 奶油色 (紙張底色,白色區塊,類似紙本風格)。
- 長度:短版,60 秒內 (5–6 個場景,適合 Shorts) · 中版,1:30–2 分鐘 (8–10 個場景) · 完整版,約 3 分鐘 (12–14 個場景,類似 SSH 與 Git 影片)。
- 配樂:synth (極簡科技風,影片中使用的那種) · lofi · ambient · piano · 無配樂。
第二輪 (僅在仍有不清楚之處時):
- 目標觀眾:初學者 (解釋所有術語) 或已有程式經驗者 (直接切入重點)。
- 語音:pt-BR-AntonioNeural (男聲,已使用) 或 pt-BR-FranciscaNeural (女聲)。執行
narracao.py --vozes查看其他選項。 - 必備重點:不能缺少什麼?有沒有特定的例子、指令或故事?
- 結尾:總結/核對清單 (預設)、「儲存這支影片」的呼籲,或引導留言的提問。
在繼續之前,用 2 到 3 行確認:主題、類型、視覺風格、長度、場景數量與配樂。
步驟 2 — 準備電腦 (每台機器執行一次)
python SK/video-dev/scripts/checar.py
若缺少項目:python SK/video-dev/scripts/checar.py --instalar (這會透過 pip 安裝 edge-tts, pillow, imageio-ffmpeg 與 numpy;ffmpeg 會包含在 imageio-ffmpeg 套件中,無需在系統層級安裝任何東西)。Bahnschrift 與 Consolas 字型已內建於 Windows 中。
提醒使用者一次:語音功能需要網際網路連線。腳本文字會傳送至 Microsoft 的語音服務。動畫與音樂則完全在本地端電腦上執行。
請注意 Windows 上的長路徑問題:Python 在路徑過深 (例如 Claude 的暫存資料夾) 時會因「File name too long」錯誤而失敗。請在一個路徑較短的資料夾中進行作業。
步驟 3 — 建立影片資料夾
請選擇不在同步資料夾內的路徑 (如 OneDrive, Dropbox, iCloud):因為渲染過程會寫入數千個影格,同步會讓一切變得非常緩慢。建議:~/Projetos/videos/<簡短名稱>/。詢問使用者是否有其他偏好。
python SK/video-dev/scripts/novo.py <資料夾> --tipo conceito --titulo "O que é Docker" --tema dracula --cenas 12
結構 (1 句腳本台詞 = 1 個場景):
<資料夾>/
video.json 標題、檔名、主題、語音、語速、配樂
roteiro.json ["場景 1 的台詞", "場景 2 的台詞", ...]
pronuncia.json 選用:專案中特定術語 -> 語音的拼寫方式
cenas.py def cenas(): return [[場景 1 的元素], ...]
audio/ cena01.mp3 + cena01.json (每個單字的時間)
saida/ <名稱>.mp4, <名稱>_trilha.mp4, poster.jpg, preview/
步驟 4 — 腳本 → 展示給使用者 → 核准
根據對應類型的技能 (概念或教學) 以及 narracao-voz 技能的語音規則來撰寫腳本。在製作動畫前先展示腳本:修改文字的成本遠低於修改場景。只有在獲得同意後才繼續進行。
步驟 5 — 旁白
python SK/narracao-voz/scripts/narracao.py <資料夾>
python SK/narracao-voz/scripts/narracao.py <資料夾> --tempos 3 # 場景 3 中每個單字說出的時間點
旁白必須在場景之前產生,因為每個場景的長度取決於台詞長度加上 0.7 秒,且元素應在對應單字說出的那一秒出現。
步驟 6 — 場景 (動畫)
使用 from motor import * (完整 API 請參閱 references/elementos.md) 撰寫 cenas.py。
針對每個場景:執行 --tempos N,選擇要在每個關鍵字出現時顯示的內容,並在元素的 t 中使用該時間點 (或提前 0.2 秒)。
請透過檢視影格來確認,而不只是閱讀程式碼:
python SK/video-dev/scripts/render.py <資料夾> --preview # 每個場景的最後一個影格
python SK/video-dev/scripts/render.py <資料夾> --cena 4 # 場景 4,每秒鐘一個影格
使用 Read 工具開啟 PNG 檔案並檢查:邊緣無裁切、無重疊、文字夠大可於手機上閱讀、底部 250 像素內無重要內容 (此處為 TikTok/Reels 的字幕與按鈕區域)。
步驟 7 — 最終渲染 + 配樂
python SK/video-dev/scripts/render.py <資料夾> # saida/<名稱>.mp4 + poster.jpg
python SK/trilha-video/scripts/mixar.py <資料夾>/saida/<名稱>.mp4 synth # saida/<名稱>_trilha.mp4
一個 3 分鐘的影片需要幾分鐘來渲染:請在背景執行。
步驟 8 — 檢查與交付
- 使用 ffmpeg 檢查長度與音軌 (
ffmpeg -i 檔案.mp4會顯示串流資訊)。 - 從最終的 MP4 檔案中,在不同時間點擷取 3 到 4 個影格並進行檢查。
- 使用 SendUserFile (
display: "render") 交付,並告知使用者資料夾位置。 - 如果使用者希望有一個頁面來觀看或分享 (類似 SSH 與 Git 影片的頁面),請將其發布為 Artifact,並在
files中包含 MP4 與腳本。只有在使用者要求時才設為公開。 - 未經使用者許可,不會上傳至 YouTube/TikTok/GitHub。
完成後的常見修改
| 需求 | 做法 |
|---|---|
| 更換一句台詞 | 編輯 roteiro.json → narracao.py --so N → 調整場景 N 的時間點 → 重新渲染 |
| 發音錯誤 | 在專案中編輯 pronuncia.json → narracao.py --so N (詳見 narracao-voz) |
| 更換視覺主題 | 在渲染時使用 --tema creme,或修改 video.json 中的 tema |
| 音樂太大/太小 | mixar.py ... --trilha 0.25 (詳見 trilha-video) |
| 從長影片製作短版 | 建立新專案,僅複製關鍵場景與精簡腳本 |
在開始之前,請先閱讀 references/licoes.md:這是前兩支影片的錯誤與成功經驗總結。