Communitygithub.com

Remotion Shorts 技能

使用 Remotion 製作完成的直式短影片,並發佈到 TikTok、Instagram Reels 和 YouTube Shorts。能將主題、文章、網址、資料集、更新日誌或列表轉為 1080x1920 的動態文字短片(大文字動畫、統計數字計數、十大排行榜、發布與更新日誌影片、引言),根據閱讀速度調整時間,並保持在每個應用程式的安全區域內,在本地渲染,無需付費 API。

Remotion Shorts 技能 是什麼?

這個技能可讓 AI 助手能夠為使用者創建完整的、可直接發佈的直式短影片,完全無需編寫 Remotion 程式碼。其工作原理是讓使用者以 JSON 檔案定義場景清單,然後由預先建置的 Remotion 專案處理所有渲染細節。它支援 TikTok、Instagram Reels 和 YouTube Shorts 平台,透過 WoopSocial API 進行發佈。技能會引導 AI 完成從初始設定(安裝依賴項)到編寫腳本(確保每個場景有一個要點、資訊有出處且時間精準)、檢查渲染預覽(確保文字保持在安全區域內)以及最終發佈的完整流程。它提供五種內建主題(ink、paper、volt、ocean、clean),支援自訂品牌色彩,並包含用於不同平台和帳戶的內容變體功能。生成的影片長度為 15 到 59 秒,在現代筆記型電腦上渲染時間約為每 30 秒影片一分鐘,且完全在本地進行,無需依賴付費 API。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/social-media-skills/remotion-shorts-skill/tree/HEAD/skills/remotion-shorts-skill

在你喜歡的 AI 中提問

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

說明文件

Remotion Shorts 技能 是做什麼的?

你將以 JSON 場景檔案的形式編寫一部短片。預先打包好的 Remotion 專案會自動排列文字、根據閱讀速度為每個場景計時、將文字保持在沒有任何應用程式按鈕會遮蓋的區域內,並渲染出校對圖、封面圖和 MP4 檔案,使用者可以透過 WoopSocial 發佈它。

你無需為每個影片編寫 Remotion 程式碼。模板是固定的且經過測試;你的工作是腳本:每個畫面要說什麼、順序如何、以及速度多快。

0. 設定(每台機器一次)

需要 Node 20 或更新版本。使用 node -v 檢查;如果缺少,請引導使用者前往 https://nodejs.org。Remotion 支援 macOS 15 或更新版本、Windows x64 以及使用 glibc 2.35+ 的 Linux(Ubuntu 22.04、Debian 12 或更新版本)。

node <skill-dir>/scripts/setup.mjs remotion-shorts

這會將專案複製到 ./remotion-shorts,安裝鎖定的套件(約 260 MB),並下載 Remotion 渲染所需的無頭瀏覽器(100 到 150 MB)。首次執行需要 1 到 3 分鐘。在技能更新後再次執行:它會刷新模板檔案(使用者更改過的檔案會保留為 .bak),並且絕不會觸及使用者的腳本、素材或輸出。

授權。 Remotion 對個人和最多 3 人的公司免費。4 人以上的公司需要 Remotion 公司授權,並且從腳本渲染視為自動化(remotion.pro/license)。如果使用者是為較大規模的公司進行渲染,請在首次渲染前,簡潔地告知他們一次。

1. 詢問你需要什麼(一次訊息,跳過已知的部分)

  • 素材。 一個主題、文章、網址、筆記、資料、更新日誌或列表。你只能撰寫你能指出來源的事實。如果使用者給了一個沒有來源的主題,請找一個主要來源(官方統計數據、文件、產品自己的更新日誌)並指名出處。
  • 目標觀眾和唯一要點。 一部短片只說一件事。
  • 外觀。 一個主題(ink、paper、volt、ocean、clean)或他們的品牌顏色,以及結尾畫面的帳號名稱。
  • 音訊。 內建音效預設為開啟(鉤子處有撞擊聲、每個鏡頭切換有嗖嗖聲、重點處有彈出聲、計數時有滴答聲);它們是專為此模板製作的,並且在所有應用程式中都是安全的。音樂只能來自他們擁有使用權的檔案(請參閱 references/writing-shorts.md,了解為什麼沒有免費的音樂庫在所有三個應用程式中都是安全的)。
  • 發佈目標。 TikTok、Reels、Shorts,或全部三個。

