候選影片經過篩選表與字幕追蹤表。失敗與待處理的來源分別放在不同托盤中。

如果每次執行處理一部影片符合你目前的工作流程,而且依序排列、帶有時間戳記的片段陣列能滿足需求,可選擇 Pinto Studio。Pinto Studio 文件

主要選擇在於作業單位:你的工作流程會將多少部影片送入每個作業。批次輸入可減少你必須啟動的作業數量。但這並不能證明它在速度、成本或逐字稿準確度方面有優勢。

本比較使用於 2026 年 10 月 20 日查核的公開文件。比較內容是文件記載的輸入與輸出,並非兩個工具直接對照測試的結果。以下方法以你已有影片清單為起點。你可以用它整理清單、檢查少量樣本,並在使用文字前確認每筆輸入的結果。

選擇符合工作流程的作業規模

Apify Actor 是執行資料收集作業的程式。一次執行是指將該程式執行一次。資料集則是已儲存的結果資料列集合。

清單很長時,執行次數會影響收集前後的管理工作。你的工作流程必須啟動作業、儲存作業識別碼、檢查狀態,並收集結果。批次輸入可讓你透過一次執行管理多部影片。

文件記載的處理單位如下:

選擇符合工作流程的作業規模
選擇依據ChronometricaPinto Studio
每次執行的輸入量最多 1,000 筆1 部影片
資料集結果每部成功處理且不重複的影片各有一筆資料列一個項目,內含依序排列的逐字稿片段
安排清單的執行作業將清單分成多個批次每部影片各啟動一次執行

來源:Chronometrica 文件及 Pinto Studio 文件。

Pinto Studio 使用 `videoUrl` 與 `targetLanguage`。其片段包含 `start`、`dur` 與 `text`。它支援有字幕的公開影片,包括有自動字幕的影片。私人影片、受限制影片與無字幕影片不在文件記載的支援範圍內。Pinto Studio 文件

如果你的工作流程已為每部影片追蹤個別作業,改變這個單位可能會增加工作,卻沒有多少效益。如果你正針對一份已有的清單建立工作流程,Chronometrica 的批次輸入可讓你直接將工作分組處理。

先決定作業單位,再建立排程器。排程器是工作流程中負責啟動及追蹤執行作業的部分。依照你將使用的輸入單位來設計排程器,再確認如何儲存結果與失敗紀錄。

收集文字前,先設定字幕規則

公開影片不一定有可用的公開字幕。Chronometrica 讀取現有字幕。缺少公開字幕時,它不會透過語音轉文字產生逐字稿。如果你的專案要求每部影片都有文字,這個限制就會影響選擇:只擷取字幕無法滿足這項要求。Chronometrica 文件

語言需要另外決定。設定 `preferredLanguages` 後,Chronometrica 要求字幕必須符合其中一種指定語言。如果沒有任何指定語言的字幕,它會在 `OUTPUT` 中記錄不計費的 `LANGUAGE_UNAVAILABLE` 失敗。它不會在未告知你的情況下傳回其他語言。`OUTPUT` 是執行摘要,會列出數量與失敗紀錄。Chronometrica 輸入結構定義

如果資料集必須使用指定語言,就採用這項嚴格規則。比起不需要的語言文字在未被發現的情況下進入資料集,缺漏結果更容易追蹤與說明。

收集前,先寫下允許的語言,以及是否同時接受人工字幕與自動字幕。這兩項要分別決定。字幕軌即使符合語言規則,仍可能有用字錯誤。

Chronometrica 文件記載的結果包含所選語言、可用的字幕語言,以及用來識別人工字幕或自動字幕的標記。這些資訊有助於你在收集後套用規則。但它們不能證明文字正確。Chronometrica 文件

如果缺少字幕會使研究無法進行,請事先決定是否允許使用獨立的語音轉文字程序。清楚標示所有產生的逐字稿,讓之後的使用者能將它們與擷取的字幕區分開來。

安排完整清單的執行作業前,先做小規模檢查

