应用宣传视频工作室 是做什么的?
从模拟器截图制作一份完整、诚实的应用宣传视频,然后发布到 YouTube、你的 Facebook 主页、Instagram 和 TikTok。保留真实的应用 UI;绝不要虚构功能、数字或声明。
此技能与应用无关。 它适用于任何应用。一切由规格驱动:一个新应用就是一个新的 JSON 规格,外加自己的截图、演示记录、行动号召、披露文字和旁白文字——无需修改代码。Astra Phone Directory 宣传活动视频(2026年10月)是 examples/ 中的工作参考;复制它并替换应用的内容。对于每个新应用,在制作前确认:一个营销承诺、真实的功能集、安全的演示数据、Play Store 链接以及诚实的披露声明。发布到品牌自己的 YouTube 频道、Facebook 主页、Instagram 和 TikTok;只有每个应用的 YouTube 播放列表在不同应用之间有所区别。
在同一个会话中重复使用已加载的技能。在运行时发现工具路径(which ffmpeg、emulator -list-avds);不要硬编码机器路径,并保持仓库内路径为相对路径。
硬性规则(不得违反)
- 公开视频中仅使用安全演示数据。 虚构的演示记录(随机姓名/头像、假身份证号)是可以的;绝不要使用真实人员的号码或所有者自己的号码。如果应用返回真实的第三方数据,请与用户确认演示数据集。
- 显示每个数据字段。 每个卡片场景显示整张卡片;不要裁剪掉任何字段。
- 诚实的文案。 不虚构功能、数字、奖项或评论。在行动号召和字幕中保留第三方目录和号码删除披露。
- 任何地方都不能使用破折号(场景、字幕、标题、描述、提交消息)。使用 "-" 或拆分句子。
- 始终使用自定义缩略图。 绝不要让平台自动选择一帧。对于短视频 / 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截图(对/sdcard/命令前缀使用MSYS_NO_PATHCONV=1)。优先使用截图而非screenrecord(后者可能卡顿)。清除最近搜索以确保构图一致;将每个结果卡片裁剪为整张白色卡片。 - 组合场景。
python scripts/make_scenes.py <spec.json> <assets_dir> <out_dir>->s1.png..sN.png。语法:钩子 -> 主页截图 -> 每个演示记录一张卡片 -> 功能陈述 -> 行动号召。参见 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> <秒数>- 连续和弦背景音乐,通过 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):新应用只需新规格和新截图,无需新代码。 - 每个阶段验证:目视检查捕获(正确记录、所有字段)、音乐
volumedetect(~-15 dB 均值意味着确实混合在最终视频中)、最终渲染(时长、音量和帧数,从钩子/卡片/功能陈述/行动号召检查)。 - 诚实地报告失败:如果 edge-tts 因网络被阻止,则提供场景 + 音乐 + 时间码脚本,并将语音标记为唯一受阻部分。绝不要伪造语音、数据或声明。
参考资料
- references/pipeline.md - 捕获、场景、旁白、音乐、组装的详细说明。
- references/publishing.md - 四个频道、自定义缩略图、无 AI 规则、账户/个人资料、各平台检查清单、先草稿后发布。
- references/gotchas.md - 所有曾耗费时间的陷阱(静音音乐、被掩盖的音乐、edge-tts Windows 修复、
/sdcard路径混乱、卡片框架漂移、上传根目录)。 - examples/ - 参考规格和英语/乌尔都语旁白行;截图未随附。