Communitygithub.com

發佈解說短片與 Reels

從垂直解說影片資料夾中挑選最具病毒式傳播潛力的集數,製作引人注目的封面與標題,並透過 Chrome 中的 Claude 將它們發佈到 YouTube Shorts 和 Instagram Reels。當使用者要求發佈、發表或上傳集數/短片/Reels,或更新頻道的個人資料與品牌形象時使用。

發佈解說短片與 Reels 是什麼?

這個技能為「Only Sci Facts」頻道提供了一個完整的端到端工作流程,從挑選最適合病毒式傳播的集數、壓縮影片、製作吸睛封面與文案,到最終在 YouTube Shorts 和 Instagram Reels 上發佈,全程可透過 Claude 操作。它支援處理任何 9:16 比例的 MP4 解說影片資料夾。技能的核心運作邏輯包含:使用腳本評估影片的鉤子、好奇心缺口、視覺張力等指標來排序;透過 ffmpeg 和 Python 腳本進行視覺無損的壓縮;並根據三種不同風格(黑洞、星系、影格)自動生成封面。發佈環節則利用 Chrome 瀏覽器技能(`tabs_context_mcp`)模擬使用者操作,包括上傳檔案、填寫標題與描述、選擇縮圖等。它還包含了更新頻道品牌標誌與簡介的步驟。注意,此技能需依賴指定的 GitHub 倉庫中的腳本以及 `ffmpeg`、`ffprobe`、Python 3 與相關套件。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pranaykrpiyush/video-publishing-skill/tree/HEAD/publish-explainer-shorts

在你喜歡的 AI 中提問

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

說明文件

發佈解說短片與 Reels 是做什麼的?

針對 Only Sci Facts 頻道(YouTube @onlyfactsci,Instagram onlyfactsci)的端到端工作流程: 選擇集數 → 壓縮以利上傳 → 製作封面 → 撰寫文案 → 發佈到 YouTube Shorts 和 Instagram Reels → 驗證。 此流程適用於任何包含 9:16 MP4 解說影片的資料夾。

腳本位於此檔案旁的 scripts/ 目錄。如果該目錄不存在,請複製 https://github.com/pranaykrpiyush/video-publishing-skill 並使用 publish-explainer-shorts/scripts/。

這些腳本需要 ffmpeg、ffprobe、包含 Pillow 和 numpy 的 Python 3,以及 Inter Display 字體。如果使用 FONT_DIR 環境變數指向任何粗體無襯線字體,也可以運作。

0. 開始之前

  • 詢問(或找到)集數資料夾。集數命名格式為 NN-slug.mp4,例如 14-falling-into-a-black-hole.mp4。
  • 詢問要發佈幾集以及要發佈到哪些平台,除非使用者已明確提出。
  • 確認使用者已在 Chrome 中登入 YouTube Studio 和 Instagram:分別開啟每個網站並檢查。
  • 已經發佈過? 檢查 YouTube Studio Shorts 列表和 Instagram 格狀版面,避免重複發佈同一集。

1. 挑選最具病毒式傳播潛力的集數

  1. 盤點:執行 scripts/inventory.sh <資料夾>,會列出每個檔案的長度、解析度和音訊電平。
  2. 排除條件:
    • 長度超過 60 秒(雖然仍可作為 Shorts 發佈,但觀看完成率會下降)或解析度非 1080×1920 的檔案;
    • 音訊過於安靜或破音(max_volume 高於 −0.5 dB)的檔案;
    • 平台會打壓的主題(例如藥物,像是「LSD 鏡像」那集;圖像或醫療內容);
    • 已經發佈過的集數。
  3. 檢視內容。執行 scripts/contact_sheet.sh <影片> <輸出.jpg> 會生成一張每隔 4 秒取一個畫格的圖片。閱讀這些畫格。
  4. 針對剩餘的每一集,根據以下各項進行 1 到 5 分的評分:
    • 前 1 秒的鉤子:一個大數字、一個悖論,或是「如果……會怎樣」。
    • 好奇心缺口:一個反直覺的答案。
    • 視覺張力:黑洞、星系或爆炸勝過圖表。
    • 留言誘餌:一個開放式問題或相互競爭的多種答案。
    • 廣泛吸引力:太空和人體相關主題勝過冷門主題。

