视频脚本
一个短视频在拍摄前就已经基本决定了,由三个选择决定:利益相关者(除了内部人士,谁有理由关心)、前两句话(为什么继续观看)和实证(观众看到什么使主张可信)。每个选择都要基于证据:首先是创作者自己过去的视频,其次是平台说明,最后才是个人品味。
观众观看的目的是为了寻找一个问题的答案。好奇心让他们留下,每个答案又给他们一个离开的理由,所以脚本是在两者之间取得平衡:尽早提出一个问题,并且在另一个问题被提出之前,不要关闭它。
设置
SKILL_DIR 指代此技能所在的文件夹。如果存在 ~/.video-script/profile.md 文件,则读取它:该文件指定了创作者的视频库、发现文件、平台笔记、声音和节奏。在提出任何建议之前,请先读取发现文件(包括仍在运行的测试)和库索引,并引用与想法相似的过去视频。当发现文件的内容与以下默认内容冲突时,以发现文件为准:因为它们是在该受众群体上衡量得出的。
如果没有配置文件,则询问一次平台、受众群体、一个表现好的过去视频和一个表现不好的过去视频及其数据。然后主动提供创建配置文件和库格式的库。
目标 意味着视频构建的目的:覆盖量(来自非关注者的观看数)、关注数、收藏数或分享数。当请求没有指定任何目标时,默认为覆盖量并说明这一点。
此处的任务是脚本和复盘已发布的视频;创意点子归 content-ideas 处理。此技能的输出止于脚本或经验教训:拍摄是创作者的事,编辑是 video-edit 的事,动画是 animated-video 的事。
创意点子
想出并保存创意点是 content-ideas 的职责。当一个脚本从一个创意点开始时,其笔记已经说明了钩子、它提出的问题、隐藏了什么以及实证:从这些开始,并在依赖它们之前对照来源进行核对。
脚本
用一句话陈述创意点及其目标。一个需要两句话才能说清的创意点就是两个视频;询问先制作哪一个。
在写钩子之前,先找到回报和最强有力的实证,然后用两部分写出钩子:第一部分是用目标受众描述其问题的语言,将主题陈述为他们想要的结果;第二部分是您拥有的最令人惊讶的真实主张或实证,它提出了一个观众可以用语言表达的问题。当命名主题会回答那个问题时,不要命名它。按照创作者的节奏(来自配置文件;默认为每秒3个口语词)进行草稿。三个时刻与时间紧密相关,它们之间的段落遵循一条规则;其余部分则遵循故事自身的形状:
- 0–3 秒,钩子:关于观众的利害关系或屏幕上显示的内容。先展示资历,作为相信的理由;当观众想要的结果能提出问题时,它就算作一种利害关系。
- 3–10 秒,第二句话:提高钩子的赌注或强化其问题,但不回答它。大多数可以避免的流失都发生在这里,因此背景信息要往后放。背景信息是指观众仅为了理解后续细节而需要知道的任何内容(历史、某人是谁、某物如何工作);测试方法是:如果将某一行移到15秒之后,在前15秒内没有损失任何内容,那么它就是背景信息。
- 中间部分,答案被保留:回报不是一个单一的时刻。说出能够关闭钩子问题的句子,通常是观众能识别的一个术语:一旦听到它,他们就认为知道了其余部分。在此之前,是引导到那里的内容,并且本身值得一听:大多数人搞错了什么、它让他们付出了什么代价、为什么明显的替代方案失败了。当它最终被说出来时,同一口气又提出了一个新问题,一些关于它但观众还没听过的东西。保留意味着同时给他们一些别的东西;仅仅挑逗或说“坚持到最后”的句子不是保留,而是填充。
- 结尾:最终的回报,屏幕上展示钩子承诺的画面,然后最多一个简短的行动号召。回报之后的任何内容都是给即将离开的观众看的。
对于解说型(某物如何工作),请在起草前阅读解释型视频。
在每一行旁边,写下观众看到的内容以及需要捕捉的类型(屏幕录制、文档、真人或产品)。一行无人能画出的内容是观众必须记在脑海里的。对于动画视频,这一列是给 animated-video 的注释,由其设计世界。
交付并按配置文件中指定的位置保存:脚本包括时间、口语线和屏幕画面;捕捉列表;草稿标题包含口语脚本无法承载的注意事项和链接,其开头提出钩子的问题而不是回答它;预估时长;替代钩子(每个都附带自己的第二句话,当开头仍不确定时);以及需要验证的主张及其来源(标记任何无法打开的来源)。让一个新的代理根据来源逐一检查脚本中每个主张的措辞:正确的研究仍然可能在脚本中被夸大。
当创作者重写某些行时,将风格差异带到您仍然拥有的行中。除非被要求编辑,否则保留他们的措辞,并单独指出其中的事实问题。
检查清单
在交付脚本之前,对照以下内容、发现文件和平台笔记进行检查:
- 一个创意点。只有当每个项目都证明了那个创意点时,列表才有存在的理由。
- 利害关系是根据谁受影响以及他们想要什么来定义的,使用非专业人士能理解的词汇。工具名称和行话要在观众有理由关心之后才出现。
- 以观众的身份阅读:每一行,问自己现在是否会觉得知道了答案而离开。如果是,在计划的时间点之前,移动该行或在那里提出下一个问题。说出什么关闭了钩子的问题以及何时关闭。
- 每个主张都被展示出来。声音、字幕和屏幕给出相同的数字。
- 钩子中的每个承诺都在屏幕上得到了兑现。
- 每个句子,单独阅读,都能说明谁对什么做了什么,以及任何结果去了哪里。替换缺失的宾语和模糊的指代,使用名词;保留指代清晰的代词。修改会破坏这一点,所以每次修改后都要再次检查。
- 句子是完整、连贯的,使用创作者的语调(配置文件中的语调指南),易于大声说出。一个被截断得如此之短以至于引出一个问题(“完整的路线”指的是什么?)的句子,其代价超过它节省的几秒钟。
- 每一行都推动故事向前发展(重复前一行或宣布即将发生什么的行则不会),并且运行时长度尽可能短,以允许故事讲完。
复盘已发布的视频
- 记录每一个数据:观看次数、观众数、平均观看时长、关注数、互动次数、每个比率及其标签、按来源划分的观看次数,以及带有时长的留存曲线(阅读数据洞察)。从屏幕截图中,使用
python3 SKILL_DIR/scripts/retention_curve.py SHOT --duration SECONDS读取曲线,并检查其基于面积的平均值与应用中的数字是否一致。根据缩略图、图表日期和观看次数来识别每个屏幕截图对应的视频;当这些证据无法判断时进行询问。 - 将曲线与最终渲染的字幕对齐:对于每一个悬崖和平台,记录其发生前几秒钟内所说的内容和显示的内容。与库进行比较:相同格式的视频,以及每个视频的 3→10 秒下降率。
- 当存在值得制作的下一个版本时,指出它:要解决所发现问题的最小的更改,例如新的钩子或用户在离开处的剪辑,或者一个击败其他视频的视频做对了什么以及如何重复它。
- 编写视频的库条目和索引行,然后更新发现文件:将证据添加到它触及的每个假设,并且仅当两个或更多视频一致时才更改状态。在保存之前,从字幕文件中获取每一行引用的内容和时间,而不是摘要;仅在有来源的情况下提供发布日期;对照索引检查每个排名词(最高、最低、唯一、最佳),范围限定为其覆盖的视频。