

# 如何用 YouTube 字幕制作可核查的 Anki 卡片

要将 YouTube 字幕制作成 Anki 卡片，并避免把字幕错误带入答案，请先在视频中核查每个短片段。写出一个明确的问题和一个有来源依据的答案。将来源链接、播放时间和上下文与笔记一起保存。然后，将两条笔记导入测试牌组。检查字段对应关系，并修改其中一个答案后再次导入，再导入更多笔记。这些检查可以减少未经核查的答案，但不能保证课程中的每句话都正确。

先准备原视频播放器和一个小型文本文件。Anki 是一种学习工具，用卡片展示问题和答案。笔记保存用于生成卡片的信息。牌组是一组卡片。本指南的每条笔记只包含一个问题和一个答案。

学习者公开提出的问题涉及[音频与字幕文本的对齐](https://www.reddit.com/r/ImmerseWithMigaku/comments/zel7ib/)以及[带双语字幕的视频片段](https://www.reddit.com/r/Anki/comments/1gpvjqd)。这些问题说明，卡片需要与其来源建立明确的联系。但它们不能证明需求规模或工具性能。本方法使用原视频播放器播放内容，涵盖经过核查的文字卡片和导入检查，不涉及音频嵌入或视频片段设置。

## 1. 设定一个学习目标

选择一节公开课程，以及一种你能核查的语言。先写下学习目标，再选择字幕内容。例如，你可能想找出课程中用于连接两张表的字段。

选择一个能满足该目标的短片段。不要把每行字幕都做成卡片。字幕的起止位置表示文字何时出现，不一定对应一个完整的意思。

为这个小牌组设定三项通过标准：

1. 每个答案都有已核查片段作为依据。
2. 每条笔记都保留足够的来源信息，便于再次核查。
3. 第二次导入能更新指定答案，且不会产生多余笔记。

不要将存疑的片段放入学习牌组。你可以稍后再处理。看似合理的答案不等于已经核查的答案。

## 2. 用现有字幕保存一份来源副本

字幕轨是随视频保存的带时间信息的文本。字幕片段是其中一段带时间信息的文字。你可以使用可获取的字幕和原视频播放器，手动制作少量卡片。如果已有带时间信息的字幕，请直接进行片段核查。

如果缺少字幕，请参阅[获取并核查 YouTube 字幕文本](/zh-Hans/articles/youtube-%E6%96%87%E5%AD%97%E7%A8%BF%E6%8F%90%E5%8F%96%E4%B8%8E%E7%BC%BA%E5%A4%B1%E5%AD%97%E5%B9%95%E6%A3%80%E6%9F%A5/)的专门指南。这一步提供原始文本，但不决定哪些内容应放到卡片上。

[YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) 可以采集已有的公开字幕轨。Actor 是一种托管程序。Task 是为该程序保存的一组预设输入。[带时间戳的字幕 JSON Task](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-timestamped-transcript-json) 是文档中提供的起点，可用于获取带时间信息的文本。

JSON 是一种文本格式，用于保存有名称的值和列表。这里使用它，是因为它能保留字幕片段的时间。仅凭纯文本无法确定字幕片段在哪里结束。该 Actor 不进行语音转文字，也不下载音频或视频。它提供来源材料；卡片由你设计和核查。

下面这组简短输入符合所提供的公开输入规则：

```json
{
  "includeFailedInputDetails": true,
  "outputFormats": ["json"],
  "preferredLanguages": [],
  "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
}
```

2. 用现有字幕保存一份来源副本

运行前，请将 `startUrls` 中的整个示例条目替换为你要使用的公开课程 URL。示例 URL 仅用于演示输入格式，不能证明对应视频适合作为课程，也不能证明运行成功。

将 `preferredLanguages` 留为空列表，表示允许选择当前可用的最佳字幕轨，并不要求使用英语。如果学习目标要求英语，请将该字段设为 `["en"]`。程序会依次尝试所列语言。如果没有匹配项，Actor 会报告语言不可用的失败结果，而不是返回其他语言。

该 Actor 接受 1–1,000 个直接视频 URL 或视频 ID。同一个视频 ID 重复出现时，只处理一次。它不接受频道、播放列表或搜索输入。使用本方法时，请先从一个视频开始。这些是文档记载的功能，不是为本指南实际运行后得到的结果。

## 3. 将来源记录与卡片分开保存

字段是记录中一个有名称的值。制作卡片前，请在返回结果包含以下字段时保存它们：

| 字段 | 需要保留的内容 |
| --- | --- |
| `videoId` 和 `videoUrl` | 视频标识和来源地址 |
| `transcriptLanguageCode` | 所选字幕的语言 |
| `isAutoGenerated` | 返回的字幕来源标记 |
| `segments` | 原始字幕片段的文字和时间值 |
| `status` 和 `statusReason` | 提取结果及其说明 |
| `scrapedAt` | 采集时间 |

保留原始字幕片段，不要修改。将修正内容放入单独的日志。这样，你就能区分收到的原始文本和后来写出的答案。

每个片段包含 `text`、`startSeconds`、`endSeconds` 和 `durationSeconds`。请保留返回值。时长缺失表示未知，不表示时长为零秒。相反，播放起点为零秒表示视频开头。

既要检查返回的视频记录，也要检查名为 OUTPUT 的运行摘要。处理成功且不重复的视频会生成数据集行，每行是一条单独的结果记录。失败的输入不会生成这类成功提取字幕的记录。请在 OUTPUT 中查看失败输入的详细信息。仅凭空结果，无法判断是否缺少字幕。

字幕语言、来源标记、片段数量和覆盖范围描述了返回的字幕轨，但不能证明文字准确。片段数量也不能说明你能制作多少张有用的卡片。[Actor 公开功能约定](https://apify.com/chronometrica/youtube-transcript-scraper)说明了这些限制。

## 4. 先核查片段，再起草答案

在视频中打开选定片段。播放它前后各一句的内容。如果解释需要更多上下文，就扩大播放范围。上下文是理解答案所需的前后文字或相关画面。

按以下顺序核查片段：

1. 听清能支持答案的词句。
2. 核查名称、数字、单位、条件，以及“不”等词。
3. 确定“它”或“这个”等词指代什么。
4. 如果所需信息来自表格、图示或代码示例，请查看画面。
5. 写下简短的上下文说明，并记录所有字幕修正。
6. 如果必要的词语或含义仍不确定，请暂缓使用该片段。

不要用自己预期的答案补上听不清的词。不要因为熟悉某个术语，就推断来源中没有给出的定义。如果课程不能支持拟写的答案，请换一个问题或片段。

如果卡片需要使用准确原话，请按照[核查 YouTube 引文](/zh-Hans/articles/%E5%87%86%E7%A1%AE%E5%BC%95%E7%94%A8-youtube-%E8%A7%86%E9%A2%91/)的专门方法操作。大多数卡片可以用自己的话简短转述。转述必须保留来源的意思，包括其中的条件。

录音清楚，也可能存在事实错误。核查课程说了什么，与核查其说法是否属实，是两件事。如果你有理由怀疑某个说法，请暂缓使用该卡片，直到疑问得到解决。

## 5. 每个问题对应一个答案

先写问题，再精简答案。有用的问题会明确指出学习者需要回忆什么。学习者离开视频后再看到问题，也应能理解它。

避免使用“这个有什么作用？”之类的问题。“这个”依赖看不到的上下文。请明确写出对象或操作。如果问题指的是课程中的特定示例，请说明这一点。

每个问题只问一个主要事实。如果一个问题要求回答两个无关的事实，请将其拆开。保留事实适用的条件。不要只为缩短答案而删掉条件。

对每份草稿进行以下检查：

| 检查项 | 需要采取的处理 |
| --- | --- |
| 已核查的片段能回答这个问题吗？ | 如果不能，请弃用或改写问题。 |
| 不看视频画面，也能理解问题吗？ | 如果不能，请补充必要的上下文，或暂缓使用。 |
| 答案保留了条件和单位吗？ | 核查前先将缺失的条件和单位补回。 |
| 这个问题是否可能有多个符合要求的答案？ | 把问题写得更准确。 |
| 问题是否要求回答互不相关的事实？ | 拆成不同的笔记。 |

答案可以简短，但不能含糊。将支持答案的上下文保存在答案之后，便于日后检查。不要在卡片正面透露答案。

## 6. 设置便于日后修改的字段

使用自定义笔记类型。笔记类型定义字段和卡片布局。将其设为正面显示一个问题，背面显示对应答案。让来源链接和字幕片段信息随答案一起显示，便于再次核查。

按以下顺序使用这六个字段：

| 字段 | 保存的值 |
| --- | --- |
| `SourceKey` | 用于标识此来源和卡片的唯一、固定标识符 |
| `Question` | 一个明确的问题 |
| `Answer` | 有已核查片段支持的简短答案 |
| `SourceURL` | 实际的视频地址 |
| `Cue` | 播放时间、已核查的时间范围，以及简短的上下文说明 |
| `ReviewState` | 你对笔记是否可以使用的判断 |

将 `SourceKey` 保持在第一位。Anki 如何处理重复笔记，取决于笔记类型和第一个字段。请测试它是否按预期工作，不要假定每次导入都会更新现有笔记。[Anki 文本导入手册](https://docs.ankiweb.net/manual/importing/text-files)说明了字段分隔、字段对应关系和重复笔记处理方式。

来源键可以由视频标识符、字幕片段时间和卡片编号组成。只在首次创建时分配。改写问题或修正答案时，请保留该来源键。如果后来调整了字幕片段时间，不要自动按新时间重新生成来源键。来源键改变后，修订内容可能会被当作新笔记。

使用简单的核查标签，例如 `needs_review` 和 `reviewed`。这些标签由你指定，不是 Actor 返回的结果，也不能证明已进行独立核查。

单独保存一份修正日志，记录来源键、原始字幕片段文本、修正后的措辞、原因、核查的时间范围和核查日期。笔记文件、核查判断和 Anki 导入设置，都是使用者自己的记录。公开 Task 页面不会披露或验证这些记录。

## 7. 保存文件并测试两条笔记

将六个字段保存为 UTF-8 编码、以制表符分隔的文本。UTF-8 是一种支持多种语言字符的文本编码。以制表符分隔，是指用制表符隔开各字段。这次小规模测试中，每行只放一条记录。

第一个文件应保持简单。每个字段只用一行，字段值内不含制表符。如果内容需要在字段内使用制表符或换行，请遵循 Anki 文档中的引号规则，并检查预览。如果替换文本会改变含义，就不要盲目替换。

按以下步骤操作：

1. 创建一个使用自定义笔记类型的临时测试牌组。
2. 准备两条已核查的笔记，并使用不同的来源键。
3. 打开导入预览，选择制表符作为分隔符。
4. 将文件中的每一列对应到正确的字段。
5. 确认第一列对应 `SourceKey`。
6. 导入文件，检查两张卡片。
7. 只修改文件中的一个答案，保留其来源键。
8. 使用预定的更新设置和相同的笔记类型，再次导入。
9. 确认答案已更改，且没有产生多余笔记。

检查显示的问题、答案、字幕片段信息和来源链接。打开每个真实的来源链接，在播放器中核对标明的时间。不要因为看到了 URL，就认定它能打开预期的课程。

内置的双字段笔记类型需要另一套明确的字段对应设置。在确定每个值应放在哪里之前，不要将这个六字段文件导入其中。如果更新测试失败，请停止导入，先解决字段对应关系、来源键、笔记类型或重复笔记设置的问题，再导入更多笔记。

## 操作示例：原创虚构内容

本例为原创虚构示例。它不是 Actor 的返回结果，不是真实课程，也不是已完成的 Anki 测试。下文提出的导入步骤尚未实际执行。

在这节虚构课程中，02:14 处的片段说明，两张样本表使用固定 ID 连接各自的记录。ID 表示标识符，在这里是用于标识样本的值。后面的另一个虚构片段说明，修改样本标签时，不得改变其 ID。

第一个片段从 2 分 14 秒开始：

`2 × 60 seconds + 14 seconds = 134 seconds`

在这个虚构示例中，该片段在第 142 秒结束。其时长为：

`142 seconds − 134 seconds = 8 seconds`

第二个虚构片段从第 142 秒持续到第 148 秒：

`148 seconds − 142 seconds = 6 seconds`

这些时间范围是为教学编造的数值，不是对视频进行测量后得到的结果。来源键 `demo-video:134:01` 用于标识第一张虚构卡片。末尾的 `01` 是卡片编号，不是准确度评分。

准备以下两条虚构笔记：

| 字段 | 虚构笔记 1 | 虚构笔记 2 |
| --- | --- | --- |
| `SourceKey` | `demo-video:134:01` | `demo-video:142:01` |
| `Question` | 在本课的样本表中，哪个字段用于连接这两张表？ | 在本课中，样本标签改变时，样本 ID 是否也应改变？ |
| `Answer` | 固定的 ID。 | 不应改变。保持样本 ID 不变。 |
| `SourceURL` | 留空；不存在真实视频。 | 留空；不存在真实视频。 |
| `Cue` | 02:14；134–142 秒；样本表连接 | 02:22；142–148 秒；标签修改规则 |
| `ReviewState` | `needs_review` | `needs_review` |

本例将来源 URL 留空，因为这些信息并不存在，没有用示例视频 URL 代替。由于没有实际来源可供核查，这些笔记不会放入真实的学习牌组。

第一个问题将“哪个字段用于连接这两张表？”限定在本课的样本表中。它并不是在说，每张表都必须使用相同的连接字段。

要进行所提出的重复笔记测试，可将第一个答案改为“固定的样本 ID。”，并保持 `demo-video:134:01` 不变。正确配置更新后，预期仍有两条笔记，且第一条的答案已修改。如果出现第三条笔记，就说明本次导入没有完成预期的更新。这些是测试的预期结果，不是已经取得的测试结果。

使用真实课程时，请用已核查的来源材料替换虚构内容。保留实际播放时间、可正常打开的来源链接，以及你的核查记录。

## 先解决失败问题，再扩大牌组

根据实际观察到的失败情况决定下一步操作。不要把每个问题都当成字幕缺失。

| 观察到的情况 | 下一步操作 |
| --- | --- |
| 提取失败 | 使用该输入内容起草笔记前，先检查 OUTPUT。 |
| 所需语言不可用 | 保留原有语言要求，或在明确决定后选择其他可获取的字幕轨。 |
| 必要的词语听不清 | 暂缓使用该笔记，不要猜答案。 |
| 所需上下文只出现在画面中 | 补充足够的上下文，或弃用该问题。 |
| 来源中的某个值缺失 | 将其保留为未知值，不要记为零。 |
| 文件列出现在错误的字段中 | 修正分隔符或字段对应关系，然后再次预览。 |
| 修改后产生了多余笔记 | 检查来源键、笔记类型和重复笔记设置。 |
| 来源链接指向错误的视频 | 修正链接，并再次核查来源。 |

两条笔记显示正确，只能说明这两条笔记通过了你的小规模检查。它不能证明以后每次导入都会成功，也不能证明以后的每个答案都正确。请核查每个新增片段。更改文件结构或笔记类型时，请重新进行导入测试。

## 制作并核查你的前两条笔记

选择一节可以正常观看的公开课程。在播放器中核查两个短片段，再写出两个明确的问题。保存六个字段，保留原始字幕片段，并单独记录修正内容。只将已核查的笔记导入测试牌组。

如果需要带时间信息的原始文本，可以从 [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) 开始。替换示例 URL，并检查返回的语言和处理结果。所提供的证据确认了截至 2026-10-25 核查时的公开功能约定，以及该 Task 的存在。这些证据不能证明已进行付费运行、所有者已保存输入、运行状态正常，或学习效果已通过测试。

只有两个来源核查和重复导入检查都通过后，才扩大牌组。如果其中任何一项仍有问题，请保留这个小文件以便修正。这样，你就能明确下一步该做什么，并留下一份可以检查的记录。

## 来源和延伸阅读

- [Chronometrica YouTube Transcript Scraper——于 2026-10-25 核查；公开构建版本 0.1.43 的功能约定，未进行运行测试](https://apify.com/chronometrica/youtube-transcript-scraper)
- [YouTube 带时间戳的字幕 JSON Task——于 2026-10-25 核查；仅确认公开预设存在，未测试已保存的输入或实际执行](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-timestamped-transcript-json)
- [Anki 手册：文本文件——于 2026-10-25 核查；UTF-8 文本导入、字段对应关系及重复笔记规则](https://docs.ankiweb.net/manual/importing/text-files)
- [关于音频与字幕文本对齐的公开提问——于 2026-10-25 观察到；仅反映读者遇到的问题，未确定准确发布日期](https://www.reddit.com/r/ImmerseWithMigaku/comments/zel7ib/)
- [关于 Anki 视频片段和双语字幕的公开提问——发布于 2024-11-12，于 2026-10-25 观察到；仅反映读者遇到的问题](https://www.reddit.com/r/Anki/comments/1gpvjqd)