
引用記録とは、1つの引用箇所について残すメモです。このメモを引用台帳と呼ぶ人もいます。主張、出典、時刻、元の字幕、確認した文言、確認状況を保存します。
時刻付き字幕から得られる情報
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には、サンプル動画のURLが3つ含まれています。これらのサンプルは、あなたの引用元ではありません。リスト全体を、既知の公開動画1本に置き換えてください。サンプルを残すと、別の動画の行を読んでしまう可能性があります。出力形式はJSONのままにします。`includeFailedInputDetails`はtrueのままにします。失敗した行から、失敗の理由がわかる場合があります。失敗した行は、確認済みの引用ではありません。このActorは、チャンネル内の動画を検索しません。再生リスト内の動画も検索しません。
{
"startUrls": ["https://www.youtube.com/watch?v=YOUR_VIDEO_ID"],
"preferredLanguages": [],
"outputFormats": ["json"],
"includeFailedInputDetails": true
}`startUrls`には、実際に使う公開動画のURLを入力してください。サンプルURLはすべて削除します。外側の波括弧は入力全体の始まりと終わりを示します。角括弧はリストの始まりと終わりを示します。話されている言語がわかる場合は、その言語コードを`preferredLanguages`に入力します。わからない場合は、リストを空のままにします。言語リストが空でも、字幕が英語であるとは限りません。
互換性の確認では、処理に成功した行が1件返されました。その行には、内容のある手動作成の英語字幕トラックが含まれていました。手動作成とは、自動生成ではなく、人が用意したトラックであることを意味します。時刻付きセグメントは、意図した動画のものでした。この処理状況に関する事実は再利用できます。サンプル動画の文言は再利用しないでください。それらの文言は、この方法の一部ではありません。
1行は、1本の動画に対する1件の結果です。返されたフィールドは、すべて受け取ったまま保存します。役立つフィールドは次のとおりです。
- `videoId`は、動画の公開IDです。
- `videoUrl`は、動画の公開URLです。
- `transcriptLanguageCode`は、字幕の言語コードです。
- `isAutoGenerated`は、YouTubeが字幕トラックを自動生成したかどうかを示します。互換性の確認では手動作成の英語トラックを使用したため、そのトラックは自動生成ではありませんでした。このフィールドがnullの場合、トラックの作成方法は不明です。
- `text`は、その行の字幕テキストです。各セグメントにも、それぞれの`text`があります。両方を保存します。
- `segments`は、時刻付きの区間のリストです。セグメントとは、字幕トラックを時刻に基づいて区切った1つの部分です。
- `status`は、その入力の処理結果を示します。互換性の確認ではsucceededでした。statusがsucceededでない場合、その行から引用しないでください。
- `scrapedAt`は、その行を収集した時刻です。発言があった時刻ではありません。
各セグメントには、`startSeconds`、`endSeconds`、`durationSeconds`、`text`が保持されます。`startSeconds`は、その動画の先頭から数えた区間の開始時刻です。`endSeconds`は、区間の終了時刻です。`durationSeconds`は、Actorが返した区間の長さです。値がnullの場合は、nullのままにします。nullは、値がないことを意味します。値がないことと、0であることは異なります。
区間の長さは、単純な引き算で確認できます。区間の長さ = 終了秒数 - 開始秒数です。計算結果が`durationSeconds`と一致しない場合も、Actorの値を保持します。引用記録に差異を記載してください。Actorの値を置き換えないでください。
statusがsucceededでも、字幕が誤っていることがあります。セグメントの時間帯が重なることもあります。重なったセグメントは、両方を保存します。それらを結合して新しい文を作らないでください。字幕トラックでは、話者の交代が省略される場合があります。意味を変える画面上の情報が抜ける場合もあります。元のテキストと元の時刻を保存します。話者のラベルを作り出さないでください。出典の時刻を推測した時刻に置き換えないでください。
動画が非公開の場合、確認済みの引用は得られません。動画が削除されている場合も、確認済みの引用は得られません。字幕がない場合も同じです。音声を聞いて、人の手で文字起こしをすることはできます。文字起こしとは、音声を聞いて書き取った言葉です。自分で文字起こししたものだと明記してください。Actorが作成したとは書かないでください。
`transcriptLanguageCode`は、実際に話された言葉を証明するものではありません。翻訳した場合は、翻訳であることを明記してください。翻訳を、原語での正確な引用として示さないでください。
この手順では、文言の確認に入る前に、実行の概要を1件保存します。inputsReceivedは、実行に渡された入力の数です。uniqueVideosPlannedは、その実行で開く予定だった、重複を除いた動画の数です。rowsWrittenは、文字起こしの取得に成功した行の数です。successfulTranscriptRowsも、文字起こしの取得に成功した行の数です。文字起こしとは、時刻情報を伴う字幕テキストです。rowsWrittenとsuccessfulTranscriptRowsには、保存された失敗詳細行を含めません。failedInputsは、字幕の取得に失敗した入力の数です。failedInputsには、未完了の処理を含めません。duplicateVideosSkippedは、重複していたため再度開かなかった動画の数です。statusCountsは、処理済みの入力結果を字幕トラックの状態別に数えたものです。これらの結果には失敗も含まれます。トラックの状態とは、1つの字幕トラックの処理結果を示すラベルです。errorCodeCountsは、エラーコード別の失敗件数です。エラーコードとは、失敗の種類を示す短い名前です。failedInputDetailsは、失敗した各入力とそのエラーのリストです。includeFailedInputDetails: trueを指定すると、失敗詳細行を保存できます。これらの失敗詳細行は、文字起こしの成功件数とは別に扱います。文言を確認する前に、これらの記録を照合します。照合とは、記録を比較して整合性を確認することです。意図した動画、トラックの言語、トラックの状態、成功した行、失敗件数、失敗リストのすべてが整合している必要があります。意図した動画とは、その実行で開くはずだった動画です。トラックの言語とは、その字幕トラックに付いている言語ラベルです。抽出に成功したという事実が示すのは、実行時に字幕とその時刻を取得できたことだけです。引用した文言、話者、主張が正しいことを証明するものではありません。
8つの手順で文言を確認する
引用する可能性のある短い箇所ごとに、次の手順を実施します。
- 引用によって裏付けたい主張を書きます。
引用する文言を選ぶ前に、主張を1文で書きます。次に、既知の公開動画を1本選びます。引用候補となる短い箇所を1つ選びます。実際に話された言葉は、自分で確認する必要があります。検索で取得したテキストチャンクは、該当箇所への手がかりにすぎません。クリックした場所のメモも、手がかりにすぎません。どちらも引用そのものではありません。先に主張を書いておかないと、言葉を削っていくうちに別の主張に変わってしまいがちです。
- 現在の時刻付きJSONを取得するか、自分で動画を確認します。
出典ID、出典URL、言語コード、状態、元のセグメントのテキストと時刻を保存します。字幕がない場合は、音声を聞いて人の手で文字起こしします。その文字起こしが人の手によるものだと明記してください。Actorが作成したとは書かないでください。誤りを見つけても、元の字幕トラックは変更しません。元のトラックは、Actorが返した内容を示すものです。修正内容は、そのトラック内ではなく引用記録に残します。
- 候補の時刻で、該当箇所を開きます。
引用する発言の前後も、十分な長さを再生します。その前後の言葉と映像が文脈です。文脈から、誰が話しているかがわかります。「それ」や「彼ら」といった言葉が何を指すかもわかります。条件、単位、否定も確認できます。否定語とは、「〜ない」のような言葉です。条件とは、その行動の前に満たされていなければならない要件です。単位とは、カップや分などの測定の基準です。映像によって意味が変わる場合は、映像も確認します。字幕の句読点は、その人がどのように話したかを証明するものではありません。字幕にある話者名も、誰が話したかを証明するものではありません。短いセグメントでは、その直前に発せられた否定語が抜けている場合があります。条件が隣のセグメントに含まれている場合は、そのセグメントも確認対象に含めます。
- もう一度聞き、必要な言葉を書き取ります。
字幕を見ずに1度聞きます。必要な言葉だけを、正確に書き取ります。確信のない言葉は、繰り返し再生します。言葉の間違いによって重大な誤った主張につながる場合は、別の読者にも聞いてもらいます。音声が不明瞭な場合は、「聞き取れない」と記録します。もっともらしい言葉で埋めないでください。話者名は、出典内での紹介や、話者を明示した別の発言だけを根拠に記載します。聞き覚えのある声だけでは、本人だと確認できません。字幕からの推測でも、本人だと確認できません。出典が話者を名指ししていない場合は、「不明」と記録します。不明なものは不明のままにします。名前を書かず、0も書かないでください。
- 字幕の文言と、自分で確認した文言を比較します。
引用記録に修正理由を書きます。聞いて確認した元動画の時間区間も記録します。元の字幕テキストは変更しません。元の時刻も変更しません。確認した文言は、あなた自身による文字起こしです。Actorから新たに返されたフィールドではありません。文を整えたまま、引用符で囲まないでください。読みやすく整えた文でも、出典に忠実でない場合があります。引用符は、その中が確認したとおりの文言であることを示します。
- 直接引用にするか、言い換えにするかを選びます。
直接引用では、確認した文言をそのまま繰り返し、引用符を使います。言い換えでは、同じ意味を自分の言葉で新たに表現します。言い換えには引用符を使いませんが、出典へのリンクは付けます。言葉を省略できるのは、意味が変わらない場合だけです。条件を省略しないでください。否定語を省略しないでください。「〜ない」のような言葉を削ると、意味が逆になることがあります。公開先が定める引用の制限に従ってください。この方法は、著作権法で何が認められるかを示すものではありません。実在する動画から、長い一節をコピーしないでください。
- 引用記録を保存します。
主張、出典URL、出典IDを記載します。該当箇所の開始秒数と終了秒数を記載します。言語、話者を確認できる根拠、元の字幕の抜粋を記載します。確認した文言、確認方法、確認時刻を記載します。文脈のメモ、修正内容、確認状況を記載します。読者が開けるように、該当時刻へのリンクを引用に付けます。パソコンでは、選んだ時刻から再生を開始するYouTubeリンクを共有できます。YouTubeでは、この機能をStart atと呼びます。ヘルプページは、YouTubeの共有ヘルプ:Start atです。引用に使う前に、実際の時刻指定リンクを試してください。意図した動画が、意図した時刻で開くことを確認します。元の行には`videoUrl`を保持します。時刻指定リンクは、読者のためのものです。引用の正確さを証明するものではありません。主張を証明するものでもありません。確認者が該当箇所を開けなければ、文言を確認できません。該当箇所を開けるリンクであっても、その役割は移動の手段にとどまります。
- 公開する前に、確認者に該当箇所を開いてもらいます。
確認者は、最終的な引用文を音声と比較します。引用文のそばにある主張とも比較します。必要な言葉に未解決の点がある場合は、確認状況を`needs_review`のままにします。出典から話者を確認できない場合も、`needs_review`のままにします。`needs_review`の引用を、確認済みであるかのように公開しないでください。`verified_wording`は、文言と話者の根拠を確認したことを意味します。主張が証明されたことを意味するわけではありません。正確な文字起こしでも、裏付けのない主張が含まれることがあります。文言の確認と主張の確認は、分けて扱います。確認者が改めて聞くことで、1人の聞き取りだけに頼らずに済みます。確認者が確認しても、誤った主張が正しくなるわけではありません。
手順を示す具体例:独自に作成した架空の事例
この節の園芸レッスンは、独自に作成した架空の事例です。Actorの実行結果ではありません。実在する動画でも、実在する話者でもありません。ここでは、映像に関する事実は何も示していません。追加しないでください。
架空の出典IDには、仮の値VIDEO_IDを使います。42秒から48秒までの元の字幕セグメントには、「トレーが水平になったら水を加えます。」とあります。次に、聞き手は38秒から51秒までを再生します。この広い範囲では、話者は「トレーが水平になるまでは、水を加えないでください。」と話しています。
字幕には、否定を表す「〜ない」(英語原文の「not」)が抜けています。「〜までは」(英語原文の「until」)も抜けており、この表現が時点に関する条件を示しています。元の字幕だけを引用すると、読者に逆の行動を教えてしまいます。確認した短い引用は、「トレーが水平になるまでは、水を加えないでください。」です。
区間の長さ = 終了秒数 - 開始秒数です。字幕の区間は48 - 42 = 6秒です。聞いて確認した範囲は51 - 38 = 13秒です。両方の区間を保存します。短い区間は、元のセグメントです。長い区間は、聞いて確認した文脈の範囲です。
架空の紹介では、話者がSpeaker Aだと示されています。その紹介を、話者を確認できる根拠として保存します。元の字幕は、受け取ったとおりに残します。修正理由は、否定語と条件の欠落です。確認状況は`verified_wording`です。この架空の事例では、確認時刻は不明です。不明は0ではありません。
言い換えの例:水を加える前に、トレーが水平になるまで待ちます。この言い換えを引用符で囲まないでください。これは言い直した文であり、2つ目の確認済み引用ではありません。「水を加えます」だけを引用する案は、指示を逆転させます。否定語と条件が削除されるためです。この案は採用しないでください。
候補2も、独自に作成した架空の事例です。字幕行の取得には成功しています。この事例では、安全に使える元の文を示していないため、元の字幕の抜粋は不明のままにします。欠けた部分を埋めるために、単位を作り出さないでください。音声では、単位を表す言葉が不明瞭です。出典からは、話者の交代を確認できません。確認済みの文言は不明です。話者も不明です。該当箇所の時刻も不明です。確認状況は`needs_review`です。確認済みではありません。
字幕行の取得に2件成功しても、確認済みの引用が2件になるわけではありません。字幕の取得成功が示すのは、行が返されたことだけです。確認した文言、話者の根拠、修正理由がそろっているのは、候補1だけです。
公開できる範囲は限定されます。候補1の確認済み文言を直接引用して公開できるのは、確認者が38秒から51秒までを聞き、引用文が音声と一致することを確認した後だけです。「水を加えます」という言葉を引用として公開しないでください。候補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 |
|---|---|---|
| 元の字幕 | トレーが水平になったら水を加えます。 | 不明 |
| 確認済みの文言 | トレーが水平になるまでは、水を加えないでください。 | 不明 |
| 話者を確認できる根拠 | 紹介でSpeaker Aと名指しされている | 不明 |
| 時刻 | 42秒から48秒。聞いて確認した範囲は38秒から51秒 | 不明 |
| 確認状況 | verified_wording | needs_review |
| 判断 | 確認者による確認後に、確認済みの引用を公開する | 公開しない |
文言の正確さと主張の真偽を分けて扱う
確認済みの引用にも、根拠の弱い主張や誤った主張が含まれる場合があります。文言が正確であるとは、その言葉を聞いて確認したということだけです。主張が真実であることを意味しません。その主張に適した証拠で、主張を検証してください。この検証は、引用記録とは別に行います。`verified_wording`は、架空の事例の中であっても、園芸の指示が正しいことを証明しません。架空の文言が、話されたとおりに確認されたことだけを意味します。
出典と参考資料
著者 Chronometrica · 更新日
ページの先頭へ ↑

