

# 如何用 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-Hant/articles/%E5%8F%96%E5%BE%97-youtube-%E9%80%90%E5%AD%97%E7%A8%BF-%E6%AA%A2%E6%9F%A5%E7%BC%BA%E5%B0%91%E5%AD%97%E5%B9%95/)指南。這個步驟提供來源文字，不會決定哪些內容適合放上卡片。

[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 是一種文字格式，用來儲存具名數值或內容，以及清單。這裡使用 JSON，是因為它能保留字幕片段的時間。單靠純文字無法確定字幕片段的結束位置。此 Actor 不會將語音轉成文字，也不會下載音訊或影片。它提供來源素材；卡片則由你設計和核對。

以下這組簡單輸入符合所提供的公開輸入規則：

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

2. 使用現有字幕作為來源副本

執行前，請將 `startUrls` 中的整個範例項目，替換成你要使用的公開課程網址。範例網址只是輸入示例，不能證明該影片適合作為課程，也不能證明執行成功。

空白的 `preferredLanguages` 清單允許程式選擇現有字幕軌中最合適的一軌，並不限定英文。如果你的學習目標需要英文，請將該欄位設為 `["en"]`。程式會依序嘗試偏好的語言。如果沒有符合的語言，Actor 會回報無法取得所需語言的失敗結果，而不會傳回其他語言。

此 Actor 接受 1–1,000 個直接影片網址或影片 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-Hant/articles/%E6%BA%96%E7%A2%BA%E5%BC%95%E7%94%A8-youtube-%E5%BD%B1%E7%89%87/)的方法處理。多數卡片可以用自己的話簡短重述。重述必須保留來源原意，包括其中的條件。

即使錄音清晰，內容仍可能有事實錯誤。核對課程說了什麼，與核實其說法是否正確，是兩件事。如果你有理由懷疑該說法，請暫緩使用卡片，直到疑問解決。

## 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. 確認答案已變更，且沒有出現多餘的新筆記。

檢查顯示的問題、答案、字幕片段資訊和來源連結。開啟每個實際來源連結，並在播放器中核對標示時間。看到網址，不代表它會開啟預定的課程。

內建的雙欄位筆記類型需要另一套明確的欄位對應。在決定每個值應放入哪個欄位之前，不要將這個六欄位檔案匯入其中。如果更新測試失敗，請停止匯入。在加入更多筆記前，先解決欄位對應、鍵值、筆記類型或重複筆記設定的問題。

## 操作範例：原創虛構內容

本範例為原創虛構內容，不是 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` |

範例中的來源網址缺失，因此留空，不用範例影片網址代替。由於沒有實際來源可供核對，這些筆記不放入真正的學習牌組。

第一個問題將「哪個欄位用來連接這兩個資料表？」的範圍，限定在課程的樣本資料表。它並不是在教你所有資料表都必須使用相同的連接欄位。

若要進行擬定的重複筆記測試，請將第一個答案改為「固定不變的樣本 ID。」保留 `demo-video:134:01` 不變。在設定正確的更新完成後，預期結果仍是兩則筆記，其中第一個答案已修訂。如果出現第三則筆記，就表示這次匯入沒有完成預定的更新。這些是測試的預期結果，不是實際測試結果。

使用真實課程時，請將虛構內容替換為已核對的來源素材。保留實際播放時間、可正常開啟的來源連結，以及你的審查記錄。

## 先解決失敗問題，再擴充牌組

根據實際觀察到的失敗情況，決定下一步。不要將每個問題都視為字幕缺失。

| 觀察到的狀況 | 下一步 |
| --- | --- |
| 擷取失敗 | 使用該輸入撰寫草稿前，先檢查 OUTPUT。 |
| 無法取得所需語言 | 維持語言要求，或明確決定改用另一條可取得的字幕軌。 |
| 必要字詞不清楚 | 暫緩使用筆記，不要猜答案。 |
| 畫面提供了卡片中未顯示的上下文 | 補上足夠的上下文，或捨棄問題。 |
| 來源值缺失 | 保留為未知，不要當成零。 |
| 資料欄出現在錯誤的欄位 | 修正分隔符號或欄位對應，再次預覽。 |
| 修訂後產生多餘的筆記 | 檢查鍵值、筆記類型和重複筆記設定。 |
| 來源連結指向錯誤影片 | 修正連結，並再次核對來源。 |

兩則筆記顯示正確，只能說明這兩則筆記通過了你的小型檢查。這不能證明未來每次匯入都會成功，也不能證明未來每個答案都正確。請審查每個新增段落。變更檔案結構或筆記類型時，請重新進行匯入測試。

## 建立並檢查你的前兩則筆記

選一堂你能開啟的公開課程。在播放器中核對兩個簡短段落，再寫兩個明確的問題。儲存六個欄位，保留原始字幕片段，並另外記錄修正內容。只將已審查的筆記匯入測試牌組。

如果你需要附有時間資訊的來源文字，可以從 [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) 開始。替換範例網址，並檢查傳回的語言和結果。所提供的證據確認了截至 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)