Цена и время озвучки

Точная цена глав до озвучки и когда будет готово.

POST /books/{book_id}/quote · озвучка

Считает ровно то, что спишется: только новые куски звука, каждый по весу своего голоса; уже озвученное и уже прослушанное бесплатно. Ничего не ставит в очередь и не тратит.

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

Параметр Что это
book_id Id книги

Тело запроса

JSON, заголовок content-type: application/json.

Поле Тип Обязательно Что это
chapter_ids массив строк нет Какие главы; пусто — все главы книги (готовое не стоит ничего)

Что в ответе

Поле Что это
credits Сколько знаков спишется
chars Знаков текста в выбранных главах
new_chars Из них новых (не озвученных)
by Расчёт по весам голосов: [{weight, chars, credits}]
heard Уже оплачено прослушиванием строк
left / short Баланс / сколько не хватает
render_s Сколько займёт сама озвучка, секунд
wait_s / ready_s Ожидание в очереди / готово примерно через, секунд
others Сколько людей сейчас тоже озвучивают
curl -X POST "https://golosar-kniga.tech/api/v1/books/$BOOK_ID/quote" \
  -H "x-api-key: $KEY" \
  -H "content-type: application/json" \
  -d '{"chapter_ids": ["01a134d0-ddb7-72aa-b96c-967b596362fe", "01a134d0-ddc1-70fb-8b40-c2fe892e3bd1"]}'
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}/quote", headers=H, json={"chapter_ids": ["01a134d0-ddb7-72aa-b96c-967b596362fe", "01a134d0-ddc1-70fb-8b40-c2fe892e3bd1"]})
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}/quote`, { method: "POST", headers: H, body: JSON.stringify({"chapter_ids": ["01a134d0-ddb7-72aa-b96c-967b596362fe", "01a134d0-ddc1-70fb-8b40-c2fe892e3bd1"]}) });
if (!r.ok) throw new Error(await r.text());
console.log(await r.json());

json Ответ 200 { "chapters": 2, "chars": 164, "credits": 164.0, "new_units": 4, "cached_units": 0, "render_s": 19.4, "not_ready": 2, "new_chars": 164, "heard": 0.0, "by": [ { "weight": 1.0, "chars": 164, "credits": 164.0 } ], "others": 0, "wait_s": 0.0, "ready_s": 19.4, "unlimited": false, "left": 1834512.5, "short": 0.0 }