在付費收集資料前,你可以先完成大部分工作流程的準備。目的是確認你能追蹤每筆輸入的結果,並使用傳回的文字。

  1. 定義允許的影片與語言。說明哪些公開影片應納入收集。記錄語言規則與字幕規則。將排除的影片另存紀錄,並註明排除原因。這樣可避免之後將數量差異誤認為收集失敗。
  2. 分割清單前,先找出重複影片。以影片 ID 作為影片的識別依據。兩種網址形式可能指向同一部影片。Chronometrica 接受多種形式,包括標準影片連結、Shorts 連結、短連結及原始影片 ID,且只會處理重複影片一次。先清理清單,可讓預計數量更容易核對。Chronometrica 文件
  3. 選幾部公開影片進行首次檢查。納入對專案重要的例子,例如不同頻道或字幕類型。套用你打算對完整清單使用的語言規則。使用寬鬆設定進行檢查,無法確認較嚴格的最終規則是否符合需求。
  4. 建立每批不超過 1,000 筆輸入的批次。移除重複影片 ID 後,再計算筆數。執行開始後,不要變更該批次清單。如果之後修改清單,請將變更另存為新的批次紀錄。公開的批次擷取 YouTube 逐字稿範例記載了批次輸入上限。
  5. 儲存輸入與執行紀錄。使用追蹤表,也就是追蹤每筆輸入的表格。儲存影片 ID、批次 ID、執行 ID、處理結果、重試標記、所選語言及擷取時間。這些是工作流程的追蹤欄位,不是額外的 Actor 輸入欄位。未知值應留空或標示為未知。
  6. 讀取兩處結果。從資料集收集成功的逐字稿資料列。讀取 `OUTPUT`,取得該次執行摘要中的各項數量與失敗輸入的詳細資訊。需要將缺漏結果追溯至個別輸入時,啟用 `includeFailedInputDetails`。只匯出資料集,無法交代每部已提交影片的結果。Chronometrica 文件
  7. 載入文字前,確認每筆不重複輸入的結果。將成功的資料列對應至影片 ID。將失敗紀錄對應至其餘輸入。調查所有結果仍不明的輸入。將重複輸入與不重複影片分開記錄,避免把略過的重複輸入算成缺少逐字稿。
  8. 選取少量段落,與影片核對。聆聽來源音訊,比較文字與時間戳記。納入名稱、數字、專業術語,以及你打算引用的段落。記錄發現的問題。這項檢查用來確認字幕是否適合你的工作,不能得出整體準確度分數。
  9. 持續清楚標示尚未解決的缺漏。只重試標記為可重試的失敗,並遵守預算與來源規則。缺少字幕時,需要另作決定,而不是反覆嘗試。只有在專案允許使用產生的逐字稿時,才採用獨立且標示清楚的語音轉文字程序。

首次檢查應回答兩個問題:你能否使用傳回的文字,以及能否說明每個缺漏結果?只要其中一個答案不明確,就應先修正工作流程的相關部分,再增加批次規模。

從已驗證的輸入結構開始

以下範例符合已查核的公開輸入結構定義。此範例僅經過輸入檢查,並未作為付費 Actor 作業執行。請將範例網址換成你自己的影片網址。字幕是否可用可能會改變。

json
{
  "startUrls": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://www.youtube.com/watch?v=M7lc1UVf-VE",
    "https://www.youtube.com/watch?v=jNQXAC9IVRw"
  ],
  "preferredLanguages": ["en"],
  "outputFormats": ["json", "text"],
  "includeFailedInputDetails": true
}
從已驗證的輸入結構開始

`startUrls` 包含 3 個字串,低於 1,000 筆的上限。`preferredLanguages` 指定英語。`outputFormats` 指定支援的 JSON 與文字格式。`includeFailedInputDetails` 會啟用未傳回逐字稿之輸入的詳細資訊。Chronometrica 輸入結構定義

採用這項語言設定時,沒有指定語言字幕的影片會成為失敗輸入,並記錄在 `OUTPUT` 中。它不會變成空白的逐字稿資料列。載入結果時,請保留這項區別:缺少文字是資料缺漏,不是字數為 0 的逐字稿。Chronometrica 文件