太空悖論(黑洞、費米悖論、星塵、暗物質)通常得分最高。 5. 告訴使用者你的選擇,並為每個選擇附上一行理由,然後繼續。除非使用者要求選擇權,否則無需等待批准。

2. 壓縮以利上傳

Chrome 擴充功能的 file_upload 工具拒絕超過 3.8 MB 的檔案。如果使用者最終自行挑選檔案,重新編碼後的檔案就是你保留的版本。

scripts/compress_for_upload.sh <輸入.mp4> <輸出.mp4>

此腳本使用 x264 編碼器,設定為 CRF 26、-preset slow、AAC 96k 音訊以及 +faststart。接著,它會輸出檔案大小以及與原始檔案的 SSIM 值:

  • 目標 SSIM 至少為 0.995,這在視覺上是無損的。
  • 如果檔案仍然超過 3.8 MB,則使用 CRF=28 重新執行。

將輸出檔案放入集數資料夾下的 upload-ready/ 子資料夾中。切勿覆寫原始檔案。

3. 製作封面

python3 scripts/make_cover.py --style blackhole \
  --kicker "WHAT HAPPENS IF" --headline "YOU FALL IN?" \
  --tagline "Two endings.|Both true." --out 14-cover.png

python3 scripts/make_cover.py --style galaxy \
  --kicker "100,000,000,000 STARS" --headline "WHERE IS|EVERYONE?" \
  --tagline "No ships.|No signals." --out 12-cover.png

python3 scripts/make_cover.py --style frame --video 05-why-the-sky-is-blue.mp4 --at 12 \
  --kicker "WHY IS THE" --headline "SKY BLUE?" --tagline "It's not|reflecting the sea." --out 05-cover.png

參數的運作方式:

  • --headline 中的 | 用來換行。
  • --tagline 中的 | 將文字分成白色部分和橘色部分。
  • --style frame 會擷取位於集數內嵌字幕中間的圖案。如果某個標籤顯示在圖案的邊緣,請使用 --art-top / --art-bottom 調整範圍;預設值是源幀的 420 和 1300 像素。

每個封面都是 1080×1920 解析度,所有文字都保持在中央 1080×1350 的區域內,這樣在 Instagram 的格狀裁切中仍能保留。

文案寫作規則:

  • 標題是一個問題或一個震撼的數字。保持為 2–4 個大寫單詞。
  • 前導文字(kicker)用來鋪陳。
  • 副標題(tagline)用來暗示結局,但不揭露。

在使用前檢查每個封面:使用 Read 功能開啟它。

4. 撰寫文案

YouTube 標題。 保持在 70 個字元以內,並且以影片回答的問題加上一個表情符號和 #shorts 來表達。範例:What happens if you fall into a black hole? 🕳️ #shorts

描述和 Instagram 文案。 兩個平台使用相同的模板:

<鉤子句:悖論或大數字> <表情符號>

<2 句話:用白話說明結論>

<誘導留言的問題:「你相信哪個?👇」/「你更想體驗哪個版本?👇」>

追蹤 (@onlyfactsci on IG) 每天獲取一個顛覆認知的科學事實 🚀

#<主題一> #<主題二> #space #science #universe #astronomy #spacefacts #shorts|#reels

