# YouTube Chapters, Captions, and Descriptions for Tutorials

> The chapter rules YouTube enforces, a beat-sheet-to-timestamps example, a caption review list for commands and flags, and a description template for tutorials.

- Canonical page: https://learnhubplay.nl/blog/youtube-chapters-captions-descriptions
- Published: 2026-10-14
- By: LearnHubPlay, an independent software studio in Amsterdam
- Topic: Screen Recording & Tutorials
- Tags: YouTube, Video production, Templates

Say you spent a weekend on a ten-minute tutorial. Some viewers will play it through. The rest arrive from a search for one flag or one error message, scan for the right moment, and may leave if they cannot find it quickly. Chapters, captions, and the description serve that second group, and the defaults for all three are easy to ship.

Technical videos are not exempt from caption errors. In a study of 9,860 lectures from India's NPTEL platform, the median engineering lecture had roughly one word in seven wrong in YouTube's automatic captions. A chapter called "Part 2" tells a searcher nothing, and the first lines of a description are easy to waste on a greeting.

You will leave able to turn a beat sheet into a valid chapter list, review captions where commands break, write a description that works above "Show more", and mark up chapters for Google Search if you host the video yourself.

## The chapter rules YouTube enforces, and what each one costs a tutorial

You add chapters in YouTube Studio: Content, the video, the Description field, then Save. YouTube Help sets four requirements.

| Rule | Requirement | Consequence for a tutorial |
|---|---|---|
| Start | First timestamp is 00:00 | The cold open belongs to chapter one |
| Count | At least three timestamps | Two sections are not enough: split one, or skip chapters |
| Order | Ascending | Re-check after every re-edit |
| Length | Each chapter 10 seconds or more | Merge shorter beats into a neighbour |

Chapters you write override automatic ones, which are on by default for new uploads and not available for every video. To disable them for future uploads, go to Settings, Upload defaults, Advanced settings, and clear "Allow automatic chapters (when available and eligible)". Per video, the option sits under Show more.

For a tutorial, write them yourself. The command or setting name belongs in the title, and Google says it prioritises key moments you set yourself, through structured data or the YouTube description.

## Turn a beat sheet into timestamps: a worked example