小規模執行後,先檢查實際匯出內容,再依其建立匯入程序。確認程序能讀取影片識別資訊、語言、帶有時間戳記的片段、合併文字及擷取時間。這些都是文件記載的輸出資訊,但你自己的載入程序必須保留專案所需的資訊。Chronometrica 文件

如需更完整的字幕收集說明,請參閱 YouTube 字幕擷取。本比較聚焦於作業規模的選擇與結果處理。

虛構範例:安排並檢查 1,100 部不重複影片

本範例全部為虛構。輸入數量與字幕處理結果均為編造,用來說明決策方法。它們不是測試結果或客戶成果。

某研究團隊最初有 1,200 筆輸入。團隊找出 100 筆重複的影片 ID,並移除這些重複輸入。清理後的清單包含 1,100 部不重複影片。

使用 Chronometrica 時,團隊建立 2 個批次:一批有 1,000 筆輸入,另一批有 100 筆。排定的執行次數為:

`ceil(1,100 / 1,000) = 2 runs`

此處的 `ceil` 表示向上取整至下一個整數。這項計算依據文件記載的批次上限。Chronometrica 批次範例

依 Pinto Studio 文件記載的每次一部影片處理單位,同一份清單需要安排 1,100 次執行。Pinto Studio 文件

這個差異只涉及工作流程啟動的 Actor 作業數量。它沒有比較網路請求、運算時間、總成本或成功率。兩種工作流程仍須逐一處理每部影片。

現在假設 900 部影片提供指定語言的字幕,另有 200 部沒有。在這個虛構案例中,Chronometrica 兩次執行的預期數量核對如下:

`1,100 unique inputs = 900 successful transcript rows + 200 failed inputs`

團隊從資料集讀取成功的資料列,並從兩份 `OUTPUT` 摘要讀取失敗輸入的詳細資訊。接著更新追蹤表,讓每部不重複影片都有明確的處理結果。這個方法使用 Chronometrica 文件記載的結果與失敗紀錄。Chronometrica 文件

此虛構案例中,有可用字幕的影片比例為:

`900 / 1,100 × 100 = 81.82%`

這個百分比描述的是虛構的收集結果。它不是實際觀察到的產品成功率,也不是準確度分數。

團隊在收集紀錄中保留全部 200 筆缺漏。不以空白文字取代,也不將它們視為沒有說話內容的影片。團隊也保留已移除的 100 筆重複輸入紀錄,因此能說明最初 1,200 筆輸入如何變成 1,100 部不重複影片,最後得到 900 筆逐字稿資料列。

增加工作量前,先檢查資料集

大型資料集可能讓缺漏結果不易被發現。每次審查都先核對數量,再檢查內容。

Chronometrica 的 `OUTPUT` 摘要會列出已接收的輸入數、已處理的不重複影片數、成功的資料列數、略過的重複輸入數、無法取得或不支援的輸入數,以及各錯誤代碼的數量。可選用的詳細資訊有助於追蹤未產生逐字稿的輸入。使用這些紀錄來說明結果數量。Chronometrica 文件

不要假設摘要中的每項數量都代表互不重疊的群組。使用輸入追蹤表,為每部不重複影片指定一個目前的處理結果。將錯誤代碼保留為該結果的原因,不要把它們加算成更多影片。

接著審查文字品質。很長的逐字稿仍可能包含錯字。即使有時間戳記,也可能與內容對不準。引用文字、比較用語,或對說話者的發言提出主張前,請先核對來源段落。若某個值未知,請保留這項不確定性。

一則公開的 DataHoarder 大量 YouTube 逐字稿需求貼文提到需要約 500,000 份逐字稿,並關切批次上限、成本及來源封鎖問題。這說明了安排執行作業為何重要。但它不能證明任何一個 Actor 能可靠地完成這種規模的收集。

先確認能交代較小規模收集的所有結果,並了解其中的缺漏,再擴大規模。為下一階段設定支出上限。本比較不能證明價格優勢或完成時間。

如果你還需要尋找影片,請使用另一篇指南:從搜尋結果建立 YouTube 逐字稿語料庫。取得網址清單後,再回到本文進行批次與結果檢查。

來源與延伸閱讀

作者 Chronometrica · 更新日期

返回頂端 ↑