發佈解說短片與 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. 挑選最具病毒式傳播潛力的集數
- 盤點:執行
scripts/inventory.sh <資料夾>,會列出每個檔案的長度、解析度和音訊電平。 - 排除條件:
- 長度超過 60 秒(雖然仍可作為 Shorts 發佈,但觀看完成率會下降)或解析度非 1080×1920 的檔案;
- 音訊過於安靜或破音(
max_volume高於 −0.5 dB)的檔案; - 平台會打壓的主題(例如藥物,像是「LSD 鏡像」那集;圖像或醫療內容);
- 已經發佈過的集數。
- 檢視內容。執行
scripts/contact_sheet.sh <影片> <輸出.jpg>會生成一張每隔 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)
- 載入 chrome-browser 技能。執行
tabs_context_mcp,然後開啟一個新分頁。 - 前往
https://studio.youtube.com/channel/<頻道ID>/videos/upload?d=ud。頻道 ID 在登入後的 Studio URL 中。 - 附加檔案:
- 先嘗試使用
find尋找「file-input」,然後使用file_upload並提供裝置路徑。 - 已知限制:
file_upload經常拒絕使用者已連結資料夾中的檔案(「僅允許此工作階段讀取的檔案」)。不要重試超過一次。要求使用者點擊 Select files 並選擇upload-ready/<檔案>.mp4。切勿自行點擊 Select files,因為這會開啟一個你無法看到的原生對話框。
- 先嘗試使用
- 詳細資料:
- 標題欄位:點擊它,按
ctrl+a,然後輸入。 - 描述:點擊,然後輸入。
- 輸入
#標籤會開啟建議下拉選單。點擊對話框的空白處關閉它,不要使用 Escape 鍵。 - 觀眾:使用
find尋找「No, it's not made for kids」,然後scroll_to並點擊它。 - 縮圖:使用者點擊 Thumbnail 下方的 Upload file 並選擇封面。Studio 確實接受自訂的 Shorts 縮圖。
- 標題欄位:點擊它,按
- 點擊 Next 三次(影片元素、檢查、能見度)。選擇 Public,然後點擊 Publish。
- 驗證:開啟
/videos/short並執行get_page_text。新的標題應顯示為 Public 和 Published。
6. 在 Instagram Reels 上發佈(透過 Chrome 中的 Claude)
- 開啟
https://www.instagram.com/。點擊 Not Now 關閉「開啟通知」提示。 - 點擊側邊欄中的 Create,然後點擊 Post。
- 使用者點擊 Select from computer 並選擇 MP4 檔案。同樣受檔案選擇器的限制。
- 裁切步驟: Instagram 預設為 1:1,這會將影片裁切成正方形。
- 點擊預覽左下角的裁切圖示,然後選擇 Original。
- 確認預覽是直向(9:16),然後點擊 Next。
- 編輯步驟: 使用者點擊「Cover photo」旁的 Select From Computer,然後選擇封面的 PNG 檔案。
- 檢查封面是否與影片相符。 播放預覽畫面並比對內容和剪輯長度(例如,費米悖論為 55 秒,黑洞為 47 秒)。使用者很容易選錯封面。
- 點擊 Next。
- 文案步驟:
- 點擊文案輸入框並輸入文案。
- 結尾加上一個尾隨空格,以關閉主題標籤下拉選單。
- 除非使用者要求,否則關閉「分享到 Facebook」。
- 點擊 Share。使用
find尋找「Share button in New reel dialog header」,並透過元素引用(ref)點擊,因為在對話框調整大小時座標會偏移。 - 等待直到出現「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 天內只能更改兩次。重新命名前先詢問。
- 在儲存之前,務必向使用者顯示簡介和描述文字並獲得同意。個人資料的更改是公開的。
規則
- 發佈是公開且難以撤銷的。只發佈使用者要求的內容。在進行請求範圍以外的操作前先確認,例如編輯舊貼文、封存貼文或重新命名頻道。
- 切勿輸入密碼。如果網站要求登入,由使用者自行操作。
- 報告已上線的內容及其標題和能見度。提及任何需要使用者處理的事項,例如檔案選擇。