# Глава: строки и запись

Строки главы, кто их говорит, запись и где в ней какая строка.

`GET /chapters/{chapter_id}` · чтение

`segments` — строки главы в порядке текста: реплики героев (`speech`), текст автора (`narration`), мысли (`thought`).
`units` — как строки сольются в куски звука. `timeline` — где в готовой записи какой кусок (секунды `t0`–`t1`) и какие в нём строки.

## Параметры пути

| Параметр | Что это |
|---|---|
| `chapter_id` | Id главы |

## Что в ответе

| Поле | Что это |
|---|---|
| `chapter.audio_url` | MP3 главы (живёт час) |
| `chapter.status` | `draft`, `queued`, `rendering`, `ready`, `failed` |
| `segments[].character_id` | Кто говорит |
| `segments[].review` | `true` — программа не уверена, кто говорит |
| `segments[].emotion` | Эмоция строки или `null` — как у героя |
| `segments[].skip_audio` | Строка не озвучивается |
| `problems` | Что мешает озвучить главу |
| `timeline[]` | `t0`, `t1`, `speaker`, `segment_ids` |
| `estimate_credits` | Сколько знаков спишет озвучка главы сейчас |
| `job` | Последняя задача озвучки главы |

```bash
curl "https://golosar-kniga.tech/api/v1/chapters/$CHAPTER_ID" \
  -H "x-api-key: $KEY"
```

```python
import os, requests

API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
chapter_id = "01a134d0-ddb7-72aa-b96c-967b596362fe"

r = requests.get(f"{API}/chapters/{chapter_id}", headers=H)
r.raise_for_status()
print(r.json())
```

```javascript
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY };
const chapterId = "01a134d0-ddb7-72aa-b96c-967b596362fe";

const r = await fetch(`${API}/chapters/${chapterId}`, { headers: H });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());
```

```json Ответ 200
{
  "chapter": {
    "id": "01a134d0-ddb7-72aa-b96c-967b596362fe",
    "position": 0,
    "title": "Глава 1",
    "status": "ready",
    "chars": 108,
    "duration_s": 6.89,
    "rendered_at": "2026-10-13T10:31:07.399817+00:00",
    "audio_url": "https://golosar-kniga.tech/files/eyJrIjoi…",
    "text": "Вечер был тих, и только ветер шумел в саду.\n— Кто здесь? — с…",
    "book_id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3"
  },
  "segments": [
    {
      "id": "01a134d0-ddbf-73ed-9fa8-ecf3089fbbbf",
      "position": 0,
      "text": "Вечер был тих, и только ветер шумел в саду.",
      "kind": "narration",
      "block_id": 0,
      "paragraph_id": 0,
      "character_id": "01a134d0-dda0-7b5d-800a-17ac9f33d738",
      "skip_audio": false,
      "pause_ms": null,
      "confidence": 1.0,
      "review": false,
      "issue": "",
      "emotion": null,
      "speaker_source": "rules",
      "emotion_source": "rules",
      "stressed": null,
      "delivery": {},
      "note": null,
      "ai": null
    },
    {
      "id": "01a134d0-ddbf-7616-8ddc-f4b77800ae46",
      "position": 1,
      "text": "Кто здесь?",
      "kind": "speech",
      "block_id": 1,
      "paragraph_id": 1,
      "character_id": "01a134d0-ddae-7737-9ff4-0672f189eef8",
      "skip_audio": false,
      "pause_ms": null,
      "confidence": 0.99,
      "review": false,
      "issue": "указано в тексте («спросила»)",
      "emotion": null,
      "speaker_source": "rules",
      "emotion_source": "rules",
      "stressed": null,
      "delivery": {},
      "note": null,
      "ai": null
    }
  ],
  "units": [
    {
      "speaker": "01a134d0-dda0-7b5d-800a-17ac9f33d738",
      "emotion": null,
      "kind": "narration",
      "text": "Вечер был тих, и только ветер шумел в саду.",
      "prepared": "Ве́чер был тих, и то́лько ве́тер шуме́л в саду.",
      "segment_ids": [
        "01a134d0-ddbf-73ed-9fa8-ecf3089fbbbf"
      ]
    },
    {
      "speaker": "01a134d0-ddae-7737-9ff4-0672f189eef8",
      "emotion": null,
      "kind": "speech",
      "text": "Кто здесь?",
      "prepared": "Кто здесь?",
      "segment_ids": [
        "01a134d0-ddbf-7616-8ddc-f4b77800ae46"
      ]
    }
  ],
  "problems": [],
  "job": {
    "id": "01a134d0-e101-75f3-822a-7e5c7ba0f3f3",
    "type": "render",
    "job_type": "render",
    "status": "done",
    "done": 3,
    "total": 3,
    "reused": 0,
    "credits_used": 108.0,
    "error": null,
    "chapter_id": "01a134d0-ddb7-72aa-b96c-967b596362fe",
    "book_id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3",
    "created_at": "2026-10-13T10:31:06.695103+00:00",
    "started_at": "2026-10-13T10:31:06.784600+00:00",
    "finished_at": "2026-10-13T10:31:07.399828+00:00",
    "title": "Озвучка: Глава 1",
    "stage": "",
    "eta_s": 5.1,
    "bytes": null,
    "bytes_total": null,
    "cost_usd": null,
    "took_s": 0.6
  },
  "timeline": [
    {
      "t0": 0.0,
      "t1": 3.2,
      "key": "064fa7ee70cbb6fa…",
      "text": "Вечер был тих, и только ветер шумел в саду.",
      "sound": "studio",
      "speaker": "01a134d0-dda0-7b5d-800a-17ac9f33d738",
      "prepared": "Ве́чер был тих, и то́лько ве́тер шуме́л в саду.",
      "segment_ids": [
        "01a134d0-ddbf-73ed-9fa8-ecf3089fbbbf"
      ]
    },
    {
      "t0": 3.9,
      "t1": 4.62,
      "key": "75dcf866cab3be4d…",
      "text": "Кто здесь?",
      "sound": "studio",
      "speaker": "01a134d0-ddae-7737-9ff4-0672f189eef8",
      "prepared": "Кто здесь?",
      "segment_ids": [
        "01a134d0-ddbf-7616-8ddc-f4b77800ae46"
      ]
    }
  ],
  "estimate_credits": 69.0
}
```
