

# How to Find One Concept in a Long YouTube Lecture

Build a small concept index from caption times. Then watch each candidate interval in the video. A word match can show a mention. It cannot prove an explanation.

The index is a navigation aid you make. It is not a chapter list written by the video author. It is not a cut clip. It is not a summary of the whole video. It is not a plan for search chunks.

## 1. Write the learning question first

Write one sentence before you scan the transcript. Name the idea. Add other words a teacher may use. Name the answer type you need.

Use these answer types:

- A definition says what the idea means, or how to do it.
- A worked example does one case.
- A step sequence shows actions in order.
- A comparison sets two ideas side by side.
- A limit says where the idea stops.

Keep one split clear. "Mentions measurement" is not "explains how to measure." Your sentence should say which one you need.

## 2. Get one caption track

A caption is timed text already stored for the video. A transcript is all of those captions for one video. A segment is one timed line. Each segment has text, a start, and a duration. Duration means how long that line lasts.

An interval is the start and end you choose for one concept. You choose it later, after you read the segments.

An Actor is a hosted program that collects source rows. A source row is one video result. A Task is a saved input preset. The Actor only collects rows. You do the concept work on those rows.

Use YouTube Transcript version 0.1.43. The Actor is the [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper). The public Task is [YouTube Transcript Data for Video Chapter Generation](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-chapters).

That Task is a starting input. It does not label concepts for you. Its saved list is sample videos, not your lesson. Replace the whole list with one public class video you already know. Do not study the sample list. Do not copy words from it.

The Actor accepts a public video URL. It also accepts an 11-character video ID. An ID is the short video code. You may send up to 1,000 inputs. For this job, send one video. A repeated video ID is processed once.

A start URL may be a normal watch link, a youtu.be link, a Shorts link, a live link, or an embed link. An embed link places the player on another page. The Actor does not find videos from a channel, a playlist, or a search page.

It reads [existing public captions](/en/articles/youtube-caption-extraction/) only. It does not turn speech into new text. It does not translate. It does not write chapters, labels, or summaries.

