发布 / 演示视频
一个可重复的管道,用于将产品、功能或页面转化为带有旁白的短视频,然后发布到 YouTube、嵌入到页面中并进行公告。它之所以存在,是因为手动操作意味着每次都要重新发现十几个不明显的细节(OAuth 的古怪之处、配音同步计算、点击播放的嵌入方式、响度目标)。
默认输出:1080p / 30fps 的视频,时长约 45–60 秒,带有情感化的配音,上传时先设为不公开供用户审批,然后转为公开。未经用户观看/听取,切勿公开发布任何视频——声音和节奏是主观的。
为你的项目进行配置
首次使用前,填写 config.md(一些 ID 和路径)。技能会读取这些值而非硬编码,因此适用于任何产品。你需要填写的值:
- 你的 YouTube 频道(OAuth 账户必须已选择该频道)
- 你的 OAuth 客户端密钥路径和 GCP 项目编号(已启用 YouTube Data API v3)
- 成品视频公告发布的位置(Slack 频道、Discord 等)
- 你的品牌颜色和产品 URL 模式
何时使用
为页面/功能/工具制作任何视频、添加配音或将视频发布到 YouTube 时使用。对于“为我们最优秀的页面添加视频”这样宽泛的需求,先从你的分析工具中提取顶部页面,然后对每个页面运行此管道——先试点一个,获得格式批准,然后批量处理其余部分。
管道(7 个步骤)
从上到下操作。每个步骤在引用的文件或脚本中都有详细说明。
-
了解主题。 阅读实现/文档,以便所展示的步骤与真实行为一致。对于工具演示,使用 Playwright 驱动实际工具以查看实际的输入→输出流程——这就是演示本身。
-
捕获真实截图。 对生产环境使用 Playwright,1920×1080。首先隐藏任何推广横幅/ Cookie 栏。请参见
references/video-production.md→ “捕获截图”。 -
构建 Remotion 视频。 复制
remotion-scaffold/结构。场景在src/theme.ts中以 30fps 的帧数计数。根据其旁白长度(步骤 4)调整每个场景的大小。完整的场景/动画模式见references/video-production.md。 -
生成配音。
scripts/tts_voiceover.py— OpenAIgpt-4o-mini-tts,声音ash,配有用于情感的instructions提示(没有这个提示,朗读会平淡而机械——这是最重要的配音细节)。它会生成每个场景的片段,将每个片段同步到其场景的开始帧,并对混合轨道进行响度归一化。如果某个片段超出了其场景的长度,则在theme.ts中重新调整场景时间,然后重新渲染。 -
渲染 + 混流 + 编码。
npx remotion render,使用 ffmpeg 将配音轨道混流(-c:v copy),然后编码为< 10 MB的上传版本(libx264 -crf 25 -movflags +faststart)。命令见references/video-production.md→ “渲染、混流、编码”。 -
发布到 YouTube。
scripts/youtube.py(上传时包装了youtubeuploader,其余操作使用 Data API)。先设为不公开,获得用户批准后,再设为公开。首先阅读references/youtube-publishing.md——其中包含认证设置、OAuth 重定向陷阱、API 未启用故障、配额限制和元数据模板。 -
嵌入 + 公告。 在页面中添加一个点击播放的外观部分(海报 + 播放按钮;YouTube iframe 仅在点击时挂载——避免初始加载)。然后将链接发布到你的团队频道。两种模式见
references/embed-and-announce.md。
护栏
- 不公开 → 批准 → 公开,每次都这样。上传到用户自己的频道需要他们的签署。
- Google OAuth 同意必须由用户自行给予——你不能替他们点击“允许”。如果认证未设置,请引导他们完成(参见
references/youtube-publishing.md),不要试图绕过。 - 保留主渲染版本;只有上传版本受尺寸限制。
- YouTube API 配额 ≈ 每 24 小时 6 次上传。大于此数量的批次必须分散到数天内——请提前说明,而不是中途静默失败。
- CLI 无法设置缩略图——请提示用户应在 Studio 中自行添加(或通过 API 单独设置)。