/brag-slim
你构建了它。现在,自夸吧。你自己制作整个视频——故事、视觉、音频、渲染——使用机器上已有的任何工具。
无论基调如何,它都应该感觉像一个现代、流畅、精致的启动视频:屏幕或音轨上,没有不配存在的元素。
用法: /brag-slim [input] [options]。选项(标志或自然语言):
| 选项 | 默认值 |
|---|---|
--tone <预设或自由形式> | 推断;如果没有明确匹配则使用 default |
--format landscape|vertical|square | landscape (1920×1080; vertical 1080×1920, square 1080×1080), 30fps |
--duration <s> | 约 20s |
将交付物写入当前目录的 brag-output/(如果已存在,则写入带时间戳的 brag-output-YYYY-MM-DD-HHmmss/)。将所有中间文件(帧、下载内容、脚本、音轨)保存在其内部的 work/ 子文件夹中。
1. 检查
首先确定输入是什么,然后从中收集素材。只有源材料会变化;从下面的问题开始,每个输入的处理方式都相同。
| 输入 | 如何识别 | 素材来源 |
|---|---|---|
| 项目 | 未提供输入,且当前目录是一个项目 | 代码 |
| 网站 | 一个 http(s):// URL,或像 example.com 这样的裸域名 | 实时网站 |
如果输入不匹配任何类型,或者没有输入且当前目录不是一个项目,请询问用户想要夸耀什么。
项目
阅读代码:主页、样式(精确的颜色和字体)、README、路由和关键组件。最好的素材是正在使用中的产品——找到它的 2-3 个关键节拍:进入 → 关键操作 → 结果。
你拥有源代码,因此直接使用它:在视频中导入或渲染项目的真实组件、样式表、字体、图片和动画,而不是重新构建它们。
网站
像访问者一样获取网站。许多网站使用 JavaScript 构建页面,因此简单的下载可能返回一个几乎空的壳。如果是这样,请在无头浏览器中加载页面以获取渲染后的结果。关闭 Cookie 横幅和其他覆盖层,并逐节滚动,因为滚动时才会动画显示的内容在单次全页面捕获中会保持空白。
- 文案: 标题、标语、章节标题、功能名称、行动号召、用户评价。还要检查页面的标题、元描述和社交预览标签。
- 品牌标识: 来自网站 CSS 的确切颜色以及它加载的字体。
- 视觉元素: Logo、产品截图、英雄图、演示视频。将你要使用的下载到
work/中。 - 截图: 以视频的宽高比捕获页面,以理解其布局。在视频中,重用网站真实的标记、CSS 和资产并让它们动起来,而不是在平面截图上平移。
- 正在使用的产品: 检查演示视频、运作方式的章节和链接的文档,以了解进入 → 关键操作 → 结果的流程。
然后,针对每个输入
在规划之前,回答:它是什么(一句话)?它是为谁服务的,能为他们做什么?它的与众不同之处是什么?最令人印象深刻或最有趣的宣称是什么?视觉上的钩子是什么?应该展示哪个真实的 UI 或流程?哪种基调合适?一行字的分享文案是什么?
2. 规划
编写 brag-plan.md:角度、钩子、2-3 个亮点、点睛之笔、基调、视觉标识,以及一个按场景划分的故事板,每个场景的时长总和要等于目标时长。
如果用户指向某一部分——一个新版本、一个新功能、一个角度——将其作为视频的焦点。
结构: 钩子 (2-3s) → 揭示 (2-4s) → 2-3 个尖锐的亮点 → 点睛之笔/结尾 (2-4s)。这是一个起始结构,而非模板。
创意法则
- 短小精悍。 15–25 秒;18–22 秒是黄金范围。
- 对陌生人清晰易懂。 看一遍之后,一个从未听说过它的人就能知道它是做什么的、为谁服务、以及如何获取。以此为核心,而不是围绕它是如何构建的。
- 钩子是一切。 前 2 秒决定了是否有人会继续观看。先规划它。
- 展示真实东西。 重用源材料中的真实内容——它的 UI、组件、文案、图片、视频和动画——而不是重新创建它。只重建那些无法重用的东西。比起展示一个描述它的着陆页,更倾向于展示正在工作的应用本身。在展示产品使用时,使用小的说明性 UI 文本是可以的(一个文件名,一个“已导出”的提示);但编造的声明、数字或用户评价则不行。永远不要使用抽象的填充内容。
- 具体。 它必须感觉是为这个特定的项目制作的。使用项目自身的文案和声明;不要使用通用的 SaaS 语言(严禁使用“简化你的工作流程”)。
- 可读性。 节奏来自动效和剪辑,而不是过早地将文本移走。任何需要观众阅读的台词,都必须在其完全可见且稳定后,停留足够长的时间以便阅读(大约每字 0.3 秒),从整行文字出现在屏幕上时开始计时。只是作为纹理的文本则无需阅读。
- 让它活起来。 逐项出现、模拟点击、滑动和输入的效果胜于静态演示。
- 幽默要恰到好处。 幽默来自于项目自身的荒诞性,而不是刻意为之。
- 每一帧都可发布。 任何静止的帧都应该值得分享。
基调
预设是默认值;自由形式的指导(比如“假装是 2016 年的 Series A 启动”)可以细化或覆盖它们。
| 基调 | 感觉 | 节奏/转场 |
|---|---|---|
default | 有力、俏皮、干净 | 4-5 个场景;柔和转场 |
polished | 严肃、优雅、克制 | 3-4 个场景,长时间停留;柔和淡入淡出 |
yc-parody | 面无表情的初创公司启动,一本正经地演 | 4-5 个场景,每场景一个主张;硬切换 |
chaotic | 快速、大声、全大写 | 6-8 个场景,部分低于 2s;闪光/缩放切换 |
deadpan | 冷静、干巴巴,一切都不好笑 | 3-4 个场景,大面积的留白;缓慢淡入淡出 |
cinematic | 预告片场景,史诗般的主张 | 4-5 个场景,大号字体;戏剧性的划像 |
app-store | 干净的功能卡片 | 4-6 个场景;平滑滑动 |
声音
将音乐和音效作为一个整体来编写:音效与音乐处于相同的调性和空间,混合其中而非叠加其上。进行一个基本、适当的混音,就像真正的曲目混音那样:音效柔和地置于音乐之下,没有刺耳或尖锐的声音,重复的小声音保持在背景中。
3. 构建、检查、渲染
使用本机上可用的任何方式构建。如果你在浏览器中绘制视频,则使每一帧都成为时间的纯函数,并在捕获每一帧之前等待字体和图片加载完成。
在全渲染之前,查看所有场景以及转场中间的静态帧,并修复溢出、碰撞和对比度低的问题。两个繁忙布局之间的简单交叉淡入淡出会产生模糊的双重曝光;将其错开(旧内容移出,然后新内容移入),或者通过背景过渡。然后渲染 brag.mp4。
4. 交付
- 海报: 提取最有力的稳定的帧(文字完全显现,不在转场中间)作为
brag.jpg,并将其作为第 0 帧嵌入brag.mp4,这样所有平台的缩略图都会显示它。替换第 0 帧而非增加一帧,以保持时长和音频同步不变。 share-copy.txt: 1-3 句话,可直接发布,具体,与基调匹配。不要用“激动地分享”。- 告知用户视频和文案的位置,用一句话说明创意角度,并提供重新生成某个场景或尝试另一种基调的选项。