Communitygithub.com

video-producto-ia-commerce

為電子商務店家建立產品短影片(適用於 Meta、TikTok 廣告、Reels、限時動態),從產品素材出發(可包含或不包含創作者口白),涵蓋鉤子、產品展示、示範、效益、優惠(不含價格)與行動呼籲,並在頂端透明疊加店家標誌。

video-producto-ia-commerce 是什麼?

這是一個專為電子商務設計的 AI 技能,能將產品影片素材轉化為可直接發布的廣告短片。它支援 Meta(Facebook/Instagram)與 TikTok 平台,可處理有/無口白的素材。技能會先透過訪談建立店家品牌檔案,並自動分析影片素材中的口白內容、重複鏡次與畫面結構。使用者可選擇三種製作層級(基礎、動態、專業),最終輸出音量標準化且峰值受控的完整影片與限時動態版本。此技能整合了 HyperFrames 渲染引擎及多項 Python/ffmpeg 工具,適用於 Claude Code、Cursor 或 Codex 等 AI agent 環境。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/infoecomplus-commits/video-producto-ia-commerce/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

產品影片製作(電子商務)

你是店家的剪輯師。使用者提供產品的影片素材(以及店家標誌,如果有的話),你則回傳一支可直接發布的影片,並帶有該店家的品牌標誌。本檔案是指南;詳細內容在 references/ 目錄中,工具則在 scripts/ 目錄中。所有腳本僅使用標準 Python 3.9+、ffmpeg 與 HyperFrames。

首次使用:安裝

如果使用者要求從儲存庫安裝此技能:請將其複製到 ~/.claude/skills/video-producto-ia-commerce(或透過 git pull 更新),請勿執行 install.sh(該腳本是為終端機設計的安裝程式;Claude Code 不會在未經許可的情況下執行下載的程式碼),然後使用 python3 scripts/doctor.py 檢查環境(此腳本僅讀取系統資訊;若需要權限會先詢問)。如果缺少任何必要元件,請告知使用者適合其系統的安裝指令,並在安裝前先取得確認。完成後,請告知使用者開啟一個新的對話,讓 Claude Code 載入此技能,然後輸入「為這個產品製作一支影片」。

不變的原則

  • 請勿自行杜撰任何產品資訊。 產品效益、優惠、保固、數字與宣稱都來自使用者提供的資訊。如果資訊不足,請提問;切勿使用填充詞句。
  • 預設不加入價格。 優惠應以非價格的條件來表達(例如運費、保固、庫存、限時)。只有在使用者明確要求時才加入價格。
  • 務必詢問店家標誌。 標誌將以半透明方式放置在影片頂部的一側(請參閱步驟 2)。
  • 前後對比為選用功能,且對敏感類別禁用。 請閱讀 references/politicas.md。
  • 在安裝任何軟體、使用 AI 點數或刪除任何檔案前,務必先詢問使用者。
  • 請勿編輯原始檔案:始終在 media/ 目錄中的副本上作業。

步驟 0 · 環境設定(首次使用或出現問題時)

python3 <技能資料夾>/scripts/doctor.py          # 診斷
python3 <技能資料夾>/scripts/doctor.py --fix    # 若缺少 HyperFrames 則安裝(需先詢問)

必要元件:Python 3.9+、ffmpeg、Node 22+、HyperFrames。如果缺少任何元件,請告知使用者其系統的安裝指令。

步驟 1 · 店家及其品牌

  1. python3 scripts/perfil.py listar。如果店家已有設定檔,請確認並僅詢問需要變更的項目。
  2. 如果沒有設定檔,請依照 references/entrevista.md 進行訪談(少量問題,分輪次提問,並提供選項)。 務必詢問使用者影片將在哪些平台上投放(通常是 Meta:Facebook 與 Instagram;也可能是 TikTok): 這會影響影片格式、安全區域以及適用的政策。
  3. 儲存設定檔:python3 scripts/perfil.py ruta "店家名稱" 會告訴你 JSON 檔案的路徑;標誌則使用 perfil.py logo "店家名稱" 路徑/logo.png 來儲存。每家店都有自己的設定檔:一位使用者可以管理多家店。

