Communitygithub.com

LIUFelix2004/github-promo-video-skill

為任意 GitHub 帳號生成一條 ≤28 秒的簡歷宣傳影片:真實首頁截圖做封面 + GitHub 白色倉庫卡片 + 紙條式結尾。全部文字本地渲染,零 AI 生成文字、零拼寫錯誤。

github-promo-video-skill 是什麼?

這是一個專為 GitHub 使用者設計的宣傳影片自動化技能,能根據指定帳號的公開資料,快速產出一條長度不超過 28 秒的個人簡介影片。影片結構包含三個核心段落:動態封面(使用真實的首頁截圖進行透視變換動畫)、三張 GitHub 白色倉庫卡片(分別顯示 Star 數最高的兩個專案與整體概覽),以及紙條式結尾(顯示使用者名稱與代表作品)。所有上屏文字均來自本地設定的 config 檔案,並以 PIL 進行本地渲染,確保文字零錯誤且無 AI 幻覺。這條技能支援 CLI 執行,依賴 Python 3、Pillow、ffmpeg 與 Noto Sans CJK 字型,適用於「幫這個 GitHub 做個宣傳影片/簡歷影片/同款影片」這類請求。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add LIUFelix2004/github-promo-video-skill

在你喜歡的 AI 中提問

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

說明文件

GitHub 簡歷宣傳影片(同款流水線)

成片結構(總時長 ≤28s,預設約 24.5s):

  1. 動態封面(5.5s):目標帳號 GitHub 首頁的真實截圖,從「橫切面平躺遠景」連續透視變換到「直立傾斜近景」,淺色漸變地面 + 柔和投影,白閃轉場。
  2. 專案卡 ×3(每張 6–6.5s):GitHub 白色倉庫卡,同款版式 — 倉庫名、副標題、紅/藍大數字從 0 滾到真實 Star/Fork 數、4 條 README 總結逐條滑入、底部技術標籤淡入。卡 1、2 是 Star 最高的兩個專案;卡 3 是「更多專案」概覽(大數字 = 倉庫總數 / 近一年貢獻數)。
  3. 紙條結尾(4.5s):紙條逐條貼入(使用者名稱 / @github / 暱稱 / 代表作 · Star 數,末條紅底),右側大號圓形頭像(粉色描邊)放大入場。
  4. 音樂:使用者提供的音訊檔案(見注意事項),無口播。

硬性規則

  • 封面必須是真實捕獲的首頁幀:用 scripts/capture_frame.py 自己截取,或用無頭瀏覽器截圖。禁止用 AI 生成/重繪首頁(會編造倉庫名、偽造數據),禁止直接套用他人提供的截圖當封面而不說明。
  • 所有上屏文字只來自 config:數字、倉庫名、總結條全部本地排版(PIL),不使用 AI 影片生成承載文字 —— 這是本流水線文字零錯誤、且全片不出現無關品牌 logo 的根本原因。
  • 專案介紹必須基於 README 實讀:按 Star 排序取前 2–3 個專案,打開 README 提煉成每項 4 條一句話總結再寫入 config;只拿倉庫列表描述湊數不合格。Star 第 3 名若內容單薄(如 README 只有一行),併入卡 3 概覽並在交付時說明。
  • 交付前抽幀自檢:至少檢查封面起始幀、每張卡成型幀、結尾幀;發現文字/數字問題必須修後再交付,並向用戶如實說明殘餘瑕疵。

步驟

1. 調研帳號

  • 打開 https://github.com/<user>?tab=repositories&sort=stargazers 拿到 Star 排名與計數。
  • 打開首頁確認:顯示名、followers、倉庫總數、近一年貢獻數、置頂倉庫。
  • 逐個打開 Star 前 2–3 名倉庫的 README,寫出每個專案 4 條總結(功能/形態/技術/特點),技術標籤 4–6 個。

2. 準備素材(assets/)

python3 scripts/capture_frame.py <user> assets/page_frame.png   # 首頁截圖(真實幀)
curl -L https://github.com/<user>.png -o assets/avatar.png       # 頭像(或從首頁截取)
# BGM:把使用者提供的音訊放到 assets/bgm.m4a(可選)

3. 寫 config

複製 examples/config.example.json 為 config.json,把第 1 步的真實數據與總結填進去(路徑相對 config 所在目錄或用絕對路徑)。

4. 渲染

python3 scripts/render_promo.py --config config.json --out out.mp4

需要:Python 3 + Pillow + numpy、ffmpeg、Noto Sans CJK 字型(腳本會自動在常見路徑查找)。

5. 抽幀自檢後交付

用 ffmpeg 在 0.4s / 每段中點 / 結尾各抽一幀核對:數字與 Star 數一致、文字無錯位、封面是真實頁面、結尾紙條完整。把成片與一段「結構說明 + 已知瑕疵」一起發給用戶。

config 字段速覽

字段說明
username / display_name帳號名 / 顯示名(結尾紙條用)
page_frame / avatar / bgm素材路徑;bgm 可為 null(無音樂)
cards恰好 3 張:{name, sub, n1, l1, n2, l2, rows[4], chips[]};n1/l1 紅色大數字+標籤(如 303 / Stars),n2/l2 藍色(如 33 / Forks);卡 3 可用 Repositories / Contributions
finale_strips4 條紙條文字,末條自動紅底
durations可選:{cover, cards[3], finale} 秒數,總和減轉場後應 ≤28

注意事項

  • 音樂版權:倉庫不附帶任何 BGM。只能用使用者自己提供或有權使用的音訊檔案,不要把從他人影片裡提取的音軌再分發。
  • 截幀服務(thum.io)首次請求返回佔位圖是正常排隊現象,腳本已處理「取兩次」。
  • 全片不出現蘋果等無關品牌 logo 是設計結果(本地渲染無外部素材),無需額外處理。

相關技能