视频开场卡片连接到一份编码手册和一张中立比较表。
先描述开场,再提出说法。

钩子是用来吸引注意的开场手段。采集者不判断某个钩子是否奏效。Actor 是用来采集来源数据行的托管程序。Task 是已保存的输入预设。Actor 返回带时间的词语。标签由你来写。

窗口是你研究的开场时间段。每条视频使用同一个窗口,例如 0-3 秒。研究单位是这段固定开场,不是整条视频。这种方法不按表现给视频排序。

公开播放量不能衡量留存。留存指人们继续观看的时长。播放量不能表明某一个钩子造成了该表现。这篇帖子问的是,为什么不同开场的表现不同。那里的点赞不能显示竞争对手的留存。这篇帖子表明需要手工列出钩子。引用它时,只用它来说明需要手工列出钩子。不要照搬关于安装量、点击率、原因或所偏好工具的说法。

你可以采集什么

使用 TikTok Transcript Actor。当前公开版本是 0.1.36。它接受 1 到 100 个已知的公开目标。目标可以是视频 URL、短链接或数字视频 ID。它不搜索用户主页。它不搜索关键词。它不打开声音页。它不标记付费广告。

preferredLanguages 是你排好顺序的公开字幕语言列表。一条字幕轨道是词语的一个公开语言版本。Actor 按列表顺序选取一条已有的公开轨道。空列表使用第一条公开轨道。Actor 不翻译。对于没有公开轨道的声音,它不编写词语。它不采集评论。它不指定钩子标签。

languageCode 可以带地区,例如 eng-US。读取该行上的代码。不要假定简短语言名称和地区代码是同一条轨道。

每提交一个输入,都会在数据集中返回一行,即使该行不是成功的文字稿。把 videoId 存成文本。如果把长 ID 存成数字,它可能会改变。

一行包含这些字段:

  • inputIndex
  • inputUrl
  • videoId
  • videoUrl
  • authorHandle
  • durationSeconds
  • languageCode
  • text
  • segments
  • status
  • statusReason
  • isBillable
  • scrapedAt

一个 segment 是一段带时间的字幕文本。每个 segment 都有 startSeconds、endSeconds 和 text。按所给的 segment 时间使用。durationSeconds 是视频长度。它不是钩子窗口。

status 是该输入的结果词。它可以是 succeeded、no_public_captions、language_unavailable、duplicate_input、not_tiktok、invalid_input、unsupported_url、video_unavailable、not_public 或 blocked_or_challenged。读取轨道失败也是一种 status。succeeded 要求 text 不为空。失败 status 下的空 text 不是口播静音。

只有成功的公开字幕结果,isBillable 才为 true。其他行仍然是证据。平台使用与该标志是分开的。不要把整次运行称为免费。一次运行是一个 Actor 作业。

该作业还返回这些 OUTPUT 合计:

  • inputsReceived
  • resultRows
  • billableTranscriptRows
  • nonBillableResultRows
  • duplicateVideosSkipped
  • statusCounts

这些合计描述这次作业。它们不能表明你的视频代表所有视频。duplicateVideosSkipped 计算的是这次作业中跳过的重复视频。它不是研究发现。

公开检查日期是 2026-10-13。这次检查使用版本 0.1.36 和已保存的单视频输入。该行的视频 ID 与所请求的相同。text 不为空。该行有 12 个 segment,带有 startSeconds、endSeconds 和 text。这次检查没有保留字幕词语。这表明那一个来源有公开字幕路径。它不能表明每条视频都有字幕。它不能表明词语完全准确。它不能表明某个钩子标签有效。

已保存的 Task 是 TikTok 钩子研究 Task。它当前的输入是:

json
{
  "startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
  "preferredLanguages": []
}
你可以采集什么

把该样本换成你打算研究的一条已知公开视频。除非那条确切的视频属于你的研究,否则不要保留该样本。Task 只是起始输入。它不会替你标注。

如果做英语研究,使用这个单视频试点:

json
{
  "startUrls": ["PASTE_ONE_KNOWN_PUBLIC_VIDEO_URL"],
  "preferredLanguages": ["en"]
}
你可以采集什么

只有当英语是你声明的研究语言时,才使用 ["en"]。如果你研究另一种语言,写下该语言规则。不要照抄 ["en"]。空列表会保留第一条公开轨道。该轨道的语言可能不对。

八项行动

  1. 比较钩子之前,先写下问题和视频列表。

用一句话陈述创作问题。只列出你选定的已知公开视频。选定一个窗口,并对每条视频保持该窗口。同一个窗口可以避免你在一条视频上标注较早的词语,却在另一条视频上标注较晚的词语。Actor 不能搜索所有竞争对手帖子。它不能推断付费广告状态。你的列表是你声明的样本。它不是整个平台。

  1. 取得一条字幕轨道,然后检查身份、语言、status 和 text。

