API rokasgrāmata
Trīs vietnes pakalpojumi – transkripcija ar runātāju atpazīšanu, video dublēšana un teksta ieskaņošana – pieejami arī no jūsu programmām. Pieprasījums ar ieraksta saiti vai tekstu, atbilde ar rezultātu. Viens konts, viens kredītu atlikums.
Saturs
- Kā sākt
- Cena un ierobežojumi
- Adrese un autentifikācija
- Konts
- — GET /v1/account
- Transkripcija
- — POST /v1/transcriptions
- — GET /v1/transcriptions/{id}
- Video dublēšana
- — POST /v1/dubbings
- — GET /v1/dubbings/{id}
- Teksta ieskaņošana
- — POST /v1/speech
- — GET /v1/speech/{id}
- Kļūdas
- Piemēri
- Palīdzība
Kā sākt
- Reģistrējieties vai pierakstieties vietnē ausis.lv un apstipriniet e-pasta adresi.
- Iegādājieties kredītus (API izmanto tos pašus kredītus kā vietne).
- Lietotāja izvēlnē atveriet sadaļu „API“ un izveidojiet atslēgu. Atslēga tiek parādīta tikai vienu reizi – nokopējiet to uzreiz.
Cena un ierobežojumi
- Transkripcija – 1 kredīts par katru iesākto ieraksta minūti. Dublēšana – 10 kredīti par iesākto minūti. Teksta ieskaņošana – 2 kredīti par katriem iesāktiem 1000 rakstzīmēm. Bezmaksas minūšu vai rakstzīmju caur API nav.
- Atlikums tiek pārbaudīts, veidojot uzdevumu; kredīti tiek norakstīti tikai tad, kad uzdevums ir pabeigts. Neizdevušies uzdevumi nemaksā.
- Viens ieraksts – līdz 3 stundām; faila izmērs nav ierobežots (der arī vairāku GB video). Failam jābūt pieejamam publiskā https:// adresē.
- Failiem līdz 200 MB ilgums un cena tiek noteikti uzreiz; lielākiem – apstrādes laikā, tāpēc atbildē
estimatedCreditsirnull. - Katrs API rezultāts parādās arī jūsu projektu sarakstā vietnē.
Adrese un autentifikācija
Bāzes adrese: https://ausis.lv/api/v1. Katram pieprasījumam pievienojiet galveni X-API-Key: ak_… (vai Authorization: Bearer ak_…).
Konts
GET /v1/account
Atgriež jūsu kredītu atlikumu.
{ "credits": 120, "creditsPerMinute": 1 }
Transkripcija
POST /v1/transcriptions
Izveido transkripcijas uzdevumu. Ieraksts tiek lejupielādēts no norādītās adreses, izmērīts ilgums, pārbaudīts atlikums. Ieraksts tiek transkribēts šīs vietnes valodā.
{
"audioUrl": "https://example.com/recordings/call.mp3",
"fileName": "call.mp3",
"webhookUrl": "https://example.com/hooks/transcripts"
}
| Lauks | Obligāts | Apraksts |
|---|---|---|
audioUrl | jā | Publiska https:// audio vai video faila adrese. |
fileName | nē | Nosaukums projektu sarakstā. Noklusējums – adreses pēdējā daļa. |
webhookUrl | nē | Publiska https:// adrese, uz kuru tiks nosūtīts rezultāts, kad uzdevums beidzas (tāds pats JSON kā GET). Viens mēģinājums, 10 s gaidīšana. |
Atbilde 202 Accepted:
{
"id": "k3FgT9bQ2w",
"status": "queued",
"languageCode": "lv-LV",
"fileName": "call.mp3",
"durationSeconds": 1532,
"estimatedCredits": 26,
"pollUrl": "/v1/transcriptions/k3FgT9bQ2w"
}
GET /v1/transcriptions/{id}
Statuss vai, kad pabeigts, visa transkripcija. Statusi: queued, processing, completed, failed.
Kamēr apstrādā:
{ "id": "k3FgT9bQ2w", "status": "processing", "progress": 40, "languageCode": "lv-LV", "fileName": "call.mp3", "durationSeconds": 1532 }
Kad pabeigts (?format=json, noklusējums):
{
"id": "k3FgT9bQ2w",
"status": "completed",
"creditsCharged": 26,
"speakers": ["SPEAKER_00", "SPEAKER_01"],
"segments": [
{ "speaker": "SPEAKER_00", "start": 0.0, "end": 4.2, "text": "…" },
{ "speaker": "SPEAKER_01", "start": 4.2, "end": 7.9, "text": "…" }
],
"text": "…"
}
start un end – sekundes. ?format=txt atgriež vienkāršu tekstu ([MM:SS] SPEAKER_00: teksts), ?format=srt – subtitrus SubRip formātā.
Video dublēšana
POST /v1/dubbings
Izveido dublēšanas uzdevumu: ieraksts tiek transkribēts, iztulkots un ieskaņots izvēlētajā valodā, mūzika un efekti saglabājas. Ieraksta saite un izmēra noteikumi – tādi paši kā transkripcijai.
{
"audioUrl": "https://example.com/recordings/talk.mp4",
"targetLanguage": "en",
"sourceLanguage": "auto",
"keepBackground": true,
"originalVoices": false,
"fileName": "talk.mp4",
"webhookUrl": "https://example.com/hooks/dubbing"
}
| Lauks | Obligāts | Apraksts |
|---|---|---|
audioUrl | jā | Publiska https:// audio vai video faila adrese. |
targetLanguage | jā | Dublējuma valoda (divu burtu kods): lt, lv, pl, et, sr, hu, sk, bg, en, de, fr, es, it, pt, nl, sv, da, nb, fi, cs, ro, uk, ru, tr. |
sourceLanguage | nē | Oriģināla valoda (divu burtu kods) vai auto (noklusējums). |
keepBackground | nē | Saglabāt mūziku un fonu (noklusējums true); false – tikai balss. |
originalVoices | nē | Dublētās balsis līdzinās oriģināla runātājiem (noklusējums false). |
fileName | nē | Nosaukums projektu sarakstā. Noklusējums – adreses pēdējā daļa. |
webhookUrl | nē | Publiska https:// adrese, uz kuru tiks nosūtīts rezultāts, kad uzdevums beidzas (tāds pats JSON kā GET). Viens mēģinājums, 10 s gaidīšana. |
Atbilde 202 Accepted:
{ "id": "p8Dk2Qa1Lm", "kind": "dubbing", "status": "queued", "fileName": "talk.mp4", "durationSeconds": 184, "estimatedCredits": 40, "targetLanguage": "en", "sourceLanguage": "auto", "pollUrl": "/v1/dubbings/p8Dk2Qa1Lm" }
GET /v1/dubbings/{id}
Kad pabeigts, downloadUrl – dublētais video (vai audio fails, ja tika augšupielādēts audio); outputKind – video vai audio.
{ "id": "p8Dk2Qa1Lm", "kind": "dubbing", "status": "completed", "targetLanguage": "en", "durationSeconds": 184, "creditsCharged": 40, "downloadUrl": "https://…/dubbed.mp4", "outputKind": "video", "segments": 42, "flaggedSegments": 0 }
Teksta ieskaņošana
POST /v1/speech
Ieskaņo tekstu ar dabisku balsi un atgriež MP3. Līdz 2 000 000 rakstzīmēm; gari teksti tiek ieskaņoti pa daļām un apvienoti. Teksta valoda tiek noteikta automātiski.
{ "text": "…", "voice": "female", "fileName": "intro", "webhookUrl": "https://example.com/hooks/speech" }
| Lauks | Obligāts | Apraksts |
|---|---|---|
text | jā | Ieskaņojamais teksts (1–2 000 000 rakstzīmes). |
voice | nē | female (noklusējums) vai male. |
fileName | nē | Nosaukums projektu sarakstā. Noklusējums – adreses pēdējā daļa. |
webhookUrl | nē | Publiska https:// adrese, uz kuru tiks nosūtīts rezultāts, kad uzdevums beidzas (tāds pats JSON kā GET). Viens mēģinājums, 10 s gaidīšana. |
Atbilde 202 Accepted:
{ "id": "s4Hn7Rt9Wq", "kind": "speech", "status": "queued", "characters": 1840, "voice": "female", "estimatedCredits": 4, "pollUrl": "/v1/speech/s4Hn7Rt9Wq" }
GET /v1/speech/{id}
Kad pabeigts, downloadUrl – MP3 fails; durationSeconds – ieraksta ilgums, characters – ieskaņoto rakstzīmju skaits.
{ "id": "s4Hn7Rt9Wq", "kind": "speech", "status": "completed", "characters": 1840, "durationSeconds": 131.4, "creditsCharged": 4, "downloadUrl": "https://…/full.mp3" }
Kļūdas
| Kods | Nozīme |
|---|---|
missing_api_key | Nav atslēgas galvenes (401). |
invalid_api_key | Atslēga nav atrasta vai ir nepareiza (401). |
api_key_revoked | Atslēga dzēsta (403). |
invalid_audio_url | Adrese nav https:// vai nav sasniedzama (400). |
unsupported_media | Failā nav atrasts audio (400). |
max_duration_exceeded | Ieraksts garāks par 3 h (400). |
insufficient_credits | Nepietiek kredītu (402). Atbildē: required, available, balance. |
not_found | Uzdevums nav atrasts vai pieder citam kontam (404). |
invalid_target_language | Trūkst vai netiek atbalstīta dublējuma valoda (400). |
invalid_source_language | Nepareiza oriģināla valoda (400). |
invalid_text | Trūkst teksta vai tas pārsniedz 2 000 000 rakstzīmes (400). |
invalid_voice | Balsij jābūt female vai male (400). |
Piemēri
BASE=https://ausis.lv/api/v1
KEY=ak_...
curl -s $BASE/account -H "X-API-Key: $KEY"
curl -s -X POST $BASE/transcriptions -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"audioUrl":"https://example.com/call.mp3"}'
curl -s $BASE/transcriptions/JOB_ID -H "X-API-Key: $KEY"
curl -s "$BASE/transcriptions/JOB_ID?format=srt" -H "X-API-Key: $KEY" -o call.srt
Pārbaudiet statusu ik pēc 10–30 s, līdz status kļūst completed vai failed.
import requests, time
BASE = "https://ausis.lv/api/v1"
H = {"X-API-Key": "ak_..."}
job = requests.post(f"{BASE}/transcriptions", headers=H,
json={"audioUrl": "https://example.com/call.mp3"}).json()
while True:
r = requests.get(f"{BASE}/transcriptions/{job['id']}", headers=H).json()
if r["status"] in ("completed", "failed"):
break
time.sleep(15)
print(r.get("text") or r.get("error"))
Palīdzība
Jautājumi – palidziba@ausis.lv.