

# YouTubeの字幕から出典を確認できるAnkiカードを作る方法

YouTubeの字幕の誤りを解答に持ち込まずにAnkiカードを作るには、まず動画で短い箇所をそれぞれ確認します。明確な質問と、確認した内容に基づく解答を1つずつ書きます。出典リンク、再生時刻、文脈をノートと一緒に保存します。次に、2件のノートをテスト用デッキにインポートします。フィールドの対応付けを確認し、解答を1つ修正して再インポートします。その後でノートを増やしてください。この確認によって、未確認の解答を減らせます。ただし、レッスンのすべての説明が正しいと保証することはできません。

元動画のプレーヤーと小さなテキストファイルから始めます。Ankiは、カードに質問と解答を表示する学習ツールです。ノートは、カードの作成に使う情報を保存するものです。デッキは、カードの集まりです。このガイドでは、1件のノートに質問と解答を1つずつ保存します。

学習者が公開した質問には、[音声と文字起こしの対応](https://www.reddit.com/r/ImmerseWithMigaku/comments/zel7ib/)や[二重字幕付きの動画クリップ](https://www.reddit.com/r/Anki/comments/1gpvjqd)についてのものがあります。これらの質問から、カードと出典のつながりを明確にする必要性が分かります。ただし、需要の規模やツールの性能を示すものではありません。この方法では、元動画のプレーヤーで再生します。扱うのは、確認済みのテキストカードとインポートの確認です。音声の埋め込みやクリップの設定は扱いません。

## 1. 学習目標を1つ決める

公開レッスンを1本と、自分で内容を確認できる言語を1つ選びます。字幕の行を選ぶ前に、学習目標を書きます。たとえば、レッスン内の2つのテーブルを結び付けるフィールドを特定することが目標になります。

その目標に答える短い箇所を選びます。字幕のすべての行をカードにする必要はありません。字幕の区切りは、文字を表示するタイミングを示します。必ずしも意味のまとまりを示すものではありません。

小さなデッキについて、次の3つを成功の条件にします。

1. 各解答が、確認済みの箇所に基づいている。
2. 各ノートに、再確認に必要な出典情報が残っている。
3. 再インポートで、不要なノートを作らずに目的の解答を変更できる。

不確かな箇所は、学習用デッキに入れないでください。後で確認できます。もっともらしい解答でも、確認済みの解答とは限りません。

## 2. 既存の字幕を元資料のコピーとして使う

字幕トラックは、動画に付属する時刻情報付きのテキストです。キューは、そのテキストを時刻で区切った単位です。利用できる字幕と元動画のプレーヤーを使えば、少数のカードを手作業で作れます。すでに時刻情報付きの字幕がある場合は、対象箇所の確認に進んでください。

字幕が見つからない場合は、別のガイド「[YouTubeの文字起こしを取得して確認する方法](/ja/articles/youtube-%E6%96%87%E5%AD%97%E8%B5%B7%E3%81%93%E3%81%97%E3%81%AE%E5%8F%96%E5%BE%97-%E5%AD%97%E5%B9%95%E3%81%AE%E7%A2%BA%E8%AA%8D/)」を参照してください。この手順で元テキストを用意できます。ただし、カードに何を入れるかは別に決める必要があります。

[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は、音声認識による文字起こしの作成や、音声・動画のダウンロードを行いません。Actorが提供するのは元資料です。カードの設計と確認は自分で行います。

次の小さな入力例は、提供された公開入力ルールに沿っています。

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

2. 既存の字幕を元資料のコピーとして使う

実行する前に、`startUrls`内のサンプル項目全体を、対象とする公開レッスンのURLに置き換えてください。サンプルURLは入力例です。適切なレッスンであることや、実行に成功したことを示すものではありません。

`preferredLanguages`を空のリストにすると、利用可能な字幕トラックから最適なものを選べます。英語を指定する設定ではありません。学習目標に英語が必要なら、このフィールドを`["en"]`に設定します。言語の指定は順番に試されます。どれにも一致しない場合、Actorは別の言語を返さず、指定言語を利用できないという失敗を報告します。

このActorには、動画を直接指定するURLまたは動画IDを1〜1,000件入力できます。同じ動画IDが繰り返されても、処理は1回だけです。チャンネル、再生リスト、検索の入力は受け付けません。この方法では、動画1本から始めてください。これらは文書化された機能であり、このガイドのために実行して得た結果ではありません。

## 3. 元資料の記録とカードを分けて保存する

フィールドは、レコード内の名前付きの値です。カードを書く前に、取得できた次のフィールドを保存します。

| フィールド | 保存する内容 |
| --- | --- |
| `videoId`と`videoUrl` | 動画の識別情報と出典のアドレス |
| `transcriptLanguageCode` | 選択された字幕の言語 |
| `isAutoGenerated` | 返された字幕の生成元を示すフラグ |
| `segments` | 元のキューのテキストと時刻の値 |
| `status`と`statusReason` | 抽出結果とその説明 |
| `scrapedAt` | 収集時刻 |

元のキューは変更せずに残します。修正は別の記録に保存します。こうすれば、受け取ったテキストと、後で自分が書いた解答を区別できます。

各セグメントには、`text`、`startSeconds`、`endSeconds`、`durationSeconds`が含まれます。返された値をそのまま保存してください。長さの値が欠けている場合、その長さは不明です。0秒という意味ではありません。一方、再生開始位置の0秒は、動画の冒頭を意味します。

返された動画レコードと、OUTPUTという名前の実行概要の両方を確認します。処理に成功した重複のない動画は、それぞれ個別の結果レコードであるデータセットの行を生成します。失敗した入力は、そのような成功した文字起こしの行を生成しません。失敗した入力の詳細はOUTPUTで確認してください。結果が空というだけでは、字幕がないと判断できません。

字幕の言語、生成元のフラグ、セグメント数、対象範囲は、返されたトラックの情報です。単語の正確さを証明するものではありません。セグメント数から、有用なカードを何枚作れるかが分かるわけでもありません。これらの制約は、[Actorの公開仕様](https://apify.com/chronometrica/youtube-transcript-scraper)に記載されています。

## 4. 解答を書く前に対象箇所を確認する

選んだ箇所を動画で開きます。その前後の文も再生します。説明を理解するために文脈がさらに必要なら、再生範囲を広げます。文脈とは、解答を理解するために必要な前後の言葉や画像のことです。

次の順番で確認します。

1. 解答の根拠となる言葉を聞き取ります。
2. 名前、数値、単位、条件、「〜ではない」などの否定表現を確認します。
3. 「それ」「これ」などの言葉が何を指すかを特定します。
4. 表、図、コード例に必要な情報がある場合は、画面を確認します。
5. 文脈を短くメモし、字幕の修正があれば記録します。
6. 必要な単語や意味が不確かなままなら、その箇所は保留にします。

聞き取れない単語を、予想した解答で補わないでください。知っている用語だからといって、説明されていない定義を推測しないでください。考えた解答の根拠がレッスンにない場合は、別の質問や別の箇所を選びます。

正確な表現が必要なカードには、別の手順「[YouTubeの引用を確認する方法](/ja/articles/youtube%E5%8B%95%E7%94%BB%E3%81%AE%E6%AD%A3%E7%A2%BA%E3%81%AA%E5%BC%95%E7%94%A8%E6%96%B9%E6%B3%95/)」を使ってください。多くのカードでは、自分の言葉で短く言い換えられます。ただし、条件を含め、元の意味を保つ必要があります。

録音が明瞭でも、内容に事実の誤りがある場合があります。レッスンで何を述べているかの確認と、その主張が正しいかの確認は別です。主張を疑う理由がある場合は、解決するまでカードを保留にしてください。

## 5. 質問と解答を1つずつ書く

解答を短くする前に、質問を書きます。有用な質問は、学習者が何を思い出すべきかを明示します。動画を見ていない状態でも意味が通じる質問にしてください。

「これは何をするものですか」のような質問は避けます。「これ」が何を指すかは、見えない文脈に依存するためです。対象や操作の名前を明記してください。レッスン内の特定の例について尋ねる場合は、そのことを示します。

各質問で扱う主な事実は1つにします。関係のない2つの事実を尋ねる質問は分けます。ある事実が成立するための条件は、その事実と一緒に残します。解答を短くするためだけに条件を削らないでください。

各下書きを次の項目で確認します。

| 確認項目 | 必要な対応 |
| --- | --- |
| 確認した箇所に質問の答えがあるか。 | なければ、質問を不採用にするか書き直す。 |
| 動画の映像がなくても質問の意味が通じるか。 | 通じなければ、必要な文脈を追加するか保留にする。 |
| 解答に条件と単位が残っているか。 | 抜けていれば、確認する前に戻す。 |
| 質問に複数の解答が当てはまる可能性があるか。 | 質問をより具体的にする。 |
| 関係のない事実をまとめて尋ねていないか。 | ノートを分ける。 |

解答は短くても明確にできます。後から確認できるように、解答の根拠となる文脈を残してください。カードの表面に解答が分かる情報を出さないようにします。

## 6. 後で編集しても使い続けられるフィールドを設定する

独自のノートタイプを使います。ノートタイプは、フィールドとカードのレイアウトを定義するものです。表面に質問を1つ、裏面にその解答を表示するように設定します。再確認できるよう、解答と一緒に出典リンクとキューを表示します。

次の6つのフィールドを、この順番で使います。

| フィールド | 保存する値 |
| --- | --- |
| `SourceKey` | この出典とカードを一意に識別する、変更しない識別子 |
| `Question` | 明確な質問を1つ |
| `Answer` | 確認済みの箇所に基づく短い解答 |
| `SourceURL` | 実際の動画のアドレス |
| `Cue` | 再生時刻、確認した区間、文脈の短いメモ |
| `ReviewState` | ノートが使用可能かどうかの自分の判断 |

`SourceKey`を先頭に置きます。Ankiで同じノートを再度取り込むときの処理は、ノートタイプと最初のフィールドによって変わります。インポートのたびに既存のノートが更新されると思い込まず、目的の動作をテストしてください。[Ankiのテキストインポートマニュアル](https://docs.ankiweb.net/manual/importing/text-files)には、フィールドの区切り、対応付け、重複の処理が説明されています。

出典キーには、動画の識別子、キューの時刻、カード番号を組み合わせる方法があります。一度割り当てたキーは固定します。質問を書き直したり解答を修正したりしても、そのキーを維持してください。後でキューの時刻を調整しても、新しい時刻からキーを自動的に作り直さないでください。キーを変えると、修正したノートが新しいノートとして扱われる可能性があります。

確認状態には、`needs_review`や`reviewed`などの簡単なラベルを使います。これらは自分で付けるラベルです。Actorの結果でも、独立した確認を受けた証拠でもありません。

修正記録を別に保存します。出典キー、元のキューのテキスト、修正後の表現、理由、確認した区間、確認日を記録してください。ノートファイル、確認の判断、Ankiのインポート設定は、所有者が管理する記録です。公開Taskページから、それらの記録を参照したり検証したりすることはできません。

## 7. ファイルを保存し、2件のノートでテストする

6つのフィールドをUTF-8のタブ区切りテキストとして保存します。UTF-8は、多くの言語の文字を扱える文字エンコーディングです。タブ区切りとは、タブ文字で各フィールドを区切ることです。この小規模なテストでは、1行に1件のレコードを入れます。

最初のファイルは単純な構成にします。各フィールドは1行に収め、値の中にタブ文字を入れないでください。フィールド内にタブや改行が必要な場合は、Ankiの文書にある引用符の規則に従い、プレビューを確認します。意味が変わるような一括置換はしないでください。

次の手順で進めます。

1. 独自のノートタイプを使う、一時的なテスト用デッキを作ります。
2. 異なる出典キーを持つ、確認済みのノートを2件用意します。
3. インポートのプレビューを開き、区切り文字としてタブを選びます。
4. ファイルの各列を、対応するフィールドに割り当てます。
5. 最初の列が`SourceKey`に対応していることを確認します。
6. ファイルをインポートし、両方のカードを確認します。
7. ファイル内の解答を1つだけ変更します。出典キーは維持します。
8. 目的の更新設定と同じノートタイプを使って、再度インポートします。
9. 解答が変更され、不要なノートが増えていないことを確認します。

表示された質問、解答、キュー、出典リンクを確認します。実際の出典リンクをそれぞれ開き、記載した時刻をプレーヤーで確認してください。URLが表示されているだけでは、目的のレッスンが開く証拠にはなりません。

標準の2フィールドのノートタイプを使う場合は、別の対応付けを明示する必要があります。各値の保存先を決めずに、この6フィールドのファイルを取り込まないでください。更新テストに失敗した場合は作業を止めます。対応付け、キー、ノートタイプ、重複設定の問題を解決してから、ノートを増やしてください。

## 具体例：独自に作った架空の例

この例は、説明のために独自に作った架空の例です。Actorの結果でも、実在するレッスンでも、完了したAnkiテストでもありません。以下のインポート手順は提案であり、実行していません。

架空のレッスンの02:14の箇所では、2つのサンプルテーブルが、変更しないIDでレコードを結び付けると説明しています。IDは識別子のことです。ここでは、サンプルを識別する値を指します。後の架空の箇所では、サンプルのラベルを変えてもIDを変えてはいけないと説明しています。

最初の箇所は、2分14秒から始まります。

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

この架空の例では、終了位置は142秒です。区間の長さは次のとおりです。

`142 seconds − 134 seconds = 8 seconds`

架空の2番目の箇所は、142秒から148秒までです。

`148 seconds − 142 seconds = 6 seconds`

これらの区間は、説明のために作った値です。動画で測定した結果ではありません。キー`demo-video:134:01`は、最初の架空のカードを識別します。末尾の`01`はカード番号であり、正確さの評価ではありません。

次の架空のノートを2件用意します。

| フィールド | 架空のノート1 | 架空のノート2 |
| --- | --- | --- |
| `SourceKey` | `demo-video:134:01` | `demo-video:142:01` |
| `Question` | このレッスンのサンプルテーブルでは、どのフィールドで2つのテーブルを結合しますか。 | このレッスンでは、サンプルのラベルを変更したら、そのIDも変更すべきですか。 |
| `Answer` | 変更しないIDです。 | いいえ。サンプルIDは変更しません。 |
| `SourceURL` | 実在する動画がないため、空欄にします。 | 実在する動画がないため、空欄にします。 |
| `Cue` | 02:14; 134〜142秒; サンプルテーブルの結合 | 02:22; 142〜148秒; ラベル変更のルール |
| `ReviewState` | `needs_review` | `needs_review` |

この例では出典URLが存在しないため、空欄にしています。代わりにサンプル動画のURLを入れることはしません。実際の出典を確認できないため、このノートは実際の学習用デッキには入れません。

最初の質問は、「どのフィールドで2つのテーブルを結合しますか」という問いの対象を、レッスンのサンプルテーブルに限定しています。すべてのテーブルで同じ結合フィールドを使うべきだと教えるものではありません。

重複処理のテスト案では、最初の解答を「変更しないサンプルIDです。」に変えます。`demo-video:134:01`は変更しません。正しく設定して更新した場合、期待される結果は、ノート数が2件のままで、最初の解答だけが修正されることです。3件目のノートができた場合、そのインポートでは目的の更新が行われなかったことを示します。これらはテストで期待する結果であり、実施済みテストの結果ではありません。

実際のレッスンを使うときは、架空の内容を確認済みの元資料に置き換えます。実際の再生時刻、開ける出典リンク、自分の確認記録を保存してください。

## デッキを増やす前に問題を解決する

実際に起きた失敗に応じて、次の対応を選びます。すべての問題を字幕がないせいにしないでください。

| 確認した状態 | 次の対応 |
| --- | --- |
| 抽出に失敗した | その入力から下書きを作る前にOUTPUTを確認する。 |
| 必要な言語を利用できない | 言語の条件を維持するか、意図的に別の利用可能なトラックを選ぶ。 |
| 必要な単語が不明瞭 | ノートを保留にし、解答を推測しない。 |
| カードにない文脈が画面に表示される | 十分な文脈を追加するか、質問を不採用にする。 |
| 元資料の値が欠けている | ゼロにせず、不明のまま保存する。 |
| 列が誤ったフィールドに表示される | 区切り文字または対応付けを修正し、再度プレビューする。 |
| 修正によって不要なノートが作られる | キー、ノートタイプ、重複設定を確認する。 |
| 出典リンクが別の動画を指している | リンクを修正し、出典の確認を繰り返す。 |

2件のノートが正しく表示されれば、そのノートが小規模な確認に合格したことは分かります。ただし、今後のすべてのインポートが成功することや、今後のすべての解答が正しいことを示すものではありません。追加する箇所を毎回確認してください。ファイル構造やノートタイプを変えたときは、インポートのテストを繰り返します。

## 最初の二つのノートを作成して確認する

視聴できる公開レッスンを1本選びます。動画プレーヤーで短い箇所を2か所確認し、それぞれに焦点を絞った質問を作ります。6つのフィールドを保存し、元のキューをそのまま残します。修正は別に記録します。確認済みのノートだけをテスト用デッキにインポートしてください。

時刻情報付きの元テキストが必要なら、[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)