从一条预定的视频开始。把 videoId 与你的目标核对。检查 authorHandle。把 languageCode 与你的语言规则核对。检查 status 是否为 succeeded。检查 text 是否不为空。保留原始的 segment 时间。当 statusReason 存在时,读取它。

这些 status 使口播开场保持未知:no_public_captions、video_unavailable、not_public、blocked_or_challenged 和 language_unavailable。字幕读取失败也是未知。未知表示口播证据缺失。它不表示“没有钩子”。它不表示零。

如果 status 是 language_unavailable,不要把另一种语言标成你的研究语言。错误的输入 status 不是钩子结果。not_tiktok、invalid_input 和 unsupported_url 表示你必须修正输入。duplicate_input 不是第二条视频。该视频只计一次。

  1. 保留每一个与窗口共享时间的 segment。不要按时间占比切分字母。

两个时间段只要共享任何一段时间,就算重叠。对于 0-3 秒的窗口,当 startSeconds 小于 3 时保留该 segment。同时还要求 endSeconds 大于 0。完全位于窗口内的 segment 要保留。跨越 3 秒的 segment 要保留。从 3 秒或更晚开始的 segment 不保留。在 0 或更早结束的 segment 不保留。如果你另选窗口,就对每条视频在同一检验中使用新的结束时间。

跨越边界的 segment 可能含有窗口之后的语音。保留它的全部原始文本。观看该片段,并标出哪些词落在窗口内。不要按时间比例切分字母。语音可以有停顿。一个短词可能落在切点之后。一个长词可能落在切点之前。

  1. 比较结果之前,先写一份小型口播编码手册。

编码手册是口播标签和规则的书面清单。在寻找模式之前写好它。给开场编码,就是从该清单中给它一个口播标签。这些标签是手工研究标签。它们不是 Actor 字段。它们不是已被证明的致胜形式。

除非你先写下一条约定可以多于一个标签的规则,否则每条视频使用一个主标签。主标签是该视频的那一个口播标签。把提问和问题合并为 question_problem。如果拆开,一个关于某个问题的提问可能看起来像两个钩子。把 promise 和 result-first 分开。promise 指向后面。result-first 把完成的事物放在开场。标签清单是 question_problem、promise、result-first、spoken_demonstration_cue、other 和 no_clear_device。缺失的字幕保持为 unknown。unknown 不在这份口播清单里。

  1. 观看并聆听同一个窗口。把字段分开保存。

字段是你的表中一个有名称的位置。播放同样的 0-3 秒。在画面字段中记录你看到的内容。把印在屏幕上的词语记在它们自己的字段里。在音频字段中记录说话人和其他声音。记录最早的有意义动作及其时间。该动作是窗口内发生的第一件重要的事。

即使字幕文本为空,无声演示也可以是画面钩子。没有哪个文字稿字段能识别一个场景。不要把画面笔记粘贴到口播标签里。屏幕上的词语不是口播词语。如果你没有记录某个字段,就让它留空。空白与“无”不同。

  1. 保存证据、编码者和不确定之处。

保留原始字幕文本。任何更正都单独保留一条手工笔记。记录时间范围、口播标签、编码者和不确定之处。编码者是指定该标签的人。请第二位编码者复核一个小型试点,或者按事先声明的方式再审阅一遍。如果两次检查不一致,就修改规则或笔记。不要编造准确率分数。不要用手工副本替换原始文本。两者都需要。

  1. 在已声明的样本中比较各标签是否出现。

按不同视频计数,每条视频只计一次。不要按字幕 segment 计数。一个窗口中的两个 segment 仍然是一条视频。把未知字幕与已检查的口播开场分开报告。一个占比只使用你点名的分母。分母是你用来相除的那个计数。在结果中说出该分母。

如果你后来比较公开计数,就要匹配视频的发布时长、主题和时间。说明这一匹配只描述该集合。它不能表明某个标签造成了这些计数。不要只保留高播放量视频,并把它们的标签称为赢家。留存问题不能证明原因,那里的点赞也不能显示留存。

  1. 用这张表计划一次新测试,而不是有保证的增益。

用这些编码和笔记设计一个你可以测试的新开场。创作假设就是那个测试想法。它不是已承诺的改进。这种方法研究的是来源里已经存在的开场。它不选择新的剪辑点。它不剪出新片段。它不预测爆款。它不衡量留存。它不替你读画面。

口播编码手册

这份编码手册中的示例语句是原创虚构。它们不是公开对照中的词语。它们不是产品结果。每条视频得到一个主口播标签。

question_problem 是用于一个提问或一个被点名的问题的合并主标签。不要再给同一条视频加第二个口播标签。一句虚构语句是“你的托盘会翻倒吗?”

promise 表示说话人说某个结果将会出现,但完成的结果不在开场中。一句虚构语句是“我会让你看到一个放平的托盘。”这指向后面。它不是 result-first。

