# Chapters

> The Chapters node lists a podcast or interview's chapters in one step, each with a title and a start time, ready to paste into show notes or a description.

Source: https://nodaro.ai/docs/nodes/video/episode-chapters

The **Chapters** node lists the chapters of a podcast or interview recording in one step. It transcribes the recording and finds its chapters, each with a title and a start time, ready to paste into show notes or a video description. Nothing is rendered: the result is text.

Inside, the node runs the same steps that you can wire by hand: [Transcribe](https://nodaro.ai/docs/nodes/audio/transcribe) with speaker labels and word timings, then [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) in **Chapters** mode. Each step runs as its own job, so a long recording, a cancel or a failure behaves as it does in a hand-built workflow.

Chapters runs its planning step on Nodaro Cloud. On a self-hosted install, [connect the install to Nodaro Cloud](https://nodaro.ai/docs/self-hosting/cloud-connect), under **Integrations › nodaro.ai** or with an API key. Without a connection, the node is not offered and a run is refused before anything starts.

## When to use it
- Add chapter markers to the show notes of a podcast episode.
- Add timestamps to the description of a video.
- Make a table of contents for a long interview or lecture.
- Pass the chapter list as JSON to a player, a website or a later step of the workflow.

Use [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan) in **Chapters** mode yourself when you already have a transcript. To tighten the episode as well, use [Tighten Episode](https://nodaro.ai/docs/nodes/video/tighten-episode).

## Quick start
### Add the node

Press Tab on the canvas and choose **Video › Podcast › Chapters**. The node is also listed on the **Audio** tab.

### Connect the recording

Wire the episode into the **Recording** input, for example from an [Upload Audio](https://nodaro.ai/docs/nodes/audio/upload-audio) or [Upload Video](https://nodaro.ai/docs/nodes/video/upload-video) node. The recording can be up to 3 hours long, and it must have sound.

### Steer the plan

Optionally, write **Instructions**, for example `5 to 8 chapters, titles under six words`.

### Run it

Click **Run** on the node. The node shows the chapter list, with a button that copies it.

Workflow: Chapters transcribes a recorded episode and returns its chapter list as show notes and as JSON.

- Upload Audio → Chapters (recording)

## Inputs
| Input | Accepts | What it does |
| --- | --- | --- |
| **Recording** | Video or audio | The episode recording, up to 3 hours. It must have sound. Required. |

A recording that is longer than 3 hours, or a recording with no sound, is refused before anything is charged. With more than one recording wired in, a run reads the first one.

## Outputs
| Output | What it carries |
| --- | --- |
| **Show notes** | The chapter list as text, one line per chapter: the start time, then the title. For example `0:00 Intro` and `12:47 Why we moved`. |
| **Chapters (JSON)** | The same chapters as JSON, in the same order: `[{ "startMs": 0, "title": "Intro" }]`. Each `startMs` is the start in milliseconds. The first chapter starts at 0. |

How the show notes are written:

- **The first chapter starts at 0:00,** where a listener's player starts.
- **Hours appear only when they are needed.** Once a chapter starts at 1:00:00 or later, every line uses hours: `0:00:00 Intro`, `1:04:10 Questions`. A 70-minute episode whose last chapter starts at 58:00 keeps the short form.
- **The times only go up.** When two chapters start in the same second, the first one is kept and the others are left out. A chapter that starts within the first second is left out too.
- **A title is one line.** Line breaks and runs of spaces inside a title become one space.

In a published app, the show notes are shown as text.

## Settings
| Setting | What it does |
| --- | --- |
| **Planning quality** | **Economy** (the default), **Standard** or **Premium**. The tier of the Edit Plan step, which sets the quality and the price of the plan. |
| **Instructions** | A short steer for the plan, up to 4,000 characters. For example, `5 to 8 chapters` or `short titles`. |
| **Style guide** | Longer editorial guidance for the plan, up to 4,000 characters. |

## If a run fails

The steps that finished stay finished. The transcript is kept, and it is not charged again. Press **Continue** on the node: only the step that failed and the steps after it run again.

A node fed by a List runs once per item. It has no **Continue** button, so run it again instead.

When the plan finds no chapters, the run fails with the message "The plan found no chapters in this recording." The per-run fee is refunded. The transcript and the plan ran, so they are charged at their own rates. Every step finished, so the run cannot be continued and the node offers no **Continue**. Run the node again, with other instructions or another recording.

## Credits
Chapters charges each step at its own rate, the same as the node it stands for, plus a small per-run fee. The node shows the full estimate, fee included, before you run.

| Step | Price |
| --- | --- |
| Transcribe, on ElevenLabs STT | 25 credits per run |
| Edit Plan, **Chapters** mode | Per started minute of the recording, at the rate of the **Planning quality**. A 30-minute recording on **Economy** costs 66 credits. |

- **The per-run fee** is charged once per run. A failed run's fee is refunded, and **Continue** holds it again.
- **A List runs each item as its own run,** with its own fee.
- **The estimate** counts the recording's minutes the way Edit Plan does. A recording with no known length is estimated at the 180-minute ceiling. How Edit Plan counts the minutes is explained on [Edit Plan](https://nodaro.ai/docs/nodes/video/edit-plan#credits).

## Tips
- **Say how many chapters you want.** Use **Instructions** for the number of chapters and the style of the titles, for example `titles under six words`.
- **Use the right output.** Wire **Show notes** into a text field or a publishing step. Wire **Chapters (JSON)** where you need the start times as numbers.
- **Draft on Economy.** **Economy** is the default. Try a higher **Planning quality** when the chapters need to be more precise.

## Troubleshooting
| Problem | What to do |
| --- | --- |
| The run is refused before it starts | Check that the recording is at most 3 hours long and has sound. |
| The plan found no chapters | Run the node again with other **Instructions**, or with another recording. |
| One step failed | Press **Continue** on the node. The finished steps keep their results and are not charged again. |
| Two chapters are missing | Chapters that start in the same second as another chapter are left out. Ask for fewer, longer chapters in **Instructions**. |
| The node is missing on a self-hosted install | Connect the install to Nodaro Cloud. See [Connect to Nodaro Cloud](https://nodaro.ai/docs/self-hosting/cloud-connect). |

## From the API
`POST /v1/episode-chapters` starts a run and answers `202` with `jobId` and `executionId`. The body takes `mediaUrls` (one recording URL), and optionally `planTier`, `instructions` and `styleGuide`. Poll the job with `GET /v1/jobs/:id/status`.

- The job's `output_data` carries the show notes (`text`), the chapter list (`json`), the plan as Edit Plan made it (`plan`) and the transcript (`transcript`). A failed run keeps what completed and names the failed step in `failedStep`.
- An `Idempotency-Key` header makes a retry of the same request answer with the same `jobId` and `"deduped": true`, and start nothing.
- `POST /v1/episode-chapters/estimate` takes the same body and answers `{ data: { totalCredits, stepsCredits, feeCredits, durationSec } }`, without starting anything.
- `POST /v1/episode-chapters/continue` with `{ jobId, "mode": "from-failed" }` runs what a failed run did not complete. A run whose every step finished answers `409 continuation_not_failed`. Chapters renders nothing, so `"mode": "render-final"` answers `render_final_not_preview`.

The SDK (`client.edit.episodeChapters`, `client.edit.estimateEpisodeChapters`, `client.edit.continueUseCase`), the CLI (`nodaro edit episode-chapters`, with `--estimate` for a quote, and `nodaro edit continue-use-case`) and the MCP tools `make_chapters`, `estimate_use_case` and `continue_use_case` call the same routes. See [Run a single node](https://nodaro.ai/docs/developers/api/nodes), [Editing in the SDK](https://nodaro.ai/docs/developers/sdk/editing) and the [MCP analysis and EDL tools](https://nodaro.ai/docs/mcp/tools/analysis-and-edl).

## Frequently asked questions

### What does the Chapters node do?

The Chapters node takes one podcast or interview recording and returns its chapters, each with a title and a start time. It transcribes the recording, then plans the chapters. Nothing is rendered, so the result is text.

### What format are the show notes in?

The Chapters node writes one line per chapter, with the start time and the title, for example 0:00 Intro. The first chapter always starts at 0:00. Once a chapter starts at one hour or later, every line uses hours, as in 0:00:00 Intro.

### How much does the Chapters node cost?

The Chapters node charges its steps at their own rates, Transcribe and Edit Plan in Chapters mode, plus a small per-run fee. The node shows the full estimate, fee included, before you run.

### What happens when the plan finds no chapters?

The Chapters run fails with the message "The plan found no chapters in this recording." Its per-run fee is refunded, but the transcript and the plan are charged. Run the node again with other instructions or another recording.

### When should I use Edit Plan in Chapters mode instead?

Use Edit Plan in Chapters mode when you already have a transcript, or when you want the plan's own chapters object. The Chapters node is the one-step version that starts from the recording.