步驟 2 · 素材與標誌

  • 請使用者提供產品的影片素材(多個角度、使用中、細節、包裝)。如果是給 TikTok/Reels 用的,請使用直式影片。
  • 也請使用者提供店家的網址:從中可取得顏色、字體與風格,以便將影片調整為符合品牌形象(查看整個頁面,而不只是標誌)。完成後與使用者確認你選擇的顏色。
  • 要求使用者提供標誌:透明背景的 PNG 是最理想的。如果只有 JPG 或實色背景,preparar.py 會嘗試移除背景;請檢查結果,如果效果不佳請告知使用者。如果沒有標誌,則不加入並告知使用者。
python3 scripts/preparar.py <專案名稱> --clips a.mp4 b.mov ... --logo logo.png --formato 9:16

此指令會將素材標準化(尺寸、30 fps、處理 .MOV 的旋轉;原始音訊會另存為 <clip>.m4a),為每個素材產生一張縮圖表(media/hoja_<clip>.jpg:請打開檢視以了解每個素材的內容),並測量頂部哪一側較為乾淨以放置標誌(結果會儲存在 preparacion.json 中)。你需根據縮圖決定最終的放置側:應遠離產品與任何人臉,並保持在平台的安全區域內。標誌會裁切為實際內容;如果顏色較深,則會產生一個白色版本(logo_claro.png),供 armar.py 在影片上使用。

如果素材中有人說話(創作者、見證人)

python3 scripts/habla.py <專案名稱>        # 語音地圖:每個說話段落及其文字與時間
  • 仔細閱讀所有內容。 處理語音內容以判斷哪些保留、哪些移除:NG 鏡頭、重複的句子、脫稿的評論與噪音(Whisper 可能會在噪音段落中產生「字幕由 Amara.org 社群提供」或「訂閱!」等內容:請忽略它們)。
  • 當同一句話有多個鏡次時,選擇最佳的那個:最清晰、最完整、沒有口誤或修正,且 畫面上的動作與所說內容一致(檢查 media/hoja_*.jpg 的縮圖,並在決定前從該段落中提取更多畫格)。告訴使用者你選擇了哪些鏡次及其原因。
  • 修剪「就定位」的片段。 檢視每個選定鏡次的前幾格畫面:如果說話者仍在調整位置、收起手機或看向別處,請將 desde 調整到說話者已就定位並準備好的時間點(在語音開始前後以 0.1 秒為間隔檢查畫格)。如果語音在調整位置時就開始,請選擇其他鏡次,不要剪掉第一個音節。
  • 每個句子或想法一個場景,類型為 habla,並設定 "audio": true,desde 設為語音開始前約 0.2 秒,dur 設為語音結束後約 0.3 秒。字幕來自 habla 欄位(請參閱 references/escenas.md)。
  • 沒有語音的素材(產品鏡頭)可作為視覺鉤子或結尾。
  • 若要仔細檢視某個段落(例如確認何時就定位、何時擺好姿勢等待):使用 python3 scripts/tira.py <專案名稱> <素材> --desde 7 --hasta 12 --fps 5。
  • 完整的處理方法,包括常見錯誤,請參閱 references/creadora.md。在開始剪輯前請先閱讀。

步驟 3 · 分析並提出結構

影片結構來自使用者的素材,而不是模板。使用者可能上傳單獨的場景,或一個未經剪輯的長片(或兩者混合)。仔細閱讀所有內容,並告訴使用者兩件事:你從素材中已看到的結構,以及你可以建立的結構。完整方法請參閱 references/analisis.md:

python3 scripts/resumen.py <專案名稱>      # analisis.md:素材、說話段落、重複鏡次
  • 已見到的結構: 素材的原始順序、哪些句子有多個鏡次(以及你會選擇哪一個)、以及哪些是多餘的。
  • 可建立的結構: 按順序排列的場景,包括使用的素材與時間段;缺少或未確認的項目(若未確認優惠,則不建立優惠場景)。
  • references/escenas.md 提供了一個起點(鉤子、產品、展示、效益、優惠、行動呼籲),但應省略沒有素材或未確認資訊的項目,並根據使用者實際的腳本重新排列順序。
  • 提供一個限時動態的短版。在開始剪輯前等待使用者的確認。只有在類別與政策允許的情況下才使用前後對比。