result-first 表示开场现在就说出完成的结果。一句虚构语句是“这就是做好的菜畦。”这些词语把做好的菜畦放在开场中。这与对稍后结果作出的 promise 不同。

spoken_demonstration_cue 表示口播词语让观看者去看一个动作。一句虚构语句是“看这个盖子扣紧。”无声动作不使用这个口播标签。把该动作放进画面字段。

other 表示一次有效检查在窗口中发现了一个清楚的口播手段,而且该手段位于已命名的类别之外。这个手段是单独的。加上一条短笔记,写出该手段的名称。

no_clear_device 表示一次有效的字幕检查或一次有效的手工检查,在窗口中没有发现口播手段。对已检查但没有口播手段的语音使用它。对已确认的静音也使用它。证据缺失或字幕检查失败时不要使用它。缺失或失败的证据保持为 unknown。

unknown 表示你没有可用的口播证据。它是缺失证据的标记,不是钩子标签。no_public_captions 行保持为 unknown。不要把 unknown 改名为 no_clear_device。不要把 unknown 改名为“没有钩子”。不要把 unknown 当作零。

虚构的逐步演算示例

下面四条视频是原创虚构。它们不是公开对照,也不是真实创作者的结果。每条视频的窗口都是 0-3 秒。上面的编码手册是唯一的口播编码手册。一条视频得到一个主口播标签,或者 unknown。

当 startSeconds 小于 3 且 endSeconds 大于 0 时,保留该 segment。

虚构的逐步演算示例
视频状态与窗口重叠的原始字幕口播标签画面字段音频字段最早的动作屏幕上的词语编码者不确定之处
V1succeeded0.0-1.5“你的托盘会翻倒吗?”另外 1.5-3.5“这个简单把手让它保持水平。”question_problem一个正在翻倒的托盘语音从 0.0 秒开始托盘在开场中翻倒未提供编码者 A第二个 segment 跨越 3 秒
V2succeeded0.0-2.0“这就是做好的菜畦”result-first做好的菜畦说话人介绍已经做好的菜畦做好的菜畦已经显示出来未提供编码者 A整个 segment 都在 0-3 秒内
V3no_public_captions无unknown一次无声演示没有可用的口播证据一次无声演示未提供编码者 A口播开场未知
V4succeeded无。第一条字幕从 4.0 秒开始no_clear_device一次直尺演示0-3 秒窗口内没有语音1.0 秒处的直尺动作未提供编码者 A手工观看发现 3 秒之前没有语音

V1 有两个 segment,两者都符合窗口检验。第一个从 0.0 秒到 1.5 秒。它的全文是“你的托盘会翻倒吗?”该 segment 位于窗口内。第二个从 1.5 秒到 3.5 秒。它的全部原始文本是“这个简单把手让它保持水平。”把这整句保留在原始字段中。这句话在 3.5 秒结束,所以只有它前面的短语在窗口内。手工笔记记下这次边界检查。不要切出字母的一个占比,并把该占比称为窗口内的语音。主口播标签是 question_problem。这两个 segment 仍然计为一条视频。它们不另加第二个主标签。

V2 有一个从 0.0 秒到 2.0 秒的 segment。整个 segment 位于窗口内。口播在开场就介绍了已经做好的菜畦,所以口播标签是 result-first。它不是 promise,因为开场没有把结果推迟到后面。画面字段把做好的菜畦记成一条单独笔记。该笔记不是第二个口播标签。

V3 的 status 是 no_public_captions,所以没有可标注的字幕文本。手工观看显示一次无声演示。只在画面字段中记录这一点。口播标记保持为 unknown。缺失的字幕不是口播静音,不是 no_clear_device,也不是口播意义上的“没有钩子”。

V4 的字幕为 succeeded,但第一条字幕从 4.0 秒开始。没有任何 segment 的 startSeconds 小于 3,所以没有字幕文本进入窗口。第一条字幕出现得晚,这一点本身不是证明。手工观看确认从 0 到 3 秒没有语音。口播标签是 no_clear_device。1.0 秒处发生一次直尺动作。那是画面演示。它不是 spoken_demonstration_cue,因为窗口里没有口播提示。

这一集合有 4 条选定视频。全部 4 条都有手工画面笔记。已检查的口播结果有 3 个:V1、V2 和 V4。未知的口播结果有 1 个:V3。三条已检查视频里有 1 条是 question_problem。已检查占比是 3 中的 1,即 33.3%。不要习惯性地报告成 4 中的 1。只有在你指全部选定视频时才使用 4。你仍然必须显示这 1 条未知视频。V3 不增加一个口播上的“没有钩子”。即使有两个 segment,V1 也只计一次。这四行没有使用标签 other。这个虚构不使用播放量,也不指出任何致胜标签。

原始文本和手工笔记留在分开的字段中。这个示例不编造一致程度分数。可以由第二位编码者审阅这四行,也可以再审阅一遍来检查这四行。出现不一致时,要修改笔记或规则。

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