

# How to Find YouTube Comments About a Specific Video Moment

To find comments about a specific moment, look for comments that mention its video time. Play each mentioned moment and read the comment with its parent and available replies. For a saved index, keep each comment once. Add a separate row for every time it mentions. A written time helps you find a scene. It does not prove that the comment describes that scene.

For a single check, start on the public video page. Read the comment, play the stated time, and check the reply context. Use the collection method below when you need a saved set that you can search and check again.

A [public reader proposal, published 20 November 2024; one reported navigation problem](https://www.reddit.com/r/youtube/comments/1gvthqc) describes the difficulty: “Navigating through the comments section in a browser can be challenging.” A useful index must preserve the discussion while making its time references easier to find.

This guide builds that index. It covers selected public comments and replies. It does not cover live chat, private records in YouTube Studio, or every viewer’s opinion. No real comment collection was run for this guide.

## 1. Define the video moment and collection limits

Choose a known public video. Record its video ID, public URL, and duration. An ID is a code that identifies a source record. Duration is the video’s total playing time.

Write the moment you want to study before you select comments. You can use one exact time or a start and end time. State whether the end belongs to your search range. This prevents later choices from changing the question.

A match in the index means that a comment contains a checked reference within that range. It does not mean that you found every discussion of the scene. Some comments describe a scene without writing its time.

Next, declare the collection limits:

| Setting | What to record |
| --- | --- |
| Video | Known public ID and URL |
| Duration | Total seconds and where you checked it |
| Target moment | Exact time or stated time range |
| Comment order | Top, Newest, or both |
| Comment cap | Maximum top-level comments requested per video |
| Reply cap | Maximum replies requested per top-level comment |
| Collection time | When the records were collected |

A top-level comment is a comment that is not a reply. A cap is an upper limit. The cap does not promise that the source will return that many records.

Top follows the source’s featured order. Newest follows its recent order. Both uses the two lists and removes repeated comment IDs within the run. These choices define a limited sample. For help choosing the order, use the [comment sampling guide](/en/articles/youtube-comment-sampling/).

## 2. Collect a small set with replies

An Actor is a hosted program that collects data. The [YouTube Comments Scraper contract, checked 25 October 2026; documentation only](https://apify.com/chronometrica/youtube-comments-scraper) documents public comment collection for known video URLs or IDs. It also documents optional replies with a cap.

The Actor supplies comment records. You must extract time references, check the video, and write the index.

Use this small input as a starting point:

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

2. Collect a small set with replies

Replace the whole `startUrls` list with your intended public video. The supplied song URL is a schema example. It is not evidence of a useful comment result for this method.

This input requests up to 20 unique top-level comments in Newest order. It also requests up to 5 replies under each collected top-level comment. Replies are extra rows. They do not use the top-level cap. The numbers describe requested limits, not returned counts or people.

The documented input accepts 1 to 100 video entries. `maxCommentsPerVideo` accepts whole numbers from 1 to 1,000. When replies are on, `maxRepliesPerComment` accepts whole numbers from 1 to 100.

A Task is a saved input preset. The public [comments and replies export Task, checked 25 October 2026; page presence only](https://apify.com/chronometrica/youtube-comments-scraper/examples/youtube-comments-and-replies-export) is a starting point for this collection. Replace its sample video list and check its settings before use.

The supplied input passed a check against the documented input rules. The public Task page and its ID were found. No saved input or paid run was checked. These checks do not prove successful collection or complete reply coverage.

## 3. Save comments separately from time references

Keep two tables. A comment table stores the original discussion records. A relation table stores links between comments and video times. A relation is one recorded connection between two things.

Keep one comment row per stable comment ID. Use the video ID with the comment ID when you combine videos. Do not merge comments because their words match.

Save these source fields when present:

| Field | Use |
| --- | --- |
| `videoId` | Identify the video |
| `videoUrl` | Open the source video |
| `commentId` | Identify the comment |
| `parentCommentId` | Connect a reply to its parent |
| `isReply` | Distinguish a reply from a top-level comment |
| `replyDepth` | Preserve the documented reply level |
| `text` | Keep the original comment words |
| `sortMode` | Keep the source order used for the row |
| `publishedAt` | Preserve an exact publication date when available |
| `publishedTimeText` | Preserve the displayed publication-time wording |
| `updatedAt` | Preserve an exact update date when available |
| `scrapedAt` | Record collection time |
| `status` | Preserve the row result |

The [YouTube comments resource, checked 25 October 2026; identity and time concepts only](https://developers.google.com/youtube/data/reference/rest/v3/comments) distinguishes a comment ID from a reply’s parent ID. Its publication timestamp records when a comment was posted. It is not a position in the video. The Actor has its own documented fields.

Keep missing values as missing. A null `publishedAt` means that an exact date is unavailable. It does not mean zero. Do not replace it with `scrapedAt` or convert it into a video time.

Preserve parent links even when the parent is missing from your export. Record that missing context. Do not attach a reply to a different comment because the wording seems similar.

## 4. Extract each written time as a candidate

A time token is a short piece of text that may name a video position. Examples include 37:07 and 1:02:03. A candidate is a possible reference that you have not yet confirmed.

Read the original text and create one relation row for each candidate occurrence. Keep the original token and its character position. Use zero-based positions: the first character has position 0.

Do not change spaces or punctuation before you record positions. A later reader must be able to find the same token in the saved text. If you use another counting rule, state it and keep it consistent.

Your relation table needs these fields. They are fields you create for the index, not promised Actor output:

| Saved field | Purpose |
| --- | --- |
| Video ID and comment ID | Find the source comment |
| Original token | Preserve the written time |
| Token start position | Distinguish occurrences in the same comment |
| Converted seconds | Compare valid times in one unit |
| Known duration | Check whether the time fits the video |
| Validation result | Record a valid, invalid, or held candidate |
| Parent context | Link to the parent or note missing context |
| Review state | Record what the video check established |
| Annotation | Explain the decision briefly |
| Checked time and reviewer | Record who checked the relation and when |

One comment can contain several times. A repeated time can also appear twice in one comment. Keep those occurrences separate at extraction. Neither case creates another comment or another person.

A reply can discuss its parent’s time without writing a time itself. Keep that reply as context. Do not invent a token or a checked scene reference for it.

## 5. Validate the token before conversion

Check the whole token before you calculate seconds. Do not turn a negative or malformed token into a valid time by taking a smaller part from it.

Use these rules:

1. Accept the minutes-and-seconds form or the hours-minutes-seconds form.
2. Keep seconds below 60.
3. In the hours form, keep the middle minutes group below 60.
4. Reject negative values and invalid groups.
5. Convert valid tokens to seconds.
6. Compare the result with the known video duration.

For minutes and seconds, multiply minutes by 60, then add seconds:

37:07 = 37 × 60 seconds + 7 seconds = 2,227 seconds.

For hours, minutes, and seconds, multiply hours by 3,600, multiply minutes by 60, and add seconds:

1:02:03 = 1 × 3,600 seconds + 2 × 60 seconds + 3 seconds = 3,723 seconds.

In the two-group form, minutes are the leading group. They can exceed 59. In the three-group form, hours are the leading group. The later minute and second groups must stay below 60.

Thus, 37:67 fails validation. Do not repair it silently. Keep the original token and the reason it failed.

A token beyond the known duration must be held for review. Do not move it to the nearest valid time. If duration is unknown, keep the duration check unresolved. A time at the exact end also needs a playback check before you call it a scene reference.

Zero is different from missing. The token 0:00 names the start of the video. An empty converted-time field means that no accepted conversion is available.

## 6. Watch the moment and read the discussion

A valid number is still only a candidate. It could describe something else. Watch the referenced moment before you label it.

For each candidate that passes the checks:

1. Open the matching video and move to the converted time.
2. Watch and listen around that point.
3. Read the original comment.
4. Read its parent and available replies.
5. Write a short note about what you could confirm.
6. Assign a review state.

Use these states consistently:

| State | Meaning |
| --- | --- |
| Checked scene reference | The video and discussion support the link to that moment |
| Unrelated token | The checked text uses the token for something other than this video position |
| Unresolved | A required fact or source could not be checked |
| Outside scope | The reference does not belong to the stated study |

Keep validation results separate from these review states. An invalid token fails a format check. An unresolved reference lacks a needed fact. A checked reference outside your target range can remain in the wider index without entering the target results.

Write annotations that describe the link. Do not infer a viewer’s intent or a shared audience view. A reply cap also means you may lack relevant context. State that limit.

If you need to decide whether a tutorial lacks an explanation, continue with the [lesson-gap check](/en/articles/youtube-teaching-response/). A scene reference alone does not establish a lesson gap. If you need an explanation that no comment names, use the separate [concept navigation method](/en/articles/youtube-concept-navigation-notes/).

## 7. Work through one original fictional example

Everything in this example is original fiction. The video, comments, reply, and viewing notes are invented to teach the method. They are not Actor output. No real comment run or playback check occurred.

The fictional video lasts 40:00:

40 × 60 seconds = 2,400 seconds.

Comment C contains this exact text:

“37:07 explains the setup; 38:10 shows the result.”

The quotation marks display the example. They are not part of the saved comment text. The first character of 37:07 is position 0.

### Preserve one comment and two references

The comment table contains C once. Reply R is a separate row under C. In this fiction, R says, “That comparison helped.” It has no time token.

| Comment ID | Parent ID | Text |
| --- | --- | --- |
| C | None; top-level comment | 37:07 explains the setup; 38:10 shows the result. |
| R | C | That comparison helped. |

The two tokens in C produce two relation rows:

| Comment ID | Token | Zero-based start | Converted time | Duration check |
| --- | --- | --- | --- | --- |
| C | 37:07 | 0 | 2,227 seconds | Within 2,400 seconds |
| C | 38:10 | 26 | 2,290 seconds | Within 2,400 seconds |

The second token starts at position 26. Position 25 is the space after the semicolon. Keep that position tied to the unchanged text.

The second calculation is:

38:10 = 38 × 60 seconds + 10 seconds = 2,290 seconds.

The two references are 2,290 − 2,227 = 63 seconds apart. That difference does not create a continuous scene interval. The comment names two separate moments.

### Apply the fictional viewing notes

Assume that the fictional viewing notes confirm a setup at 37:07 and its result at 38:10. Both relations receive the state “checked scene reference.” R remains attached to C as reply context. R does not receive an invented time reference.

| Comment | Time | State | Annotation | Reply context |
| --- | --- | --- | --- | --- |
| C | 37:07 | Checked scene reference | Fictional viewing note confirms the setup | R remains linked to C |
| C | 38:10 | Checked scene reference | Fictional viewing note confirms the result | R remains linked to C |

For a target range from 37:00 through 37:30, only the first relation enters the result. The second stays in the wider index. C remains one comment in either view.

The example has two comment records, including one reply. C has two timestamp mentions. Those counts do not establish a count of people.

### Hold a time beyond the duration

Now consider a separate fictional candidate, 41:00:

41 × 60 seconds = 2,460 seconds.

2,460 − 2,400 = 60 seconds beyond the fictional video duration.

The token has valid syntax, but it fails the duration check. Hold it and record the reason. Do not replace it with 40:00. This separate candidate does not change the counts for C and R above.

## 8. Check the export and preserve failure states

Export the checked navigation index with the video URL, checked time, comment ID, parent context, short annotation, and state. Keep the original comment and candidate tables beside it.

Before you use the index, check that each relation leads back to a saved comment. Recheck token positions against the unchanged text. Confirm the arithmetic and units. Make sure each accepted time belongs to the correct video.

Keep these failures visible:

| Condition | Required decision |
| --- | --- |
| Missing text | Leave extraction unresolved; do not invent words |
| Missing identity | Keep the record unresolved; do not invent an ID |
| Invalid token | Preserve it with the validation failure |
| Unknown duration | Leave the duration check unresolved |
| Unavailable playback | Leave the scene check unresolved |
| Missing parent or replies | Record the context gap |
| Failed collection | Record the failure; do not treat it as a successful empty sample |
| No checked matches | Report no checked matches in this collected set |

A zero count applies only to the set you actually checked. It does not prove that no relevant comments exist. Report unique comment IDs separately from timestamp mentions. Keep the source order, caps, collection dates, and unresolved records with those counts.

## Build one checked entry first

Choose one public video and one target moment. Record the duration and collection limits. Use the public page for a single manual check. Use the [YouTube Comments Scraper, contract checked 25 October 2026; no runtime test](https://apify.com/chronometrica/youtube-comments-scraper) when you need saved public comment and reply records.

Replace the sample video before collection. Then take one comment through extraction, validation, playback, and annotation. Accept the entry only when its time, source identity, and checked context agree.

Expand the index after that first entry is clear. Keep unresolved records visible. The result is a checked aid for finding discussions within a declared sample. Broader collection or a lesson review requires a separate decision.

## Sources

- [YouTube Comments Scraper public contract — checked 25 October 2026; build 1.1.6 documentation, no paid run or runtime test](https://apify.com/chronometrica/youtube-comments-scraper)
- [YouTube comments and replies export Task — checked 25 October 2026; public page and preset ID found, saved input and execution not checked](https://apify.com/chronometrica/youtube-comments-scraper/examples/youtube-comments-and-replies-export)
- [YouTube Data API comments resource — checked 25 October 2026; comment identity, parent identity, and publication-time concepts only](https://developers.google.com/youtube/data/reference/rest/v3/comments)
- [Public reader proposal about comment navigation — published 20 November 2024, observed 25 October 2026; one stated reader problem](https://www.reddit.com/r/youtube/comments/1gvthqc)