2. 編寫腳本

在每次工作階段開始編寫第一個腳本之前,請先閱讀 references/writing-shorts.md。簡要版本:

  • 場景 1 是鉤子,用大約 10 個字或更少的篇幅陳述回報:一個數字、一個主張或一個列表承諾("5 個免費工具取代...")。它從第 0 幀開始就完全顯示在螢幕上。如果鉤子中有數字,請將其放在 big 中,讓它成為視線第一時間落點。
  • 一個場景只有一個想法。 一個場景是一個節拍,而不是一個段落。統計場景承載一個數字及其含義。列表項目遞減或遞增;在鉤子中說明方向。
  • 每個場景都要有真實資訊。 一個沒有新內容的模板化文字影片,正是 YouTube 所謂的虛假內容,也是 Instagram 所謂的非原創內容。切勿填充。
  • 數字必須準確且有來源。 將來源放在 footer 中("資料來源:USGS")。切勿將數字四捨五入成不同的主張。
  • 以一個行動結尾,或是一條能帶回鉤子的台詞,使循環感覺連續。不要寫 "感謝觀看"。
  • 長度: 目標是 15 到 45 秒;渲染器會在超過 59 秒時發出警告。

在專案資料夾中編寫 short.json。完整的格式、每種場景類型和所有選項都在 references/short-json.md 中。一個最小化的腳本範例:

{
  "theme": "ink",
  "footer": "資料來源:USGS",
  "handle": "@yourhandle",
  "scenes": [
    { "type": "hook", "big": "2.5%", "text": "的地球水資源是淡水" },
    { "type": "stat", "value": "96.5", "suffix": "%", "label": "是海洋中的鹽水" },
    { "type": "stat", "value": "68.7", "suffix": "%", "label": "的淡水是冰和冰川", "highlight": "冰和冰川" },
    { "type": "end", "text": "收藏這篇,準備好參加常識問答比賽", "highlight": "收藏這篇" }
  ]
}

3. 在渲染影片前進行檢查

cd remotion-shorts
node render.mjs short.json --stills

幾秒鐘內,這會輸出計劃(每個場景的秒數和字型大小)並寫入:

  • out/short/sheet.jpg:每個場景的最後一幀(螢幕上的所有內容),並以細虛線標示安全區域(文字必須保持在內部)。
  • out/short/cuts.jpg:第 0 幀以及每個鏡頭切換前後的幀,用於檢查動畫效果。
  • out/short/cover.jpg:鉤子落地後的畫面(可上傳為 Reels 的封面)。
  • out/short/report.json:時間、換行和警告。

打開兩張校對圖並仔細查看。 檢查:每個場景在手機尺寸下是否可讀、每個場景是否只傳達一個想法、重點是否落在重要的詞上、是否有任何部分看起來擁擠、順序是否正確,以及第 0 幀是否顯示了完整的鉤子。修正 JSON 並再次執行 --stills,直到你願意發佈它為止。

警告會阻止影片渲染(退出碼 2):一個畫面文字太長、鉤子太長、重點不在文字中、場景閱讀速度太快、節奏超出 0.85 到 1.25 的範圍,或短片超過 59 秒。修正腳本;僅在使用者已看到警告但仍希望執行時才使用 --force。某些問題是 --force 無法覆蓋的錯誤,例如單詞在任何尺寸下都超出螢幕寬度:這會導致文字跑出螢幕。

4. 渲染

node render.mjs short.json

寫入 out/short/short.mp4:1080x1920、30 fps、H.264、yuv420p、AAC(當沒有音樂時為靜音軌道),TikTok、Reels 和 Shorts 都接受此格式。一個 30 秒的短片在現代筆記型電腦上渲染約需一分鐘。記憶體 8 GB 的機器一次渲染 2 幀;如果渲染仍然因記憶體不足而被終止,請使用 --concurrency 1 重新執行。

在你展示之前,擷取三個幀並查看它們(開始、中間、結尾),或者如果你的客戶端支援,直接播放。然後向使用者展示封面、校對圖和 MP4 路徑。