If you planned with a beat sheet, one line per step as in our [workflow for recording tutorials people finish](https://learnhubplay.nl/blog/record-software-tutorials), the chapter list already exists. What remains is arithmetic.

1. Finish the edit first, because a later trim moves every timestamp after it. Studio can trim after upload, but [its Help page](https://support.google.com/youtube/answer/9057455) does not mention chapters or captions, so re-check both.
2. Read each beat's length off the timeline and merge any beat under 10 seconds into a neighbour.
3. Keep a running total: each total is the next start time.
4. Title each chapter, paste the list into the description, and start it at 00:00.

Say a Python virtual environment tutorial exports at 7:30:

| Beat | Length | Starts at |
|---|---|---|
| Finished result on screen | 0:15 | 00:00 |
| Why each project needs its own environment | 0:45 | 00:15 |
| Check the Python version (0:08) + create the environment (0:52) | 1:00 | 01:00 |
| Activate it, macOS/Linux and Windows | 1:10 | 02:00 |
| Install from requirements.txt | 1:30 | 03:10 |
| Confirm you are inside the environment | 0:55 | 04:40 |
| Keep it out of Git, on Python 3.12 and earlier | 0:40 | 05:35 |
| Recreate it on a fresh clone | 1:15 | 06:15 |

The 8-second version check falls under the minimum, so it merges into the beat after it. The list you paste:

```text
00:00 The finished result: a project with its own packages
00:15 Why every project needs its own environment
01:00 Create the environment with python -m venv .venv
02:00 Activate it on macOS, Linux, and Windows
03:10 Install from requirements.txt with pip
04:40 Confirm Python and pip run from inside .venv
05:35 Keep .venv out of Git: automatic on Python 3.13 and later
06:15 Recreate the environment on a fresh clone
```

That is eight chapters, the last ending at 07:30. Google's timestamp format is hours, minutes, seconds with the hour optional, so past the hour a chapter starts like `1:05:30`.

The Git chapter names a version on purpose. Python's [venv documentation](https://docs.python.org/3/library/venv.html) says that since 3.13 `venv` creates a `.gitignore` by default, and the [CPython 3.13 source](https://raw.githubusercontent.com/python/cpython/3.13/Lib/venv/__init__.py) shows its pattern is a single `*`, so Git ignores the whole environment. `--without-scm-ignore-files` turns that off. On 3.12 and earlier, add `.venv/` to your own `.gitignore`.

## Chapter titles that work for skimmers and for search

We found no YouTube or Google documentation that names chapter titles as a ranking input. Documented: chapters may appear in transcripts, and Google can build key moments from timestamps and labels in a YouTube description. Both reward writing each title in the words a viewer would scan for or type.

- **Put the thing itself in the title**: the command, flag, setting, or file name. Help advises using the words you would type into search.
- **Lead with the distinctive word**, so a skim down the list still finds it.
- **State the scope when steps diverge**, as in "macOS, Linux, and Windows" or "Python 3.13 and later".
- **Skip numbering.** Position already shows order.

| Instead of | Write |
|---|---|
| Setup | Create the environment with python -m venv .venv |
| Troubleshooting | If PowerShell will not run Activate.ps1: set the execution policy |

Python's venv documentation confirms it: Windows may need that execution policy change.

## Captions on technical videos: where automatic ones fall short, and how to fix them

### Auto-caption error rates in one 9,860-lecture study

YouTube Help says automatic captions can misrepresent speech because of "mispronunciations, accents, dialects, or background noise", and tells creators to always review them.

The best numbers we found are from Rai, Jaiswal and Mukherjee (ICWSM 2024; figures from the July 2023 arXiv preprint). They scored YouTube's automatic captions against reference transcripts for 9,860 NPTEL lectures by 332 instructors, 8,740 hours in all. Word error rate (WER) is the substituted, inserted, and deleted words divided by the words in the reference. The median was 14.8% for engineering lectures and 13.5% for the rest, a 1.3-point gap the authors report as statistically significant. Only 75.6% of lectures came in under 20%. For OpenAI's open-source Whisper, in its small base.en version, the engineering median was 12.2% and 84.0% of lectures came in under 20%.

Read the numbers as a direction, not a prediction. The captions predate the preprint, YouTube's recogniser may have changed since, and accent effects are mixed in. Clean audio is the cheapest fix; see our [budget microphone guide](https://learnhubplay.nl/blog/budget-microphone-audio-setup).

Scoring also stripped punctuation and standardised case, so hyphens in flags, dots and slashes in paths, and capitals in product names cannot show up in those numbers. We found no published measurement of automatic-caption accuracy on commands, so treat this table as a review list, not a prediction:

| Token type | Example from the venv tutorial |
|---|---|
| Flags | `-m`, `-r` |
| Files, folders, and paths | `requirements.txt`, `.venv`, `\Scripts\` |
| Product names and letter case | PowerShell, Git |
| Version numbers | 3.13 |

Check each against your command block and the version you tested. A command you type without saying it aloud appears in no caption, which is why the description's command block matters.

### What WCAG 2.2 asks of a narrated recording

Success Criterion 1.2.2 (Level A) says "Captions are provided for all prerecorded audio content in synchronized media". A narrated screen recording is synchronized media, and captions must also carry meaningful non-speech sound. The criterion sets no accuracy percentage, and its Understanding document, which lists captions that omit dialogue or important sound effects as a failure (F8), does not discuss automatic captions. In our reading, a track that garbles your commands conveys less than your audio does.

Two neighbours matter for tutorials: 1.2.3 (Level A) asks for audio description or a media alternative, and 1.2.5 (Level AA) asks for audio description itself. W3C says no extra description is needed when all the important information in the video is already in the audio. So say what you click: "open Settings, then Backups", not "click here".

### Fix them in Studio, or upload a file

1. In YouTube Studio, select Subtitles, then click the video.
2. Select Edit for the language. For an automatic track, select Duplicate and edit, then confirm with Continue. YouTube generates a new caption track with your revisions ([Edit or remove captions](https://support.google.com/youtube/answer/2734705)).
3. Use the chapter list as a review index: jump to each chapter's timestamp and check the cues there against the command block, instead of replaying the whole video.
4. Add bracketed sound notes for audio the viewer needs, such as `[applause]`, the example Help gives.
5. Click Publish.

If you narrated from a script, upload it. In Subtitles choose Add language, then Add, then **Upload file**, **Auto-sync**, or **Type manually**. Auto-sync times a transcript you paste or upload to your audio. The transcript must match the spoken language, and Help does not recommend transcripts for videos over an hour long or with poor audio.

YouTube accepts SRT, SBV, WebVTT, and more; SRT and SBV must be plain UTF-8. WebVTT begins with a `WEBVTT` line, uses a full stop before the milliseconds, and makes cue numbers optional ([W3C WebVTT](https://www.w3.org/TR/webvtt1/)).

## A description that works before "Show more"

Help gives no character count for what viewers see before "Show more", and the cut-off varies by device, so preview the description in YouTube search, on the watch page, and on a phone.

The order that follows:

1. **Task and scope in the first lines**, with the one or two main keywords from the title.
2. **Version and date.** Software tutorials go stale.
3. **Commands, one per line, as plain text.** Help mentions bold, italic, strikethrough, and bullets (a line starting with `*`, `+`, or `-` and a space), so start each line with the command and preview it.
4. **Chapters, then links** to the written steps.
5. **Corrections.** Add a separate line starting `Correction:` (YouTube currently requires the English label), then a timestamp written like a chapter timestamp and the explanation ([YouTube's announcement](https://blog.youtube/news-and-events/how-to-add-corrections-to-youtube-videos/)). It can go anywhere; we put it after the chapters.

```text
Create an isolated Python environment for one project and install its packages from requirements.txt. macOS, Linux, and Windows. Tested with Python [version] on [OS version], [month year].

Commands, macOS and Linux:
python3 -m venv .venv
source .venv/bin/activate

Commands, Windows cmd.exe:
python -m venv .venv
.venv\Scripts\activate.bat

Commands, Windows PowerShell:
python -m venv .venv
.venv\Scripts\Activate.ps1

Then, in any shell:
pip install -r requirements.txt

Chapters:
00:00 The finished result: a project with its own packages
[remaining chapters]

Written steps: [link]
```

Python's documentation writes `python -m venv`, so the chapter title does too; list whichever name you tested.

On limits, Help gives 5,000 characters, while the [Data API reference](https://developers.google.com/youtube/v3/docs/videos) counts 5,000 bytes, which non-ASCII text uses faster. It also bars `<` and `>`, so write `[file]` rather than `<file>`, and reword a shell redirect such as `command > output.txt`.

> **Warning:** Descriptions and captions are public text. Strip tokens, internal hostnames, and customer names from both before publishing. Our [pre-flight checklist for screen recordings](https://learnhubplay.nl/blog/screen-recording-privacy-checklist) covers what to sweep.

## Key moments in Google Search, and what changes for self-hosted video

For YouTube-hosted video there is nothing extra to do. Google says to define key moments with timestamps and labels in the YouTube description: one per line, chronological, with the label on the same line and at least one word long. Your chapter list already does that.

For a file you host, the work moves to structured data. **Clip** lists segments with a name, a start time in seconds, and a URL, plus a recommended end time, and works in all languages Google Search supports. **SeekToAction** describes your URL pattern and lets Google find moments, but only in a limited list of languages. Both need a video of at least 30 seconds.

```json
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Set up a Python virtual environment for a new project",
  "thumbnailUrl": "https://example.com/videos/venv-thumb.jpg",
  "uploadDate": "2026-10-26T09:00:00+01:00",
  "contentUrl": "https://example.com/videos/venv.mp4",
  "hasPart": [
    {
      "@type": "Clip",
      "name": "Why every project needs its own environment",
      "startOffset": 15,
      "endOffset": 60,
      "url": "https://example.com/videos/venv?t=15"
    }
  ]
}
```

That is one Clip, for the second chapter; repeat it per chapter. Google requires `name`, `thumbnailUrl`, and `uploadDate` on the video and `name`, `startOffset`, and `url` on each clip. The clip URL must point to the same URL path as the video, with query parameters that set the time: here the page URL plus `?t=`, while `contentUrl` names the file.

> **Note:** Google's [video best practices](https://developers.google.com/search/docs/appearance/video) say markup does not guarantee a given feature appears. They define a watch page as one whose main purpose is a single video; a blog post reviewing an embedded video is not one. If video results matter, give the video its own page and watch the Video indexing report in Search Console.

## Publish-day checklist, and where to start this week

- [ ] Edit is final, and timestamps come from the file you upload
- [ ] Chapters start at 00:00, number three or more, ascend, and none is under 10 seconds
- [ ] Each title holds the command, setting, or file name a viewer would search
- [ ] Automatic captions reviewed at each chapter timestamp, or a corrected file uploaded
- [ ] First lines of the description state task, scope, and version, and were previewed on a phone

Do this for one video first: the tutorial people already find through search.

## Frequently asked questions

### A command in my published tutorial is wrong or out of date. Do I have to re-upload?

Not for a small fix. In Studio, open Content and the video, add a description line starting `Correction:`, then a timestamp and the fix, and Save. YouTube says viewers then see an info overlay when playback reaches that timestamp. Captions and the command block do not change, so fix those too. In our view, re-record when the order of steps changed, not just a flag or a menu name.

### My timestamps are in the description but no chapters appear. What do I check?

Work down the rules above: 00:00 first, at least three timestamps, ascending order, no chapter under 10 seconds, and saved. Help says chapters are unavailable on channels with active strikes, and that you should apply for Advanced features if you do not have access yet.

### Does a silent screen recording need captions?

It needs an alternative, which is a different thing. With no audio at all, WCAG 1.2.1 (Level A) asks for an alternative for time-based media, meaning a document with sequenced text descriptions of what is seen and heard, or an audio track with equivalent information. A matching written walkthrough fits. Add a music track and the recording counts as synchronized media, because WCAG defines video-only as having no audio. Then 1.2.2 asks for captions of meaningful sound, 1.2.3 for the alternative or audio description, and at Level AA 1.2.5 for audio description itself.

## Sources and further reading

- [Add chapters to videos](https://support.google.com/youtube/answer/9884579) — YouTube Help. Chapter rules and strikes.
- [Use automatic captions](https://support.google.com/youtube/answer/6373554) — YouTube Help. Accuracy caveats.
- [Edit or remove captions](https://support.google.com/youtube/answer/2734705) — YouTube Help. Duplicate and edit, then Publish.
- [Add subtitles and captions](https://support.google.com/youtube/answer/2734796) and [Use caption and subtitle file types](https://support.google.com/youtube/answer/2734698) — YouTube Help. Upload routes and formats.
- [Tips for video descriptions](https://support.google.com/youtube/answer/12948449) — YouTube Help. Bullets and previewing.
- [Video structured data](https://developers.google.com/search/docs/appearance/structured-data/video) — Google Search Central. Key moments, Clip, SeekToAction.
- [Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/) — W3C, 2024. Criteria 1.2.1 to 1.2.5.
- [A Deep Dive into the Disparity of Word Error Rates Across Thousands of NPTEL MOOC Videos](https://arxiv.org/pdf/2307.10587) — Rai, Jaiswal and Mukherjee, arXiv preprint 2023, published at [ICWSM 2024](https://ojs.aaai.org/index.php/ICWSM/article/view/31390). Auto-caption error rates.

*[TechCast Studio](https://techcast.learnhubplay.nl/), the local-first recording workspace we are building, is in Founding Beta on Apple Silicon and exports local 720p or 1080p MP4 files. Everything above works with the recorder and editor you already use.*
