已标出的视频区间连接到一张剪辑交接卡,以及另一张人工复核卡。
剪辑前先核对时间和语境。

片段简报是一条计划片段的交接记录。入点是计划的开始时间。出点是计划的结束时间。时长是这条计划片段的长度。用时长 = 出点 − 入点。余量是该剪切点之前或之后的额外素材时间。余量给剪辑人员几秒用于修剪。除非简报写明,余量不属于成片。

TikTok Transcript Actor 返回字幕文本和时间。Actor 是托管的数据采集程序。这个 Actor 不剪切、不下载、不编辑、也不发布视频。它不授予再利用媒体的许可。你来做下面的核对。然后保存片段简报。真实片段请使用你自己已获授权的来源。

先用一条已知的时长规则

在选词之前,先写明剪辑目标、受众和时长。一篇公开的TikTok 片段剪辑招聘帖要求 10–20 秒的短剪辑,并要求镜头保持原顺序。那篇帖子是一份真实的工作请求。它不是全部买家的计数。它不能证明会有很多人观看这段片段。不要从中抄薪酬、电子邮箱或联系方式。不要假定该帖允许你再利用别人的视频。

一次字幕运行会返回什么

Task 是已保存的输入预设。一次运行是用该输入使用 Actor 一次。当前公开的 TikTok Transcript 版本是 0.1.36。它接受含 1–100 项的 `startUrls`。每一项必须是已知的公开视频 URL、短链接,或由数字组成的视频 ID。这个 Actor 不搜索主页、关键词页或声音页。

`preferredLanguages` 按你列出的顺序选取公开字幕轨。一条字幕轨是视频上已有的一种字幕语言。空列表使用第一条公开字幕轨。这个 Actor 不翻译。它对没有公开字幕的音频不写文本。它不采集评论。它不分配主题编码。

公开 Task 只是起始输入。它不会替你做这些核对。下面保存的输入是当前示例。请把该示例 URL 换成你自己已知的公开 URL。

json
{
  "startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
  "preferredLanguages": []
}
一次字幕运行会返回什么

做你自己的单视频测试时,只有在你选择研究英语时,才把 `preferredLanguages` 设为 `["en"]`。如果你研究另一种语言,就写下那条语言规则。没有这一选择时,不要保留英语。

每条已提交的输入返回一行结果。一行结果是一条记录。失败的行仍会返回。确切字段是 `inputIndex`、`inputUrl`、`videoId`、`videoUrl`、`authorHandle`、`durationSeconds`、`languageCode`、`text`、`segments`、`status`、`statusReason`、`isBillable` 和 `scrapedAt`。每个片段含有 `startSeconds`、`endSeconds` 和 `text`。按给出的两个时间使用。把 `videoId` 当作文本而不是数字保存,以免丢失数位。`languageCode` 可以包含地区,例如 `eng-US`。

`status` 可以是下列之一:

  • `succeeded`
  • `no_public_captions`
  • `language_unavailable`
  • `duplicate_input`
  • `not_tiktok`
  • `invalid_input`
  • `unsupported_url`
  • `video_unavailable`
  • `not_public`
  • `blocked_or_challenged`
  • 字幕或提取失败

成功需要 `text` 不为空。失败状态配上空文本,并不表示人们当时沉默。不要为这段空白编造言语。如果需要文字,请指出另一种来源方法。本文不讲授那另一种方法。

`isBillable` 为 true 表示这一行是一次成功的字幕结果事件。其他行仍是有用的记录。平台的使用与单次结果事件是分开的。不要把整次运行称为免费。

运行的 OUTPUT 字段只是运行计数。它们并不表示这些行代表全部视频。

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

一次公开核对使用了上面的示例视频。那次核对成功了。它保留了所请求的精确视频 ID。它的文本不为空。它有 12 个带 `startSeconds` 和 `endSeconds` 的片段。这里没有抄录该视频的字幕词。这次核对显示,那一个来源上存在公开字幕路径。它并不显示每个视频都能用。它不能证明每个词都与言语一致。它不能证明主题编码有效。

做这 8 项操作

  1. 先写明目标、受众和时长。