多個帳戶: 切勿將同一個檔案發佈到多個帳戶。應為每個帳戶製作一個變體(不同的鉤子、主題或場景順序,另存為自己的 JSON),這樣就不會有兩個帳戶發佈近乎重複的內容。

5. 發佈(透過 WoopSocial,需確認)

閱讀 references/woopsocial.md。簡而言之:

  1. 使用 social_accounts_list 查找帳戶(如果需要,先連接它們)。
  2. 對於 TikTok,使用 social_accounts_get_platform_inputs 取得該帳戶的資訊:隱私設定和允許的最長影片。使用者選擇隱私設定;沒有預設值。
  3. 上傳:使用 media_uploads_create_session,提供來自 report.json 的精確位元組大小,將回應儲存為 session.json,執行 node upload.mjs session.json out/short/short.mp4,然後執行 media_uploads_complete_session 直到狀態變為 READY。
  4. 為每個平台撰寫說明文字(TikTok 和 Reels:一行補充影片內容的文字加上 3 到 5 個具體的主題標籤;YouTube:一個少於 100 個字元的標題加上一段描述)。使用 contentOverride 進行各平台的文字設定。
  5. 使用 posts_validate 驗證,然後向使用者展示:帳戶、各平台說明文字、隱私設定、排程時間(含時區)、封面。等待明確的肯定答覆。然後使用 posts_create 和 posts_get。

揭露欄位:當短片推廣使用者自己的產品時,TikTok 上設定 isYourBrand: true;isAiGeneratedContent 僅適用於逼真的 AI 圖片、影片或聲音(動態文字不需要)。YouTube 的 madeForKids 是一項法律聲明:必須詢問,切勿猜測。

6. 回報

展示:MP4 路徑、長度、校對圖、發佈位置(來自 posts_get 的連結)或排程時間,以及任何你無法完成的事項。切勿虛構觀看次數或結果;稍後使用 social_account_posts_list 讀取它們,並回報收集數據的日期。

編輯外觀

  • 品牌顏色:將 theme 作為物件傳入(bg、fg、accent、accentText、font、uppercase)。保持文字對比度在 7:1 或更高;同時檢查強調色在背景色上的對比度。
  • 場景背後的圖片或影片:使用 image 設定每個場景,或使用 background 設定整個短片。它們會在主色調下變暗,以保持文字可讀性。使用使用者擁有或擁有使用權的檔案,並在許可要求時在說明文字中標明出處。
  • 內建字型:Anton(窄體、大寫、醒目)、Poppins、Inter。皆為 OFL 授權。
  • 要更改模板本身,請編輯 src/Short.tsx 並使用 npm run studio 預覽。

邊緣案例

  • 沒有來源的數字: 不要使用它。說明缺失了什麼。
  • 無法容納的文字: 拆分場景;不要將字型縮小到低於最低值(渲染器不會允許)。
  • 從右到左的文字、中日韓文字或表情符號: 內建字型不支援它們,可能會顯示為空白方塊。請說明這一點並將其排除(表情符號可以放在說明文字中)。
  • 使用者想要熱門音效: API 發佈無法加入。請使用 postMode: MEDIA_UPLOAD 發佈到 TikTok,這樣它會進入使用者的 TikTok 收件匣,以便在應用程式內完成編輯。
  • 在 Linux 上因缺少函式庫而渲染失敗: 安裝 references/platform-specs.md 中列出的套件。
  • Windows: 始終在 JSON 檔案中傳遞屬性,絕不在命令列上內聯傳遞。

品質標準

在你宣布完成之前,它應該通過所有這些檢查:

  • 第 0 幀顯示完整的鉤子(檢查 cuts.jpg);大約 10 個字或更少,陳述回報。
  • 每個場景只說一件事;每個場景不超過約 14 個字。
  • 每個數字都與其來源相符;來源顯示在螢幕上或說明文字中。
  • 無警告,或者使用者已看到警告並選擇了 --force。
  • 兩張校對圖都已檢查:沒有文字超出虛線安全線,重點落在正確的詞上。
  • 長度在 15 到 59 秒之間。
  • 為每個帳戶準備了一個不同的版本。
  • 使用者在任何內容發佈前已確認。

相關技能