Use this input when you want an English track:

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=YOUR_PUBLIC_VIDEO"],
  "preferredLanguages": ["en"],
  "outputFormats": ["json"],
  "includeFailedInputDetails": true
}
```

2. Get one caption track

Replace YOUR_PUBLIC_VIDEO with your known public video. `outputFormats` must be `["json"]` so each segment keeps its times. `preferredLanguages` set to `["en"]` asks for English. If English is missing, the result says the language is unavailable. It does not silently return another language.

If you want the best track that exists, use an empty language list:

```json
{
  "startUrls": ["https://www.youtube.com/watch?v=YOUR_PUBLIC_VIDEO"],
  "preferredLanguages": [],
  "outputFormats": ["json"],
  "includeFailedInputDetails": true
}
```

2. Get one caption track

An empty list does not promise English. You must read `transcriptLanguageCode` after the run. Keep `includeFailedInputDetails` true so a failed input stays visible.

## 3. Check the result before you search

Read these names on a source row. A field is one named value.

- `videoId`
- `videoUrl`
- `transcriptLanguageCode`
- `isAutoGenerated`
- `segments`, each with `text`, `startSeconds`, `endSeconds`, and `durationSeconds`
- `segmentCount`
- `status`
- `statusReason`
- `scrapedAt`

`videoDurationSeconds` may be missing. Missing means unknown. Do not write unknown as zero.

`isAutoGenerated` says how the track was made. True means the captions were made automatically. False means a person supplied the track. A manual track can still have wrong words. You still watch the video.

`status` says whether that caption read worked. `statusReason` says why. `scrapedAt` is the observation time. Keep the video ID, the URL, the language, the auto or manual flag, and `scrapedAt` with your notes.

Then read the run summary, called OUTPUT:

- `successfulTranscriptRows`
- `rowsWritten`
- `failedInputs`
- `statusCounts`
- `errorCodeCounts`
- `failedInputDetails`

A failed input does not become a transcript row. If `status` is not a success, stop. If the language you asked for is unavailable, leave the search unresolved. No text match does not prove the concept is absent. The words may be only on screen. The right language track may be missing. The caption read may have failed. That limit applies to the checked track only, not to the whole video.

One test of version 0.1.43 used one exact public video ID. It returned one transcript. The track was English and manual. It had 4,530 timed segments. OUTPUT succeeded and showed no failed inputs. That proves timed segments for that one source. It does not prove concept labels. It does not prove perfect words. It does not prove the same result for every video. Check every interval against the video.

`transcriptSpanSeconds`, plus the first and last timing values, describe the caption track only. They do not prove that a concept is complete.

## 4. Keep each original segment

Keep every original segment. Do not make each caption word its own concept. Scan for your concept and the other words you listed. Then read the segments just before and after a hit.

A keyword search can suggest a candidate. A candidate is a possible interval, not a confirmed one. The search does not write a verified label. You write the label only after you watch.

## 5. Mark the candidate interval

Start the interval at the first segment that begins the explanation. End it at the last segment that still answers your question.

Prefer the returned `endSeconds` for that last segment. When `durationSeconds` is known, cross-check that `endSeconds` equals `startSeconds` plus `durationSeconds`. `durationSeconds` can be null while `endSeconds` is known. Preserve null. Never guess zero. Do not use the next segment start as the end. Segments can overlap. Segments can also leave gaps. The end of the last caption is not the end of the video.

Include earlier segments when they define a word you need. A defined word may be a name for a value. Intervals may overlap when the teacher returns to an older idea. You do not have to cut the whole video into one continuous set of intervals.

## 6. Watch the video and label the answer

Open the candidate interval in the source video. Listen to the words. Also look at diagrams, on-screen code, and references. Captions can miss those.

Give one label from this simple scheme:

- `mention_only` means the idea is named, but not explained.
- `explains_definition` means the interval explains the meaning or the method.
- `worked_example` means the interval works one case.
- `comparison` means the interval compares things.
- `unresolved` means you cannot confirm the answer from this viewing.

These labels are your own content marks. They are not Actor output. Write why the interval answers the learning question, or why it fails.

## 7. Save one index row

An index row is one line you write for one checked interval. Include:

- concept label
- learning question
- video ID and URL
- caption language
- start seconds and end seconds
- start time in minutes and seconds
- explanation type
- `checked_at`
- evidence note
- confidence

Also keep the end time. Confidence is your stated review grade. It is not a model score. If a boundary is unknown, leave it unknown.

## 8. Open the start link and study that interval

On a computer, open Share, then Start at. Enter the start time. Copy the link. Open the copied link. Confirm that playback starts near the right context. YouTube explains that control in [Share videos and channels](https://support.google.com/youtube/answer/57741?hl=en&ref_topic=9257102).

A start link does not force a stop time. Keep the end time in the index. Do not treat a made-up sample URL as a checked playable video.

Use the checked interval for study. If you cannot confirm the explanation, mark `no_confirmed_explanation_in_checked_track`. Add a scope note that names the checked track. Then look at another source. Do not call the whole video unable to answer because one uncertain caption search failed.

## Fictional lesson: Measuring a garden bed

The example below is original fiction. It teaches the interval math. It is not an Actor result. It has no real video URL. Do not treat any link for it as playable.

The fiction title is "Measuring a garden bed." The made-up lesson is 12 minutes long. Its teaching intervals are:

- setup from 0 to 120 seconds
- measurement explanation from 120 to 330 seconds
- a calculation example from 330 to 570 seconds
- limitations from 570 to 720 seconds

Three fiction segments sit near the width concept:

| Start seconds | Duration seconds | End seconds | Text |
| --- | --- | --- | --- |
| 120 | 30 | 150 | Measure the inside width from edge to edge |
| 150 | 45 | 195 | Use the same unit for length and width |
| 300 | 30 | 330 | Check the reading before you record it. |

The learning question is: How do I measure width in one unit?

The line at 120 seconds gives the action. The line at 150 seconds adds one unit. The line at 300 seconds ends the method. So the definition interval includes all three lines. It runs from 120 seconds through 330 seconds.

Last segment end: 300 + 30 = 330 seconds. Interval length: 330 - 120 = 210 seconds. 210 seconds is 3 minutes and 30 seconds. The start clock time is 2:00. The end clock time is 5:30.

After a manual watch of this fiction lesson, the label is `explains_definition`. The evidence note says the inside edges are shown. That watch step is what confirms the label. The segment text alone does not.

The calculation interval is a different concept type. It runs from 330 to 570 seconds. 570 - 330 = 240 seconds. 240 seconds is 4:00. Its clock start is 5:30. Label it `worked_example`. Do not merge it into the definition.

The four teaching lengths are 120, 210, 240, and 150 seconds. 120 + 210 + 240 + 150 = 720 seconds. Together they cover this fiction lesson. A full clock does not mean every concept is explained.

The word measurement also appears at 600 seconds. That clock time is 10:00. It sits inside the limitations interval, and it is a warning. Keep it as `mention_only`, or as a limit. Do not move the main definition to 600.

One more fiction boundary needs a manual choice. A segment starts at 310 seconds and its duration is 30 seconds. Its end is 310 + 30 = 340 seconds. The next interval starts at 330 seconds. 340 - 330 = 10 seconds of overlap. Keep that overlap, or move the boundary after you watch. Do not cut the words at 330 only to make a neat edge.

`scrapedAt` is unknown here because no real track was read. `videoDurationSeconds` is also unknown. The 720 seconds come from the made-up lengths. They are not a video duration field. Unknown stays unknown.

### Clock math for the four fiction intervals

| Part | Start seconds | End seconds | Length |
| --- | --- | --- | --- |
| Setup | 0 | 120 | 120 |
| Width definition | 120 | 330 | 330 - 120 = 210 |
| Calculation | 330 | 570 | 570 - 330 = 240 |
| Limitations | 570 | 720 | 720 - 570 = 150 |
| Sum | 0 | 720 | 120 + 210 + 240 + 150 = 720 |

### Boundary cases in the same fiction

| Case | Math | Decision |
| --- | --- | --- |
| Last definition segment | 300 + 30 = 330 | This end closes the width interval. |
| Overlap past 330 | 310 + 30 = 340, and 340 - 330 = 10 | Keep the 10-second overlap, or change it after the watch. |
| Later word at 600 | 600 is inside 570 to 720 | `mention_only` limit. Not the definition. |

### Checked fiction index

| Concept | Learning question | Video | Caption language | Start seconds | End seconds | Start time | End time | Type | Checked at | Evidence note | Review grade |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Lesson setup | What happens before measuring? | Fiction title only. No real URL. | en, teaching label only | 0 | 120 | 0:00 | 2:00 | unresolved | Teaching review only | Named setup. No segment text is given, so the claim is not confirmed. | Unknown until watched |
| Width in one unit | How do I measure width in one unit? | Fiction title only. No real URL. | en, teaching label only | 120 | 330 | 2:00 | 5:30 | explains_definition | Teaching review only | Last end is 300 + 30 = 330. Watch note: inside edges are shown. | Confirmed in this fiction review |
| Bed calculation | How is one calculation shown? | Fiction title only. No real URL. | en, teaching label only | 330 | 570 | 5:30 | 9:30 | worked_example | Teaching review only | Separate type. 570 - 330 = 240 seconds, or 4:00. | Confirmed as an example only |
| Later measurement warning | Does the later word explain width? | Fiction title only. No real URL. | en, teaching label only | 570 | 720 | 9:30 | 12:00 | mention_only | Teaching review only | At 600 seconds the word is in a warning. Keep it as a limit. | Mention only |

The width question selects the 120 to 330 row. You would watch from 2:00 and treat 5:30 as the review end. You would save the start link, the end time, and the evidence note. This fiction row has no real link. On a real video, use Share, then Start at, open the copied link, and write what you saw.

This fiction has no measured study-speed result. The numbers teach interval math only.

## Next action

Replace the whole sample list with one known public class video. Use the [YouTube Transcript Data for Video Chapter Generation](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-chapters) Task on the [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) Actor. Set `outputFormats` to `["json"]`. Watch one candidate interval in that source video. Save its start link, its end time, and a short evidence note.

## Sources

- [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper)
- [YouTube Transcript Data for Video Chapter Generation](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-chapters)
- [Share videos and channels](https://support.google.com/youtube/answer/57741?hl=en&ref_topic=9257102)
- [First-person note on long class videos](https://www.reddit.com/r/chrome_extensions/comments/1vhu5aj/built_a_lightweight_extension_that_attaches/)