Собрать аудиокнигу
M4B с главами и обложкой или ZIP с MP3 по главам.
POST /books/{book_id}/export · озвучка
Бесплатно. Собираются озвученные главы. Это задача: дождитесь done (ход или
уведомление export.ready), потом возьмите ссылку в GET /books/{id}/exports.
В файл записываются название, автор, обложка и пометка «Озвучено с помощью синтеза речи».
Параметры пути
| Параметр | Что это |
|---|---|
book_id |
Id книги |
Тело запроса
JSON, заголовок content-type: application/json.
| Поле | Тип | Обязательно | Что это |
|---|---|---|---|
format |
строка | нет | m4b (по умолчанию) или zip |
Ошибки
| Код | Когда |
|---|---|
400 |
Нет ни одной озвученной главы |
curl -X POST "https://golosar-kniga.tech/api/v1/books/$BOOK_ID/export" \
-H "x-api-key: $KEY" \
-H "content-type: application/json" \
-d '{"format": "m4b"}'
import os, requests
API = "https://golosar-kniga.tech/api/v1"
H = {"x-api-key": os.environ["GOLOSAR_KEY"]}
book_id = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3"
r = requests.post(f"{API}/books/{book_id}/export", headers=H, json={"format": "m4b"})
r.raise_for_status()
print(r.json())
const API = "https://golosar-kniga.tech/api/v1";
const H = { "x-api-key": process.env.GOLOSAR_KEY, "content-type": "application/json" };
const bookId = "01a134d0-dd73-77be-aa8d-0944ffb2b5e3";
const r = await fetch(`${API}/books/${bookId}/export`, { method: "POST", headers: H, body: JSON.stringify({"format": "m4b"}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());
json Ответ 200
{
"job": {
"id": "01a134d0-e68a-70c7-8ae4-d73d6b08cb17",
"type": "export",
"status": "queued",
"book_id": "01a134d0-dd73-77be-aa8d-0944ffb2b5e3",
"created_at": "2026-10-13T10:31:08.157233+00:00",
"title": "Сборка ZIP: Вечер в саду · Версия 1",
"eta_s": 3.0
}
}