
引文记录是你为一个片段保存的笔记。有些人也将这种笔记称为引文台账。它保存引文所要支持的论断、来源、时间、原始字幕、核对后的文字和审核状态。
带时间信息的字幕能提供什么
Actor 是托管运行的数据采集程序。YouTube Transcript Actor 根据你已知的视频 URL,读取该视频的公开字幕轨。字幕轨是与视频一起存储、带有时间信息的文本。Actor 复制这些已存储的文本。它不会将语音重新转换为文字。它不会识别说话者。它不会核查事实。它无法证明引文与原话完全一致。
Task 是已保存的输入预设。YouTube 带时间戳转录文本 JSON Task 提供已发布的初始输入。它要求输出 JSON 格式的带时间信息的片段。JSON 是一种用文本表示字段名和字段值的方式。已发布的 Task 只是初始输入。它不会替你完成这里的引文核查。
YouTube Transcript 的公开构建版本 0.1.43 接受 4 个输入字段。
- `startUrls` 存放已知的视频 URL 或视频 ID。
- `preferredLanguages` 存放你偏好的语言代码。空列表不会强制指定语言。
- `outputFormats` 用于指定结果格式。请使用 JSON。
- 将 `includeFailedInputDetails` 设为 true,可要求在某个输入处理失败时返回一条详细记录。
已发布的 Task 包含 3 个示例视频 URL。这些示例不是你的来源。请用 1 个已知的公开视频替换整个列表。如果保留示例,你可能会读到其他视频的结果记录。输出格式应保持为 JSON。`includeFailedInputDetails` 应保持为 true。失败记录可以说明失败原因。失败记录不是经过核实的引文。Actor 不会查找频道内的视频。它也不会查找播放列表内的视频。
{
"startUrls": ["https://www.youtube.com/watch?v=YOUR_VIDEO_ID"],
"preferredLanguages": [],
"outputFormats": ["json"],
"includeFailedInputDetails": true
}将你实际使用的公开视频 URL 放入 `startUrls`。删除所有示例 URL。最外层的花括号标示输入的开始和结束。方括号标示列表的开始和结束。如果你知道视频中所说的语言,请将相应语言代码放入 `preferredLanguages`。如果不知道,请保留空列表。语言列表为空并不表示字幕是英文。
一次兼容性检查返回了 1 条状态为 succeeded 的记录。该记录包含非空的人工英文字幕轨。人工字幕轨由人制作,并非自动生成。带时间信息的片段属于预期视频。你可以引用这项状态事实。不要引用示例视频中的话。这些话不属于本方法的内容。
一条记录是一个视频的一项结果。请按返回时的原样保留每个字段。有用的字段包括:
- `videoId` 是视频的公开 ID。
- `videoUrl` 是视频的公开地址。
- `transcriptLanguageCode` 是字幕的语言代码。
- `isAutoGenerated` 表示字幕轨是否由 YouTube 自动生成。兼容性检查使用了人工英文字幕轨,因此该字幕轨并非自动生成。如果此字段为 null,就无法确定字幕轨的制作方式。
- `text` 是该记录中的字幕文本。每个片段也有自己的 `text`。两者都要保留。
- `segments` 是带时间信息的片段列表。一个片段就是字幕轨中带有时间信息的一小段内容。
- `status` 表示该输入的处理结果。兼容性检查中的状态为 succeeded。如果状态不是 succeeded,就不要引用该记录中的内容。
- `scrapedAt` 是采集该记录的时间。它不是视频中说话的时间。
每个片段都保留 `startSeconds`、`endSeconds`、`durationSeconds` 和 `text`。`startSeconds` 是片段开始的时间,从该视频起点算起。`endSeconds` 是片段结束的时间。`durationSeconds` 是 Actor 返回的时长。如果某个值为 null,请保留 null。Null 表示该值缺失。缺失不等于 0。
你可以通过简单的减法检查时长。片段时长 = 结束秒数 - 开始秒数。如果计算结果与 `durationSeconds` 不一致,请保留 Actor 返回的值。在引文记录中注明差异。不要替换 Actor 返回的值。
即使状态为 succeeded,字幕仍可能有错。片段的时间可能重叠。请保留相互重叠的两个片段。不要把它们合并成一个新句子。字幕轨可能没有标出说话者的变化,也可能遗漏会改变含义的屏幕内容。请保留原始文本和原始时间。不要编造说话者标签。不要用猜测的时间替换来源时间。
如果视频是私密视频,就无法获得经过核实的引文。如果视频已被移除,就无法获得经过核实的引文。如果视频没有字幕,也无法获得经过核实的引文。你可以听取原声并进行人工转录。转录文本就是你听完后写下的文字。请注明这是你自己的转录文本。不要声称它由 Actor 生成。
`transcriptLanguageCode` 不能证明实际说了哪些话。如果你进行了翻译,请注明这是译文。不要将译文当作原语言的逐字引文。
这套流程会在措辞审核前保存一份运行摘要。inputsReceived 是本次运行收到的输入数量。uniqueVideosPlanned 是本次运行计划打开的不同视频数量。rowsWritten 是成功获取转录文本的记录数量。successfulTranscriptRows 是成功获取转录文本的记录数量。转录文本是带有时间信息的书面字幕文本。rowsWritten 和 successfulTranscriptRows 均不计入已存储的失败详情记录。failedInputs 是字幕输入处理失败的数量。failedInputs 不计入尚未完成的工作。duplicateVideosSkipped 是本次运行未再次打开的重复视频数量。statusCounts 按字幕轨状态统计已处理输入的结果数量。这些结果包括失败结果。字幕轨状态是一条字幕轨的结果标签。errorCodeCounts 按错误代码统计失败数量。错误代码是某种失败类型的简短名称。failedInputDetails 是列出各个失败输入及其错误的列表。includeFailedInputDetails: true 可用于存储失败详情记录。这些失败详情记录与成功获取转录文本的计数分开。审核措辞前,请核对这些记录,使它们彼此一致。核对就是通过比较来确认它们一致。预期视频、字幕轨语言、字幕轨状态、状态为 succeeded 的记录、失败计数和失败列表都必须相互对应。预期视频是本次运行原本要打开的视频。字幕轨语言是该字幕轨上的语言标签。提取成功仅说明本次运行找到了字幕及其时间。它并不能证明引文措辞、说话者或论断正确。
用 8 个步骤核对措辞
对每个可能引用的短片段,都执行以下步骤。
- 写下这段引文应当支持的论断。
在选择引用哪些话之前,先用 1 句话写下论断。然后选择 1 个已知的公开视频,再选择 1 个较短的候选片段。你必须亲自核对实际说出的话。检索到的文本块只是定位线索。记录点击位置的笔记也只是定位线索。两者都不是引文。如果不先写下论断,就很容易在删减文字的过程中变成另一个论断。
- 获取当前带时间信息的 JSON,或手动检查视频。
保存来源 ID、来源 URL、语言代码、状态,以及原始片段的文本和时间。如果没有字幕,请听取原声并进行人工转录。注明这是人工转录文本。不要声称它由 Actor 生成。发现错误后,也不要更改原始字幕轨。原始字幕轨显示的是 Actor 返回的内容。你的更正应写在引文记录中,而不是写入字幕轨。
- 按候选时间打开片段。
播放这句话前后足够长的视频。前后的话语和画面就是上下文。上下文能表明谁在说话,也能说明“它”或“他们”等词指的是什么。上下文还能显示条件、单位和否定表达。否定表达是“不”这样的词。条件是采取行动前必须满足的要求。单位是计量标准,例如杯或分钟。如果画面会改变含义,就要观看画面。字幕中的标点不能证明说话者当时如何表达。字幕中的人名不能证明是谁说的话。短片段可能遗漏紧接在它前面说出的否定词。如果条件在相邻片段中,就要把相邻片段也包括进来。
- 再次听取原声,写下你需要引用的话。
先不看字幕听 1 遍。只转录你需要引用的原话。对任何不确定的词,都要重新播放。如果错写一个词会导致严重的错误论断,请让另一位读者听取原声。如果音频听不清,请写“听不清”。不要用看似可能的词填补空缺。只有来源中的介绍或其他明确陈述才能作为填写说话者姓名的依据。听起来熟悉的声音不能确认身份。字幕中的猜测也不能确认身份。如果来源没有说明说话者姓名,请写“未知”。未知就应保留为未知。不要填写姓名,也不要填写 0。
- 比较字幕文字与核对后的文字。
在引文记录中写明更正原因。写下你实际听取的来源时间区间。不要更改原始字幕文本。不要更改原始时间。核对后的措辞是你自己的转录文本。它不是 Actor 提供的新字段。不要润色句子后仍然保留引号。润色后的句子可能更易读,却仍然不忠于来源。使用引号就意味着其中的文字已经过核对。
- 选择直接引用或转述。
直接引用会重复核对后的措辞,并使用引号。转述是用你自己的新措辞表达相同含义。转述不使用引号,但仍要链接到来源。只有在含义不变时,才可以省略文字。不要省略条件。不要省略否定表达。如果删掉“不”这样的词,就可能颠倒原意。请遵守发布平台的引用限制。本方法不说明版权法允许哪些行为。不要从真实视频中复制大段内容。
- 保存引文记录。
记录应包括论断、来源 URL 和来源 ID。记录片段的开始秒数和结束秒数。记录语言、说话者身份证据和原始字幕摘录。记录核对后的措辞、核对方法和核对时间。记录上下文说明、更正内容和审核状态。引用时,应提供读者能直接打开的时间点。在电脑上,YouTube 可以分享从指定时间开始播放的链接。YouTube 将此功能称为“开始时间”(Start at)。帮助页面为 YouTube 分享帮助:开始时间。引用前,请测试实际的时间点链接。确认它能在预期时间打开预期视频。在原始记录中保留 `videoUrl`。时间点链接是为读者提供的。它不能证明引文准确,也不能证明论断成立。如果审核者无法打开该时间点,就无法核对你引用的话。即使链接能打开该时间点,它也仍然只是导航工具。
- 发布前,请让审核者打开该片段。
审核者将最终引文与音频进行比较,也将引文与旁边的论断进行比较。如果某个必需的词仍未确认,请将审核状态保留为 `needs_review`。如果来源没有表明说话者身份,也请保留 `needs_review`。不要把状态为 `needs_review` 的引文当作已经核对过的内容发布。`verified_wording` 表示措辞和说话者身份证据已经核对。它不表示论断已获证实。准确的转录文本仍可能表达缺乏依据的论断。措辞核对与论断核查应分开进行。审核者会再次听取原声,因此核查不只依靠 1 位听者。审核者不能让错误论断变成事实。
分步示例:原创虚构内容
本节中的园艺课程是原创虚构内容。它不是 Actor 的输出结果。它不是真实视频,说话者也不是真实人物。这里没有提供任何画面事实。不要自行添加。
虚构来源的 ID 使用占位符 VIDEO_ID。42 秒至 48 秒的原始字幕片段写着:“托盘放平时加水。”随后,听者播放了 38 秒至 51 秒的内容。在这个更长的时间范围内,说话者说的是:“托盘放平之前不要加水。”
字幕遗漏了否定词“不”。它还遗漏了表示“直到……才”的词,而这个词承载着时间条件。只引用原始字幕的读者会传达相反的操作要求。核对后的短引文是:“托盘放平之前不要加水。”
片段时长 = 结束秒数 - 开始秒数。字幕时间区间为 48 - 42 = 6 秒。听取原声的时间范围为 51 - 38 = 13 秒。两个时间区间都要保存。较短的区间对应原始片段。较长的区间对应你听到的上下文。
虚构的开场介绍指明说话者为说话者 A。请保存这段介绍,作为说话者身份证据。原始字幕应保持返回时的原样。更正原因是遗漏了否定表达和条件。审核状态为 `verified_wording`。这个虚构示例中的核对时间未知。未知不等于 0。
可以转述为:等托盘放平后再加水。不要给这句转述加引号。它是对原意的重新表述,不是第 2 条经过核实的引文。如果拟引用的内容只有“加水”,就会颠倒指令。它删掉了否定表达和条件。请拒绝使用这条引文。
候选片段 2 也是原创虚构内容。它的字幕记录状态为 succeeded。这个虚构示例没有提供可安全使用的原始句子,因此原始摘录仍为未知。不要编造单位来填补空缺。音频中的单位词听不清。来源未确认说话者发生变化。核对后的措辞未知。说话者未知。片段时间未知。审核状态为 `needs_review`。它尚未经过核实。
2 条状态为 succeeded 的字幕记录并不等于 2 条经过核实的引文。成功获取字幕仅说明返回了记录。只有候选片段 1 具备核对后的文字、说话者身份证据和更正原因。
发布决定的适用范围很有限。只有在审核者听过 38 秒至 51 秒的内容并认可后,才能发布候选片段 1 中核对后的直接引文。不要将“加水”作为引文发布。不要发布候选片段 2。在单位和说话者得到确认前,将候选片段 2 的状态保留为 `needs_review`。
这个虚构示例的时间点链接仅用于展示以下格式:
https://www.youtube.com/watch?v=VIDEO_ID&t=42s这个格式示例不是可播放的证据,也不是实际可访问的来源。不要将 VIDEO_ID 作为事实性引用发布。将本方法用于真实视频时,请引用那个真实视频。先测试实际的时间点链接。引文应保持简短。保留来源的上下文,让读者能够查看。
Record 1 (original fiction)
claim: The speaker tells the viewer not to add water until the tray is level.
source id: VIDEO_ID (placeholder, not a real video)
moment link: template only, not playable evidence
passage in seconds: 42
passage out seconds: 48
passage length: 48 - 42 = 6 seconds
wider checked interval: 38 to 51 seconds
wider length: 51 - 38 = 13 seconds
language heard: English
speaker evidence: The fictional introduction names Speaker A.
raw caption excerpt: add water when the tray is level.
checked wording: Do not add water until the tray is level.
check method: Listen from 38 seconds to 51 seconds. Compare with the raw caption. Leave the raw caption unchanged.
check time: unknown
context note: The wider window contains the negation and the condition. No picture fact is supplied.
correction: The caption omitted the negation and the timing condition.
review state: verified_wordingRecord 2 (original fiction)
claim: unknown
source id: VIDEO_ID (same fictional placeholder)
passage in seconds: unknown
passage out seconds: unknown
language heard: unknown
speaker evidence: none. No speaker change is confirmed.
raw caption excerpt: unknown. A caption row succeeded, but its words are not supplied here.
checked wording: unknown. The unit word is unclear in the audio.
check method: Listen. Do not guess the unit. Do not guess the speaker.
check time: unknown
context note: Caption success does not verify the words.
correction: none yet
review state: needs_review| 项目 | 候选片段 1 | 候选片段 2 |
|---|---|---|
| 原始字幕 | 托盘放平时加水。 | 未知 |
| 核对后的措辞 | 托盘放平之前不要加水。 | 未知 |
| 说话者身份证据 | 开场介绍指明说话者为说话者 A | 未知 |
| 时间 | 42 至 48 秒;实际听取了 38 至 51 秒的内容 | 未知 |
| 审核状态 | verified_wording | needs_review |
| 决定 | 审核后发布核对过的引文 | 不要发布 |
将措辞准确性与论断真实性分开
核对过的引文仍可能包含依据不足或错误的论断。文字准确仅表示你确实听到了这些话。它不表示论断属实。请使用适合该论断的证据来核实论断。这项核查与引文记录分开。即使在虚构示例中,`verified_wording` 也不能证明园艺指令正确。它只表示已按虚构说话者实际说出的内容核对措辞。
来源和延伸阅读
作者 Chronometrica · 更新日期
返回顶部 ↑

