

# 如何找出討論 YouTube 影片特定時間點的留言

要找出討論特定時間點的留言，請先找出寫有該影片時間的留言。播放每個提到的時間點，並連同上層留言和可取得的回覆一起閱讀。若要儲存索引，每則留言只保留一筆記錄。留言每提到一個時間，就另建一筆關聯記錄。文字中的時間能幫你找到影片場景，但不能證明留言描述的就是該場景。

若只需檢查一次，請從公開影片頁面開始。閱讀留言，播放所寫的時間點，並檢查回覆的上下文。若需要儲存一組資料，以便搜尋和再次檢查，請使用下方的收集方法。

一則[公開讀者提案，發表於 2024 年 11 月 20 日；回報了一個留言瀏覽問題](https://www.reddit.com/r/youtube/comments/1gvthqc) 描述了這項困難：「在瀏覽器中瀏覽留言區可能並不容易。」實用的索引必須保留討論內容，同時讓人更容易找到其中提到的影片時間。

本指南說明如何建立這份索引。範圍包括選定的公開留言和回覆，不包括聊天室訊息、YouTube Studio 中的私人記錄，也不代表所有觀眾的意見。本指南未實際執行留言收集。

## 1. 定義影片時間點和收集限制

選擇一部已知的公開影片。記錄影片 ID、公開網址和影片長度。ID 是用來識別來源記錄的代碼。影片長度是影片的總播放時間。

選取留言前，先寫下要研究的時間點。你可以指定一個確切時間，或設定開始和結束時間。請說明搜尋範圍是否包含結束時間。這樣可避免後續選擇改變原本的問題。

索引中的符合項目，表示某則留言包含一個已核對、且位於指定時間範圍內的時間參照。這不表示你已找到該場景的所有討論。有些留言會描述場景，卻沒有寫出時間。

接著，聲明收集限制：

| 設定 | 應記錄的內容 |
| --- | --- |
| 影片 | 已知的公開影片 ID 和網址 |
| 影片長度 | 總秒數及核對長度的來源 |
| 目標時間點 | 確切時間或明確指定的時間範圍 |
| 留言排序 | 最熱門（Top）、最新（Newest），或兩者皆用 |
| 留言上限 | 每部影片要求收集的頂層留言數上限 |
| 回覆上限 | 每則頂層留言要求收集的回覆數上限 |
| 收集時間 | 收集記錄的時間 |

頂層留言是指不是回覆的留言。上限是允許的最大數量。設定上限不保證來源會傳回同樣數量的記錄。

最熱門（Top）依照來源的精選順序排列。最新（Newest）依照來源的近期順序排列。兩者皆用（Both）會使用兩份清單，並在同一次執行中移除重複的留言 ID。這些選擇會界定一個有限的樣本。若需要協助選擇排序方式，請參閱[留言抽樣指南](/zh-Hant/articles/youtube-%E7%95%99%E8%A8%80%E7%86%B1%E9%96%80%E8%88%87%E6%9C%80%E6%96%B0%E6%8E%92%E5%BA%8F%E6%8A%BD%E6%A8%A3/)。

## 2. 收集少量留言及回覆

Actor 是由平台代管、用來收集資料的程式。[YouTube Comments Scraper 規格，已於 2026 年 10 月 25 日核對；僅核對文件](https://apify.com/chronometrica/youtube-comments-scraper) 說明了如何透過已知影片網址或 ID 收集公開留言。文件也說明了可選擇收集回覆，並設定回覆上限。

Actor 提供留言記錄。你仍須自行擷取時間參照、檢查影片，並建立索引。

先從這組少量收集的輸入設定開始：

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
  "maxCommentsPerVideo": 20,
  "commentSortMode": "newest",
  "includeReplies": true,
  "maxRepliesPerComment": 5
}
```

2. 收集少量留言及回覆

將整份 `startUrls` 清單替換成你要收集的公開影片。所附的歌曲網址只是輸入結構範例，不能證明這個方法會從該影片取得有用的留言結果。

這組輸入要求依最新順序收集最多 20 則不重複的頂層留言，也要求在每則已收集的頂層留言下收集最多 5 則回覆。回覆會另成記錄，不計入頂層留言上限。這些數字是要求的上限，不是實際傳回的筆數，也不是人數。

文件規定，輸入可包含 1 至 100 筆影片項目。`maxCommentsPerVideo` 接受 1 至 1,000 的整數。啟用回覆收集時，`maxRepliesPerComment` 接受 1 至 100 的整數。

Task 是已儲存的輸入預設設定。公開的[留言與回覆匯出 Task，已於 2026 年 10 月 25 日核對；僅確認頁面存在](https://apify.com/chronometrica/youtube-comments-scraper/examples/youtube-comments-and-replies-export) 可作為這次收集的起點。使用前，請替換範例影片清單，並檢查設定。

所附輸入已通過文件所列輸入規則的檢查。也已找到公開 Task 頁面及其 ID。未檢查已儲存的輸入，也未檢查任何付費執行。這些檢查不能證明收集成功，也不能證明回覆收集完整。

## 3. 分開儲存留言與時間參照

保留兩份資料表。留言表儲存原始討論記錄。關聯表儲存留言與影片時間之間的連結。關聯是兩個項目之間的一筆連結記錄。

每個固定不變的留言 ID 只保留一筆留言記錄。合併多部影片時，請同時使用影片 ID 和留言 ID。不要只因文字相同就合併留言。

來源提供下列欄位時，請將其儲存：

| 欄位 | 用途 |
| --- | --- |
| `videoId` | 識別影片 |
| `videoUrl` | 開啟來源影片 |
| `commentId` | 識別留言 |
| `parentCommentId` | 將回覆連結至其上層留言 |
| `isReply` | 區分回覆與頂層留言 |
| `replyDepth` | 保留文件所定義的回覆層級 |
| `text` | 保留留言原文 |
| `sortMode` | 保留取得該筆記錄時使用的來源排序方式 |
| `publishedAt` | 有確切發表日期時予以保留 |
| `publishedTimeText` | 保留頁面顯示的發表時間文字 |
| `updatedAt` | 有確切更新日期時予以保留 |
| `scrapedAt` | 記錄收集時間 |
| `status` | 保留該筆記錄的結果 |

[YouTube 留言資源文件，已於 2026 年 10 月 25 日核對；僅用於身分與時間概念](https://developers.google.com/youtube/data/reference/rest/v3/comments) 區分了留言 ID 與回覆所屬的上層留言 ID。其發表時間戳記記錄留言的發表時間，不是影片中的播放位置。Actor 有其自身文件定義的欄位。

缺失值應保留為缺失值。`publishedAt` 為 null，表示無法取得確切日期，不代表零。不要以 `scrapedAt` 替代，也不要將它轉換成影片時間。

即使匯出資料缺少上層留言，也要保留上層留言的連結，並記錄這項上下文缺失。不要因文字看似相近，就將回覆連到另一則留言。

## 4. 將每個寫出的時間擷取為候選時間參照

時間字串是一小段可能代表影片播放位置的文字，例如 37:07 和 1:02:03。候選時間參照是指尚未確認、但可能指向影片時間的文字。

閱讀原文，每出現一個候選時間參照，就建立一筆關聯記錄。保留原始字串及其字元位置。位置從零開始計算：第一個字元的位置是 0。

記錄位置前，不要更改空格或標點。後續讀者必須能在儲存的文字中找到同一個字串。若採用其他計數規則，請加以說明，並一致使用。

關聯表需要下列欄位。這些是你為索引建立的欄位，不是 Actor 保證提供的輸出：

| 儲存欄位 | 用途 |
| --- | --- |
| 影片 ID 和留言 ID | 找到來源留言 |
| 原始字串 | 保留原文寫出的時間 |
| 字串起始位置 | 區分同一則留言中各次出現的時間字串 |
| 轉換後的秒數 | 以同一單位比較有效時間 |
| 已知影片長度 | 檢查時間是否在影片長度內 |
| 驗證結果 | 記錄候選時間參照為有效、無效或待審查 |
| 上層留言上下文 | 連結至上層留言，或註明上下文缺失 |
| 審查狀態 | 記錄影片檢查確認了哪些內容 |
| 註記 | 簡要說明判定理由 |
| 檢查時間與檢查者 | 記錄由誰在何時檢查這筆關聯 |

一則留言可以包含多個時間。同一個時間也可能在一則留言中出現兩次。擷取時，請分別保留每次出現的記錄。這兩種情況都不會增加留言數或人數。

回覆本身可能沒有寫出時間，卻在討論上層留言提到的時間。請將這則回覆保留為上下文。不要替它編造時間字串，也不要替它建立已核對的場景參照。

## 5. 轉換前先驗證時間字串

計算秒數前，先檢查完整字串。不要從負值或格式錯誤的字串中截取較小片段，將它變成有效時間。

請遵守下列規則：

1. 接受「分：秒」或「時：分：秒」格式。
2. 秒數必須小於 60。
3. 使用含小時的格式時，中間的分鐘數必須小於 60。
4. 拒絕負值和無效的數字群組。
5. 將有效字串轉換成秒數。
6. 將結果與已知影片長度比較。

若格式為分與秒，將分鐘數乘以 60，再加上秒數：

37:07 = 37 × 60 秒 + 7 秒 = 2,227 秒。

若格式為時、分、秒，將小時數乘以 3,600，分鐘數乘以 60，再加上秒數：

1:02:03 = 1 × 3,600 秒 + 2 × 60 秒 + 3 秒 = 3,723 秒。

在兩組數字的格式中，第一組是分鐘數，可以超過 59。在三組數字的格式中，第一組是小時數，後面的分鐘數和秒數都必須小於 60。

因此，37:67 無法通過驗證。不要未加說明就將它修正。請保留原始字串及驗證失敗的原因。

超過已知影片長度的時間字串必須保留待審查。不要將它改成最接近的有效時間。若影片長度未知，長度檢查應保留為尚未確認。時間若恰好位於影片結尾，也必須先檢查播放內容，才能認定它是場景參照。

零與缺失不同。時間字串 0:00 指的是影片開頭。轉換時間欄位留空，表示尚無可採用的轉換結果。

## 6. 觀看時間點並閱讀討論

數字有效，仍只代表它是候選時間參照。它可能指的是其他事物。標記前，請先觀看它所指的影片時間點。

對每個通過檢查的候選時間參照，執行下列步驟：

1. 開啟對應影片，移至轉換後的時間。
2. 觀看並聆聽該時間點前後的內容。
3. 閱讀留言原文。
4. 閱讀其上層留言和可取得的回覆。
5. 簡短記錄你能確認的內容。
6. 指定審查狀態。

請一致使用下列狀態：

| 狀態 | 意義 |
| --- | --- |
| 已核對的場景參照 | 影片和討論內容支持與該時間點的關聯 |
| 無關字串 | 經檢查，文字中的字串指的是其他事物，而非這個影片位置 |
| 尚未確認 | 無法核對某項必要事實或來源 |
| 範圍之外 | 該參照不屬於已聲明的研究範圍 |

請將驗證結果與這些審查狀態分開記錄。無效字串表示未通過格式檢查。尚未確認的參照表示缺少必要事實。已核對但位於目標範圍之外的參照，可以保留在完整索引中，但不列入目標結果。

註記應描述關聯。不要推測觀眾的意圖，也不要推斷觀眾有共同看法。設定回覆上限，也表示你可能缺少相關上下文。請說明這項限制。

若要判斷教學是否缺少某項說明，請接著使用[教學缺口檢查方法](/zh-Hant/articles/%E5%88%A9%E7%94%A8-youtube-%E7%95%99%E8%A8%80%E6%89%BE%E5%87%BA%E6%95%99%E5%AD%B8%E4%B8%8D%E8%B6%B3/)。僅有場景參照，不能證明教學有缺口。若要尋找沒有任何留言提到的說明，請使用另一套[概念導覽方法](/zh-Hant/articles/%E9%95%B7%E7%AF%87-youtube-%E8%AA%B2%E5%A0%82%E5%BD%B1%E7%89%87-%E6%A6%82%E5%BF%B5%E6%9F%A5%E6%89%BE/)。

## 7. 完整操作一個原創虛構範例

本範例的所有內容皆為原創虛構。影片、留言、回覆和觀看筆記都是為了說明方法而編寫，並非 Actor 輸出。未實際執行留言收集，也未檢查任何真實影片的播放內容。

這部虛構影片的長度為 40:00：

40 × 60 秒 = 2,400 秒。

留言 C 的確切原文如下：

“37:07 explains the setup; 38:10 shows the result.”（意為：「37:07 說明設定；38:10 展示結果。」）

引號用於呈現範例，不屬於儲存的留言原文。原文中 37:07 的第一個字元位於位置 0。

### 保留一則留言與兩個時間參照

留言表中，C 只出現一次。回覆 R 是 C 之下的另一筆記錄。在這個虛構範例中，R 的原文是「That comparison helped.」，意為「那個比較很有幫助。」其中沒有時間字串。

| 留言 ID | 上層留言 ID | 文字 |
| --- | --- | --- |
| C | 無；頂層留言 | 37:07 explains the setup; 38:10 shows the result.（原文意為：37:07 說明設定；38:10 展示結果。） |
| R | C | That comparison helped.（原文意為：那個比較很有幫助。） |

C 中的兩個時間字串會產生兩筆關聯記錄：

| 留言 ID | 時間字串 | 從零起算的起始位置 | 轉換後的時間 | 影片長度檢查 |
| --- | --- | --- | --- | --- |
| C | 37:07 | 0 | 2,227 秒 | 在 2,400 秒內 |
| C | 38:10 | 26 | 2,290 秒 | 在 2,400 秒內 |

第二個時間字串從位置 26 開始。位置 25 是分號後的空格。這個位置必須對應未經更改的原文。

第二個時間的計算如下：

38:10 = 38 × 60 秒 + 10 秒 = 2,290 秒。

兩個時間參照相隔 2,290 − 2,227 = 63 秒。這個差值不代表一段連續的場景區間。留言指出的是兩個不同的時間點。

### 套用虛構的觀看筆記

假設虛構的觀看筆記確認，37:07 是設定說明，38:10 是其結果。兩筆關聯都標記為「已核對的場景參照」。R 仍連結至 C，作為回覆上下文。不要替 R 編造時間參照。

| 留言 | 時間 | 狀態 | 註記 | 回覆上下文 |
| --- | --- | --- | --- | --- |
| C | 37:07 | 已核對的場景參照 | 虛構觀看筆記確認此處為設定說明 | R 仍連結至 C |
| C | 38:10 | 已核對的場景參照 | 虛構觀看筆記確認此處為結果 | R 仍連結至 C |

若目標範圍為 37:00 至 37:30，且包含結束時間，只有第一筆關聯會列入結果。第二筆仍保留在完整索引中。無論查看哪個範圍，C 都只算一則留言。

本範例有兩筆留言記錄，其中一筆是回覆。C 提到了兩個時間。這些數量不能用來確定人數。

### 保留超出影片長度的時間，等待審查

現在考慮另一個獨立的虛構候選時間參照 41:00：

41 × 60 秒 = 2,460 秒。

2,460 − 2,400 = 60 秒，即超出虛構影片長度 60 秒。

這個時間字串的格式有效，但未通過影片長度檢查。請保留待審查，並記錄原因。不要將它改成 40:00。這個獨立的候選時間參照不會改變上述 C 和 R 的計數。

## 8. 檢查匯出資料並保留失敗狀態

匯出已核對的導覽索引，包含影片網址、已核對的影片時間、留言 ID、上層留言上下文、簡短註記和狀態。同時保留原始留言表和候選時間參照表。

使用索引前，請檢查每筆關聯是否都能連回已儲存的留言。對照未經更改的文字，再次核對時間字串的位置。確認計算和單位正確。確保每個採用的時間都屬於正確影片。

保留下列失敗或未完成狀態，讓人能看見：

| 情況 | 必要處理 |
| --- | --- |
| 缺少文字 | 將擷取狀態保留為尚未確認；不要編造文字 |
| 缺少身分識別資料 | 將記錄保留為尚未確認；不要編造 ID |
| 無效時間字串 | 保留字串及驗證失敗結果 |
| 影片長度未知 | 將影片長度檢查保留為尚未確認 |
| 無法播放影片 | 將場景檢查保留為尚未確認 |
| 缺少上層留言或回覆 | 記錄上下文缺失 |
| 收集失敗 | 記錄失敗；不要視為成功收集到空樣本 |
| 沒有已核對的符合項目 | 回報這組已收集資料中沒有已核對的符合項目 |

零筆只適用於你實際檢查過的資料集，不能證明相關留言不存在。請分別回報不重複的留言 ID 數量與時間提及次數。將來源排序方式、收集上限、收集日期和尚未確認的記錄，連同這些計數一起保留。

## 先建立一筆已核對的索引項目

選擇一部公開影片和一個目標時間點。記錄影片長度和收集限制。若只需手動檢查一次，請使用公開影片頁面。若需要儲存公開留言和回覆記錄，請使用 [YouTube Comments Scraper，規格已於 2026 年 10 月 25 日核對；未做執行測試](https://apify.com/chronometrica/youtube-comments-scraper)。

收集前，先替換範例影片。接著，選一則留言，依序完成擷取、驗證、播放檢查和註記。只有當時間、來源身分和已檢查的上下文一致時，才採用這筆索引項目。

確認第一筆項目清楚無誤後，再擴充索引。保留尚未確認的記錄，讓人能看見。這份索引能協助你在已聲明的樣本範圍內尋找討論，其中的關聯已經過檢查。若要擴大收集範圍或檢視教學內容，需另行決定。

## 來源與延伸閱讀

- [YouTube Comments Scraper 公開規格：已於 2026 年 10 月 25 日核對；版本 1.1.6 文件，未做付費執行或執行測試](https://apify.com/chronometrica/youtube-comments-scraper)
- [YouTube 留言與回覆匯出 Task：已於 2026 年 10 月 25 日核對；已找到公開頁面與預設設定 ID，未檢查已儲存的輸入及執行情況](https://apify.com/chronometrica/youtube-comments-scraper/examples/youtube-comments-and-replies-export)
- [YouTube Data API 留言資源文件：已於 2026 年 10 月 25 日核對；僅用於留言身分、上層留言身分及發表時間概念](https://developers.google.com/youtube/data/reference/rest/v3/comments)
- [關於留言瀏覽的公開讀者提案：發表於 2024 年 11 月 20 日，於 2026 年 10 月 25 日查閱；一項讀者陳述的問題](https://www.reddit.com/r/youtube/comments/1gvthqc)