App Promo Video Studio 是做什麼的?
從模擬器擷取畫面,製作一部完整且真實的應用程式宣傳影片,然後發布到 YouTube、你的 Facebook 粉絲專頁、Instagram 和 TikTok。保留真實的應用程式 UI;絕不虛構功能、數字或宣稱。
此技能與應用程式無關。 它適用於任何 App。一切皆以規格檔驅動:新 App 只需一個新的 JSON 規格檔,加上自己的截圖、示範錄製內容、CTA、揭露文字和旁白稿,無需修改任何程式碼。Astra 電話簿宣傳影片(2026 年 10 月)是放在 examples/ 中的參考範例;請複製它並替換 App 的內容。對於每個新 App,在開始製作之前,請先確認該 App 的一個行銷承諾、實際功能集、安全的示範資料、Play Store 連結,以及誠實的揭露文字。發布到品牌自己的 YouTube 頻道、Facebook 粉絲專頁、Instagram 和 TikTok;不同 App 之間只有 each-app 的 YouTube 播放清單不同。
在同一 session 中重複使用已載入的技能。在執行階段發現工具路徑(which ffmpeg、emulator -list-avds);不要對機器路徑進行硬編碼,並保持倉庫內路徑的相對性。
嚴格規則(不可違反)
- 公開影片中僅使用安全的示範資料。 虛構的示範資料(隨機姓名/頭像、假 CNIC)是可以的;絕對不能使用真實私人號碼或擁有者自己的資料。如果 App 回傳即時第三方資料,請與使用者確認示範資料集。
- 顯示每個資料欄位。 每個卡片場景都顯示完整卡片;不要裁切任何欄位。
- 誠實的文案。 不要虛構功能、數字、獎項或評論。在 CTA 和字幕中保留第三方目錄和號碼移除的揭露聲明。
- 任何地方都不使用長破折號(em dashes)(場景、字幕、標題、描述、提交訊息)。請使用 "-" 或拆分句子。
- 始終使用自訂縮圖。 絕不讓平台自動選取畫面。對於 Reel / Short / TikTok(垂直方向),請使用 9:16 的
thumb_9x16.png;只有橫向的 YouTube 上傳使用thumb_16x9.png。YouTube Short 會將 16:9 縮圖置中裁切為狹窄的 ~9:16 條帶,因此請將關鍵內容保留在中央 ~405px 的欄位中,並在上傳前透過裁切 9:16 中心來驗證。 - 烏爾都語字幕/標題使用羅馬烏爾都語(拉丁字母),而非烏爾都語腳本。 口語旁白保持烏爾都語;烏爾都語版本的書面字幕/標題/描述使用羅馬烏爾都語。
- AI 揭露:要準確,絕不自動。 閱讀每個平台目前對 AI 生成、修改或合成內容的定義,並如實回答。旁白是神經(合成)語音,因此只要平台規則涵蓋合成音訊,就必須揭露。
- YouTube「為兒童製作」:始終選擇「否」。 這些宣傳片是針對成人。
- 先草稿,僅在獲得每個平台的明確許可後才發布。 發布是對外的且不可逆轉;先準備好所有私人內容,然後等待許可。在發布後,標記 Play 建置版本並記錄每個貼文的 URL 和結果。
工作流程(六個階段)
完整細節請參閱 references/pipeline.md。腳本位於 scripts/,範例規格檔位於 examples/(請先加入你自己的截圖)。
- 捕捉(模擬器)。 使用
scripts/set_demo_statusbar.sh清理狀態列;使用adb exec-out screencap -p截圖(以MSYS_NO_PATHCONV=1為/sdcard/指令加上前綴)。偏好靜態截圖而非screenrecord(它會有卡頓)。清除最近搜尋,使框架一致;將每個結果卡片裁切為完整的白色卡片。 - 組合場景。
python scripts/make_scenes.py <spec.json> <assets_dir> <out_dir>->s1.png..sN.png。文法:鉤子 -> 主頁截圖 -> 每個示範記錄一個卡片 -> 功能陳述 -> CTA。參見 references/pipeline.md 了解設計規則。 - 旁白(英文 + 烏爾都語)。
python scripts/gen_vo.py <vo_spec.json> <out_dir>。英文使用en-US-AvaNeural,烏爾都語使用ur-PK-UzmaNeural。該腳本包含 Windows SelectorEventLoop 修復和 403 重試。請撰寫自然的烏爾都語,而不是字面翻譯。 - 音樂。
FFMPEG=<ffmpeg> scripts/build_music.sh <out.wav> <seconds>- 連續和弦襯墊, loudnorm 標準化至 -16 LUFS,使其在旁白下清晰可聞。傳入的秒數要比場景總秒數多幾秒。使用volumedetect驗證。 - 組裝。
python scripts/build_video.py --scenes <dir> --vo <dir> --music <wav> --out <mp4> --ffmpeg <ffmpeg>。根據旁白行自動調整每個場景的時間(使英文和烏爾都語版本都能容納),場景間交叉淡入淡出,在旁白下混入音樂。驗證時長、音量和畫面。 - 縮圖 + 發布。
python scripts/make_thumbnail.py <spec.json> <assets_dir> <out_dir>,然後按照 references/publishing.md 的步驟操作四個頻道(自訂縮圖、誠實的 AI 揭露、先草稿、上傳前確認目標頻道)。
快速開始(從範例開始)
SK=<skills-dir>/app-promo-video-studio # 技能安裝位置
FF=$(which ffmpeg); W=<scratch_dir>
python "$SK/scripts/make_scenes.py" "$SK/examples/video_spec.example.json" "$SK/examples/assets" "$W/scenes"
python "$SK/scripts/gen_vo.py" "$SK/examples/vo_en.json" "$W/vo_en"
FFMPEG="$FF" bash "$SK/scripts/build_music.sh" "$W/music_en.wav" 33
python "$SK/scripts/build_video.py" --scenes "$W/scenes" --vo "$W/vo_en" --music "$W/music_en.wav" --out "$W/promo_en.mp4" --ffmpeg "$FF"
python "$SK/scripts/make_thumbnail.py" "$SK/examples/video_spec.example.json" "$SK/examples/assets" "$W/thumb"
要切換為烏爾都語,請使用 examples/vo_ur.json 執行 gen_vo.py,輸出到 vo_ur,重建音樂時長多幾秒(烏爾都語台詞較長),然後針對 vo_ur 進行組裝。
使其健壯且智慧
- 自動定時(
build_video.py)根據語音行調整每個場景的長度,因此同一組場景可以乾淨地渲染出英文和烏爾都語版本,無需手動調整偏移量。 - 規格檔驅動(
make_scenes.py、make_thumbnail.py讀取一個 JSON),因此新 App 只需一個新規格檔加上新的截圖,無需新的程式碼。 - 每個階段都進行驗證:目視檢查捕捉(正確的記錄、所有欄位)、音樂
volumedetect(~-15 dB 平均值 = 確實混入)、最終渲染(時長 + 音量 + 鉤子/卡片/陳述/CTA 的畫面)。 - 誠實地失敗:如果 edge-tts 因網路問題被封鎖,則交付場景 + 音樂 + 時間碼腳本,並將語音標示為唯一被封鎖的部分。絕不偽造語音、資料或宣稱。
參考資料
- references/pipeline.md - 捕捉、場景、旁白、音樂、組裝的詳細說明。
- references/publishing.md - 四個頻道、自訂縮圖、無 AI 規則、帳號/個人檔案、每個平台的檢查清單、先草稿關卡。
- references/gotchas.md - 每個曾經耗費時間的陷阱(無聲音樂、靜音音樂、edge-tts Windows 修復、
/sdcard路徑亂碼、卡片框架偏移、上傳根目錄問題)。 - examples/ - 參考規格檔和英文/烏爾都語旁白稿;截圖不包含在內。