写明这段片段给谁看。写明它必须传达的那一个意思。在阅读字幕之前先写时长规则。对上面的工作请求,把成片控制在 10–20 秒内。一段内容可以有用,但仍可能不符合时长规则。时长规则是工作规则。它不是需求的计数。它不能证明人们会观看这段片段。

  1. 从一条已知视频及其字幕行开始。

选择一条你已经能点名的、已获授权的公开视频。在简报上保留 `videoId`、`videoUrl`、`languageCode` 和 `status`。只有当 `status` 为 `succeeded` 且 `text` 不为空时才继续。如果状态是 `no_public_captions` 或其他失败,就停止。不要编造言语。`duplicate_input` 行是已发送视频的额外副本。该视频只保留一行。这里只确认公开视频的步骤可以保持简短。片段工作从成功的字幕行之后开始。

  1. 选择一段完整的内容。

候选是一条可能的片段。它尚未获批。选择一段在你的目标下单独仍说得通的内容。如果前一行含有条件或否定,就保留那一行。后一行也因同一理由保留。条件是一种限制,例如“用同一个单位”。否定是一个会改变意思的“不”。如果丢掉其中任何一个,片段就可能说错。有用的字幕行只是候选。这份简报不标注整段视频如何开头。它记录一段内容、其时间和其语境。

  1. 根据片段时间设定入点和出点。

直接读取 `startSeconds` 和 `endSeconds`。把入点设在你需要的第一个词的开始。把出点设在你需要的最后一个词的结束。然后计算时长 = 出点 − 入点。片段可能相接或重叠。重叠不会增加视频时间。不要把一次重叠再加一次。长度仍然是出点减去入点。如果缺少 `durationSeconds`,这个未知值不是零。观看视频。交接前确认出点落在真实视频之内。

  1. 观看并聆听,然后仅在需要时添加余量。

播放候选片段。核对入点和出点没有截断言语。核对它们保留了需要的图示、动作、条件和说话人变化。剪切点是计划片段开始或停止的位置。如果剪辑人员需要额外的秒数来淡入淡出或修剪,就添加余量。把余量放在入点之前、出点之后,或两处都放。写下余量长度。写下这些余量覆盖的素材区间。把最终入点和出点与该余量区间分开保留。余量区间是可用的素材时间。除非剪辑人员更改简报,它不是最终时长。

  1. 保存一行完整的简报。

记录这些项目:

  • 来源 ID 和来源 URL
  • 时间单位:十进制秒或时间码
  • 出点是否为排他边界
  • 入点、出点和时长
  • 预定信息
  • 字幕语言证据
  • 人工声音和画面核对
  • 语境风险
  • 余量
  • 所有者、剪辑人员和审批状态

排他边界停在该瞬间之前。它不包含该瞬间。这里,字幕的 `endSeconds` 是最后一个所需词的结束。除非你知道来源帧率,否则不要用这些秒数制作帧时间码。没有帧率就没有帧时间码。

  1. 只有在预定意思以及片段起点和终点都通过核对后,才标为就绪。

`succeeded` 表示 Actor 返回了带文本的公开字幕。它并不表示剪辑人员已批准该片段。如果一个重要短语不清楚,把审批状态设为 `needs_review`。不要猜测用词。按该剪辑人员已经接收文件的方式,把已批准的来源文件交给剪辑人员。本文不下载该文件。

  1. 把完成的剪切与简报对照。

剪辑人员完成剪切后,把最终文件与简报对照。核对信息、长度、边界、可见文本和语境。由你或剪辑人员做这次核对。字幕时间是一份计划。它不能证明完成的文件与计划一致。

演练一节虚构的园艺课

下面这一节是原创的虚构示例。它不是产品结果。它不是真实字幕。它不是一次实测剪辑。

虚构来源是一节已获授权的园艺课。来源长度为 30 秒。这里使用的字幕行是四个片段。时间是十进制秒。

演练一节虚构的园艺课
片段startSecondsendSeconds文本
15.08.0把托盘放在平整的桌子上
28.012.5测量边缘内侧的宽度
312.516.0用厘米写下这个数字
416.019.0长度也用同一个单位。