5. 在 YouTube Shorts 上發佈(透過 Chrome 中的 Claude)

  1. 載入 chrome-browser 技能。執行 tabs_context_mcp,然後開啟一個新分頁。
  2. 前往 https://studio.youtube.com/channel/<頻道ID>/videos/upload?d=ud。頻道 ID 在登入後的 Studio URL 中。
  3. 附加檔案:
    • 先嘗試使用 find 尋找「file-input」,然後使用 file_upload 並提供裝置路徑。
    • 已知限制: file_upload 經常拒絕使用者已連結資料夾中的檔案(「僅允許此工作階段讀取的檔案」)。不要重試超過一次。要求使用者點擊 Select files 並選擇 upload-ready/<檔案>.mp4。切勿自行點擊 Select files,因為這會開啟一個你無法看到的原生對話框。
  4. 詳細資料:
    • 標題欄位:點擊它,按 ctrl+a,然後輸入。
    • 描述:點擊,然後輸入。
    • 輸入 #標籤 會開啟建議下拉選單。點擊對話框的空白處關閉它,不要使用 Escape 鍵。
    • 觀眾:使用 find 尋找「No, it's not made for kids」,然後 scroll_to 並點擊它。
    • 縮圖:使用者點擊 Thumbnail 下方的 Upload file 並選擇封面。Studio 確實接受自訂的 Shorts 縮圖。
  5. 點擊 Next 三次(影片元素、檢查、能見度)。選擇 Public,然後點擊 Publish。
  6. 驗證:開啟 /videos/short 並執行 get_page_text。新的標題應顯示為 Public 和 Published。

6. 在 Instagram Reels 上發佈(透過 Chrome 中的 Claude)

  1. 開啟 https://www.instagram.com/。點擊 Not Now 關閉「開啟通知」提示。
  2. 點擊側邊欄中的 Create,然後點擊 Post。
  3. 使用者點擊 Select from computer 並選擇 MP4 檔案。同樣受檔案選擇器的限制。
  4. 裁切步驟: Instagram 預設為 1:1,這會將影片裁切成正方形。
    • 點擊預覽左下角的裁切圖示,然後選擇 Original。
    • 確認預覽是直向(9:16),然後點擊 Next。
  5. 編輯步驟: 使用者點擊「Cover photo」旁的 Select From Computer,然後選擇封面的 PNG 檔案。
    • 檢查封面是否與影片相符。 播放預覽畫面並比對內容和剪輯長度(例如,費米悖論為 55 秒,黑洞為 47 秒)。使用者很容易選錯封面。
    • 點擊 Next。
  6. 文案步驟:
    • 點擊文案輸入框並輸入文案。
    • 結尾加上一個尾隨空格,以關閉主題標籤下拉選單。
    • 除非使用者要求,否則關閉「分享到 Facebook」。
  7. 點擊 Share。使用 find 尋找「Share button in New reel dialog header」,並透過元素引用(ref)點擊,因為在對話框調整大小時座標會偏移。
  8. 等待直到出現「Your reel has been shared.」(約 20–40 秒),然後點擊 Done。

7. 個人資料與品牌形象(當被要求時)

  • python3 scripts/brand_assets.py --outdir <目錄> 會產生:
    • onlyscifacts-profile-picture.png:1024² 像素,一個帶有橘色光環的黑洞;
    • onlyscifacts-youtube-banner.png:2560×1440 像素,文字位於 1546×423 的安全區域內。
  • Instagram:
    • 簡介:前往 instagram.com/accounts/edit/,然後點擊 Submit。
    • 名稱:前往 accountscenter.instagram.com/profiles/,然後選擇帳戶,再點擊 Name,最後點擊 Done。14 天內只能更改兩次。
    • 照片:前往帳戶管理中心,選擇 Profile picture,然後點擊 Upload new photo。使用者選擇檔案。
  • YouTube: 前往 studio.youtube.com/channel/<ID>/editing/profile。
    • 描述:輸入文字。
    • 照片:點擊 Change。橫幅:點擊 Upload。使用者選擇這兩個檔案。
    • 點擊 Publish。
    • 頻道名稱在 14 天內只能更改兩次。重新命名前先詢問。
  • 在儲存之前,務必向使用者顯示簡介和描述文字並獲得同意。個人資料的更改是公開的。

規則

  • 發佈是公開且難以撤銷的。只發佈使用者要求的內容。在進行請求範圍以外的操作前先確認,例如編輯舊貼文、封存貼文或重新命名頻道。
  • 切勿輸入密碼。如果網站要求登入,由使用者自行操作。
  • 報告已上線的內容及其標題和能見度。提及任何需要使用者處理的事項,例如檔案選擇。

相關技能