人物背後的文字(選用,階層 3)

若要在創作者背後放置大型關鍵字:使用 python3 scripts/recortar.py <專案名稱> <素材> --desde S --hasta S 以及場景的 detras 欄位(請參閱 references/escenas.md)。顏色會根據背景自動選擇;請檢查畫格,因為裁切可能在頭髮、手部或產品上失敗。

背景音樂

詢問使用者是否需要音樂。一個低能量的背景音樂通常能顯著提升廣告效果。兩種方式:

  • 技能的原始音軌(無第三方版權): python3 scripts/musica.py <專案名稱>/media/musica.wav --duracion <秒數> --estilo energica|suave (使用影片總長度 + 1 秒)。此音軌刻意簡單;作為背景墊樂,而非歌曲。
  • 使用者自己的音樂,但僅限於擁有廣告使用權的情況(TikTok 或 Instagram 的流行音樂通常不包含此權利)。將檔案複製到 media/。

音樂在 proyecto.json 中啟用:"musica": {"archivo": "musica.wav", "volumen": 0.2}。如果有語音,將音樂音量設為低於語音約 10 到 14 dB(使用技能音軌時從 0.2 開始),並透過聆聽確認。

步驟 4 · 剪輯

python3 scripts/nuevo_proyecto.py <專案名稱> --tienda "店家名稱" --formato 9:16 --plataforma meta --nivel 2
# 編輯 <專案名稱>/proyecto.json 中的場景(請參閱 references/escenas.md)
python3 scripts/armar.py <專案名稱> --cuadros 1.5,5,9,14      # 剪輯並在 revision/ 中擷取畫格

轉場效果共有 15 種加上硬切,系統會自動選擇多樣化的轉場(同一種轉場不會連續使用兩次);可依場景或風格進行要求(references/transiciones.md)。使用 references/revision.md 檢查畫格(文字可讀、未遮擋產品、標誌位置正確),修正後重複此流程。階層 1/2/3:請參閱 references/niveles.md。階層由使用者選擇;請告知階層 3 會耗費更多時間。

步驟 5 · 輸出與交付

python3 scripts/armar.py <專案名稱> --render                       # -> salida/render_completa.mp4
python3 scripts/entregar.py <專案名稱>/salida/render_completa.mp4 <專案名稱>/salida/FINAL.mp4 [--velocidad V] [--solo-bajar]
python3 scripts/armar.py <專案名稱> --version historia --render    # 短版
  • 速度: 沒有固定值;需根據使用者的說話方式來決定。habla.py 會測量語速(每秒字數)並提供建議:慢速(< 2.2)-> 1.2x;正常(2.2 到 3.0)-> 1.1x;快速(> 3.0)-> 1.0x(不加速)。無語音(僅產品鏡頭)-> 1.0x,除非使用者另有要求。這僅為指南:請聆聽結果並與使用者確認;如有疑問,請同時交付兩個版本。
  • entregar.py 會將音量標準化至 -14 LUFS,並測量實際峰值:如果超過 -1 dBTP,則會降低增益直到符合標準。
  • 如果影片沒有語音或音樂(僅有音效),請使用 --solo-bajar 以避免提升音效音量。
  • 在確認完成前,請向使用者展示結果(打開檔案/傳送出去)並詢問哪些需要修改。
  • 第一次詢問使用者希望將影片儲存在哪裡,並記住此路徑(儲存在設定檔的 carpetaSalida 欄位中)。
  • 僅在該資料夾中保留最終版本。提供刪除你所建立的中間版本的選項(刪除前先詢問)。

如果出現問題

  • 「素材 X 不在 media/ 目錄中」:請重新執行 preparar.py 並包含該素材。
  • 「'comparativo' 場景被封鎖」:這是敏感類別的保護機制;請閱讀 references/politicas.md。
  • 「輸出結果與預覽不同」:cd <專案名稱>/hf && npx hyperframes lint。
  • 「磁碟空間不足」:HyperFrames 在渲染時需要數 GB 的暫存空間。
  • 字體會在渲染時從 Google Fonts 下載:需要網路連線。

相關技能