时长规则是 10–20 秒。信息有两部分。用厘米测量内侧宽度。然后长度也用同一个单位。

text
duration = out - in
3.0 = 8.0 - 5.0
4.5 = 12.5 - 8.0
3.5 = 16.0 - 12.5
3.0 = 19.0 - 16.0
3.0 + 4.5 + 3.5 + 3.0 = 14.0
14.0 = 19.0 - 5.0
4.5 = 12.5 - 8.0
22.0 = 27.0 - 5.0
15.0 = 19.5 - 4.5
演练一节虚构的园艺课

四个片段在 8.0、12.5 和 16.0 相接。这些共用的瞬间不是额外的视频时间。四段长度相加得到 14.0。从 5.0 到 19.0 的跨度也是 14.0。

候选 1 使用入点 5.0 和出点 19.0。时长 = 19.0 - 5.0 = 14.0 秒。这落在 10–20 秒之内。这段内容保留了托盘、宽度、厘米和同一单位规则。观看确认直尺边缘保持可见。说出的单位条件保持完整。没有截断说话人变化。成片审批为 `ready`。

剪辑人员还要求入点前 0.5 秒余量和出点后 0.5 秒余量。余量起点 = 5.0 - 0.5 = 4.5。余量终点 = 19.0 + 0.5 = 19.5。余量跨度 = 19.5 - 4.5 = 15.0 秒。来源是 30 秒,因此 4.5 和 19.5 都在其中。可用素材区间是 15.0 秒。预定的最终剪切仍是 5.0–19.0,即 14.0 秒。不要把 15.0 秒称为最终时长。这 15.0 秒是余量空间。已批准的片段长度仍是 14.0 秒。

候选 2 使用入点 8.0 和出点 12.5。时长 = 12.5 - 8.0 = 4.5 秒。下限是 10 秒,因此 4.5 不合格。这次剪切还丢掉了“长度也用同一个单位。”单位条件丢失了。状态是 `needs_revision`。它未就绪。

候选 3 使用入点 5.0 和出点 27.0。时长 = 27.0 - 5.0 = 22.0 秒。上限是 20 秒,因此 22.0 不合格。点 27.0 仍在 30 秒来源之内。这四行不含 19.0 到 27.0 的字幕文本。不要为这段空白编造词语。状态是 `needs_revision`。它未就绪。

三者都不是 `needs_review`。所给的词是清楚的。候选 2 未达到下限,并丢掉了单位规则。候选 3 超过了上限。只有候选 1 就绪。

就绪行使用虚构标签。它不声称一次真实的可计费事件。

演练一节虚构的园艺课
简报字段就绪值
来源 IDfictional-garden-lesson-01,按文本保留
来源 URLhttps://example.com/authorized-garden-lesson
时间单位十进制秒。不是时间码。
出点边界19.0 结束最后一个所需字幕词。它不是排他的帧边界。帧率未知。没有制作帧时间码。
入点5.0
出点19.0
最终时长14.0 秒。公式:19.0 - 5.0 = 14.0。
余量入点前 0.5 秒,出点后 0.5 秒。
余量区间4.5–19.5。跨度:19.5 - 4.5 = 15.0 秒。这不是最终时长。
预定信息用厘米测量内侧宽度。长度也用同一个单位。
字幕语言证据虚构的 `languageCode` eng-US。教学行假定 `succeeded`,且文本不为空。这些词是虚构的。
人工核对已听声音,已看画面。言语完整。直尺边缘保持可见。同一单位那一句有说出。没有切断说话人变化。
语境风险从 8.0 开始会丢掉托盘那一行。在 12.5 结束会丢掉同一单位那一行。就绪剪切保留两者。
来源时长30 秒,已知。点 4.5 和 19.5 在来源之内。如果这个值未知,它不会是零。先在视频上确认出点。
所有者虚构课程所有者
剪辑人员虚构片段剪辑人员
审批状态ready
演练一节虚构的园艺课
候选入点出点时长状态
15.019.019.0 - 5.0 = 14.0ready
28.012.512.5 - 8.0 = 4.5needs_revision
35.027.027.0 - 5.0 = 22.0needs_revision

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