
引文紀錄是你為某個段落保留的筆記。有些人稱這種筆記為引文台賬。它會記下主張、來源、時間、原始字幕、已核對的字句及覆核狀態。
附有時間資料的字幕能提供甚麼
Actor 是託管的資料收集程式。YouTube Transcript Actor 會根據你已知的影片網址,讀取公開的字幕軌。字幕軌是與影片一同儲存、附有時間資料的文字。Actor 會複製這些已儲存的文字。它不會將語音轉錄成新文字,不會識別講者,也不會查核事實。它無法證明引文逐字準確。
Task 是已儲存的輸入預設。YouTube timestamped transcript JSON Task 是已發佈的起始輸入設定。它會要求以 JSON 格式輸出附有時間資料的片段。JSON 是以文字表示欄位名稱和值的一種方式。已發佈的 Task 只是起始輸入設定,不會代你核對引文。
YouTube Transcript 公開版本 0.1.43 接受 4 個輸入欄位。
- `startUrls` 存放已知的影片網址或影片 ID。
- `preferredLanguages` 存放你偏好的語言代碼。空白清單不會強制指定任何語言。
- `outputFormats` 用來指定結果格式。請使用 JSON。
- 將 `includeFailedInputDetails` 設為 true,便會要求在某項輸入失敗時輸出一列詳細資料。
已發佈的 Task 包含 3 個範例影片網址。這些範例不是你的來源。請將整份清單換成 1 條已知的公開影片。如果保留範例,你可能會讀到另一條影片的結果列。輸出格式請保留為 JSON,並將 `includeFailedInputDetails` 保持為 true。失敗結果列可以說明失敗原因,但不等於已核實的引文。Actor 不會在頻道內尋找影片,也不會在播放清單內尋找影片。
{
"startUrls": ["https://www.youtube.com/watch?v=YOUR_VIDEO_ID"],
"preferredLanguages": [],
"outputFormats": ["json"],
"includeFailedInputDetails": true
}將你實際使用的公開影片網址填入 `startUrls`。刪除所有範例網址。最外層的大括號標示輸入的開始和結束。方括號標示清單的開始和結束。如果知道影片所用的口語語言,請將該語言代碼填入 `preferredLanguages`。如果不知道,請保留空白清單。語言清單留空不代表字幕是英文。
一次相容性檢查傳回了 1 列狀態為 succeeded 的結果。該列包含內容非空的人工英文字幕軌。「人工」表示字幕軌由人製作,而非自動產生。附有時間資料的片段屬於預定的影片。你可以沿用這項狀態事實,但不要沿用範例影片的字句。那些字句不屬於這套方法的一部分。
每列代表 1 條影片的 1 項結果。請原樣保留所有傳回的欄位。以下欄位會有用:
- `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` 不能證明實際說出了甚麼。如果你作翻譯,請標明是譯文。不要將譯文當作原文的逐字引文。
這套設定會在字句覆核前保留 1 份執行摘要。inputsReceived 是進入該次執行的輸入數目。uniqueVideosPlanned 是該次執行預定開啟的不同影片數目。rowsWritten 是成功取得逐字稿的結果列數目。successfulTranscriptRows 是成功取得逐字稿的結果列數目。逐字稿是附有時間資料的字幕文字。rowsWritten 及 successfulTranscriptRows 不計算已儲存的失敗詳細資料列。failedInputs 是字幕輸入失敗的數目。failedInputs 不計算尚未完成的工作。duplicateVideosSkipped 是該次執行沒有再次開啟的重複影片數目。statusCounts 是各種字幕軌狀態下,已處理輸入的結果數目。這些結果包括失敗情況。字幕軌狀態是單一字幕軌的結果標籤。errorCodeCounts 是各個錯誤代碼對應的失敗數目。錯誤代碼是某種失敗類型的簡稱。failedInputDetails 列出每項失敗輸入及其錯誤。includeFailedInputDetails: true 可儲存失敗詳細資料列。這些失敗詳細資料列與成功取得逐字稿的計數分開。覆核字句前,請先核對這些紀錄是否一致。核對一致是指比較各項紀錄,直至確認它們相符。預定的影片、字幕軌語言、字幕軌狀態、狀態為 succeeded 的結果列、失敗計數及失敗清單,全部都必須相符。預定的影片是該次執行原本要開啟的影片。字幕軌語言是該字幕軌上的語言標籤。成功擷取只表示該次執行找到了字幕及其時間,不能證明引文字句、講者或主張正確。
用 8 個步驟核對字句
對每個可能引用的短段落,依次完成以下步驟。
- 寫下這段引文應支持的主張。
挑選字句前,先用 1 句話寫下主張。然後選擇 1 條已知的公開影片,再選出 1 個簡短的候選段落。你必須親自核對實際說出的字句。檢索所得的文字區塊只是一個查找線索。記下你點擊了哪裏,也只是一個查找線索。兩者都不是引文本身。如果不先寫下主張,就很容易不斷刪去字句,直至內容變成另一個主張。
- 取得目前附有時間資料的 JSON,或手動查看影片。
儲存來源 ID、來源網址、語言代碼、狀態,以及原始片段的文字和時間。如果沒有字幕,請聆聽原聲並自行轉錄。請標明這份轉錄稿,不要說是 Actor 產生的。即使發現錯誤,也要保持原始字幕軌不變。原始字幕軌顯示 Actor 傳回了甚麼。你的修正應記在引文紀錄中,不應寫入該字幕軌。
- 按候選段落的時間開啟影片。
播放該句之前及之後足夠長度的影片。前後的字句和畫面就是語境。語境會顯示誰在說話,以及「它」或「他們」等詞語所指的是甚麼。語境也會顯示條件、單位及否定詞。否定詞是「不」這類詞語。條件是採取行動前必須成立的要求。單位是計量的標準,例如杯或分鐘。如果畫面可能改變意思,就要觀看畫面。字幕中的標點符號不能證明講者當時如何表達。字幕中的講者姓名不能證明實際是誰在說話。短片段可能遺漏了在前一刻說出的否定詞。如果條件出現在相鄰片段,就要一併納入該片段。
- 再聽一次,寫下所需的字句。
先不看字幕,聽 1 次。只逐字轉錄你需要的內容。不確定的字詞要重播再聽。如果聽錯一個詞會導致嚴重的失實主張,請另一位讀者一同聆聽。如果聲音不清楚,請寫「聽不清楚」。不要用看似合理的詞語填補空缺。只有來源中的介紹或其他明確說明,才可用來確認講者姓名。聲音聽起來熟悉,不能證明身分。字幕的猜測也不能證明身分。如果來源沒有說明講者姓名,請寫「不詳」。不詳就要保持不詳。不要填上姓名,也不要填 0。
- 比較字幕字句與你已核對的字句。
在引文紀錄中寫下修正原因,並記下你聆聽的來源時間範圍。不要更改原始字幕文字,也不要更改原始時間。你已核對的字句是你自行轉錄的內容,不是 Actor 提供的新欄位。不要潤飾句子後仍保留引號。潤飾過的句子可能較易閱讀,卻仍可能不忠於來源。引號表示你承諾其中的字句已經核對。
- 選擇直接引用或轉述。
直接引用會重現已核對的字句,並使用引號。轉述是用自己的新字句表達相同意思。轉述不使用引號,但仍須連結至來源。只有在意思不變的情況下,才可省略字句。不要省略條件,也不要省略否定詞。刪去「不」這類詞語,可能會令意思相反。請遵守發佈平台的引用限制。這套方法不會告訴你版權法准許甚麼。不要從真實影片複製大段內容。
- 儲存引文紀錄。
記錄主張、來源網址及來源 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 秒的內容。在這段較長的時間範圍內,講者說:「在托盤放平之前,不要加水。」
字幕漏掉了否定詞「不」,也漏掉了「直到……才」所表達的時間條件。讀者如果只引用原始字幕,就會教人採取相反的行動。已核對的簡短引文是:「在托盤放平之前,不要加水。」
段落時長 = 結束秒數 - 開始秒數。字幕時間範圍為 48 - 42 = 6 秒。聆聽時間範圍為 51 - 38 = 13 秒。兩個時間範圍都要儲存。較短的時間範圍是原始片段,較長的時間範圍是你聽過的語境。
虛構的介紹將講者稱為講者 A。請儲存該介紹,作為講者身分的證據。原始字幕要保持傳回時的原貌。修正原因是遺漏了否定詞及條件。覆核狀態是 `verified_wording`。這段虛構內容的核對時間不詳。不詳不等於 0。
轉述可以是:等托盤放平後才加水。不要為這句轉述加上引號。這是換句話說,不是另一段已核實的引文。只引用「加水」會令指示的意思相反,因為這樣刪去了否定詞及條件。請拒用這段引文。
候選段落 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 · 更新日期
返回頂端 ↑

