Цена и время озвучки
Точная цена глав до озвучки и когда будет готово.
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
}