GASTON REST API
GASTON poskytuje jednoduché REST API, ktoré vám umožňuje prepojiť vaše aplikácie a webové stránky s našimi službami a prepisovať video a audio súbory.
Prepis súborov je asynchrónny. Po nahraní súboru do nášho API obdržíte
ID,
ktoré je spracovávané sekvenčne.
Zvuková stopa sa extrahuje, vygeneruje sa spektrogram, deteguje sa jazyk a vykoná sa prepis.
Aktuálny stav súboru, ako aj získanie prepisu a dodatočných informácií, je dostupné prostredníctvom endpointu
/media.
Všetky nahrané súbory sú uložené v knižnici médií,
rovnako ako keby boli pridané cez webovú aplikáciu.
Autentifikácia
API kľúč musí byť súčasťou HTTP hlavičky pri každej požiadavke. Po prihlásení do vašich nastavení si vygenerujte API kľúč, ktorý sa používa na autorizáciu požiadaviek na naše REST API.
curl -X 'GET' \ 'https://api.gaston.live/user/me' \ -H 'accept: application/json' \ -H 'token: gapi-1234567890'
Svoj API kľúč môžete kedykoľvek znovu vygenerovať vo vašich API nastaveniach.
Oficiálny Python klient
Na PyPI je dostupný malý, typovaný Python klient. Nainštalujte ho príkazom pip install gaston
(Python 3.10+). Token môžete zadať priamo alebo načítať z .env premennej
GASTON_API_TOKEN.
Ukážky kódu pri jednotlivých endpointoch nižšie používajú tohto klienta.
pip install gaston
from gaston import GastonClient # Token odovzdaný priamo, alebo načítaný z GASTON_API_TOKEN ak je vynechaný client = GastonClient(token="gapi-...") # Kto som + zostávajúca kvóta me = client.me() print(me.email, "files left:", me.usage.files_left)
Popis jednotlivých endpointov
Kompletná technická špecifikácia vo formáte OpenAPI 3.1 je dostupná tu. Nižšie je uvedený zjednodušený popis endpointov.
/user/me
Získa základné informácie o autentifikovanom používateľovi vrátane detailov o využívaní služby, ako je počet zostávajúcich API súborov dostupných v rámci aktuálnej kvóty.
me = client.me() print(me.email, "files left:", me.usage.files_left)
/media/list
Vypíše spracované súbory uložené v knižnici médií. Odpoveď obsahuje iba súhrnné informácie a nezahŕňa celý text prepisu.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
dir_id |
voliteľný | ID priečinka, ktorý chcete zobraziť. |
page |
voliteľný | Číslo stránky na zobrazenie. Výsledky sú stránkované po 50 záznamoch. |
/media
Vráti kompletné informácie o súbore vrátane prepisu, časových značiek na úrovni slov a dostupných prekladov.
Verziu súboru môžete filtrovať zadaním parametra lang v požiadavke.
Ak je zadané lang=en a existuje anglický preklad,
bude vrátený anglický prepis.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
lang |
voliteľný | Kód jazyka na filtrovanie vrátanej verzie prepisu. |
media = client.get_media("me...", lang="en")
print(media.title, media.state)
for sentence in media.sentences:
print(sentence.id, sentence.text, sentence.speaker)
/media
Presunie mediálny súbor do vybraného priečinka.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
media_id |
povinný | ID mediálneho súboru na presun. |
dir_id |
povinný | ID cieľového priečinka. |
Ak chcete súbor presunúť do koreňového priečinka, nechajte parameter dir_id prázdny.
client.move_media(media_id="me...", dir_id=folder.id) # Presun späť do koreňového priečinka client.move_media(media_id="me...", dir_id=None)
/media/transcribe
Nahrá mediálny súbor na prepis. Maximálna veľkosť súboru je 2 GB.
Môžete určiť jazyk hovorený v nahrávke.
Ak nie je zadaný, jazyk bude automaticky detegovaný. Ak je známy, odporúča sa jeho zadanie pre rýchlejšie spracovanie.
Môžete tiež definovať názov súboru v knižnici médií. Ak nie je zadaný, použije sa pôvodný názov súboru.
Po úspešnej požiadavke endpoint odpovie detailmi o súbore vrátane jeho ID a aktuálneho stavu.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
lang |
voliteľný | Jazyk súboru. Nechajte prázdne pre automatickú detekciu. |
dir_id |
voliteľný | ID priečinka, kam sa má súbor po prepise uložiť. |
result = client.transcribe("interview.mp4", lang="en", title="My interview")
print(result.id, result.state)
# Veľké súbory môžu trvať minúty — upravte časový limit nahrávania pre dané volanie
client.transcribe("huge-recording.mp4", timeout=(10, None))
/media/transcribe-url
Podobne ako predchádzajúci endpoint, táto metóda prepíše video z poskytnutej URL adresy podporovanej streamovacej služby. Po odoslaní URL adresy videa sa súbor automaticky stiahne a spracuje.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
url |
povinný | URL adresa, kde sa mediálny súbor nachádza. |
lang |
voliteľný | Jazyk súboru. Nechajte prázdne pre automatickú detekciu. |
dir_id |
voliteľný | ID priečinka, kam sa má súbor po prepise uložiť. |
result = client.transcribe_url("https://youtu.be/dQw4w9WgXcQ", lang="en")
print(result.id, result.state)
/media/translate
Preloží už prepísaný súbor do zvoleného jazyka. Momentálne je podporovaných 42 cieľových jazykov.
Postup prekladu a dostupné jazykové verzie pre každý súbor sú uvedené v poli
available_languages,
kde kľúč predstavuje jazyk a hodnota predstavuje percento dokončenia.
Napríklad nasledujúci stav označuje, že súbor je úplne prepísaný v slovenčine (100 %), zatiaľ čo anglický preklad je stále vo fáze spracovania na 66 %:
available_languages: {
sk: 100,
en: 66
}
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
media_id |
povinný | ID mediálneho súboru na preklad. |
target_lang |
povinný | Kód cieľového jazyka (pozri zoznam podporovaných jazykov nižšie). |
client.translate("me...", target_lang="de")
Podporované cieľové jazyky
en
Angličtina
de
Nemčina
es
Španielčina
pl
Poľština
hu
Maďarčina
cs
Čeština
sk
Slovenčina
uk
Ukrajinčina
bg
Bulharčina
hr
Chorvátčina
da
Dánčina
nl
Holandčina
et
Estónčina
fi
Fínčina
fr
Francúzština
el
Gréčtina
ur
Urdčina
it
Taliančina
lv
Lotyština
lt
Litovčina
mt
Maltčina
pt
Portugalčina
ro
Rumunčina
sl
Slovinčina
sv
Švédčina
zh
Čínština
ar
Arabčina
hi
Hindčina
ja
Japončina
id
Indonézština
is
Islandčina
he
Hebrejčina
kk
Kazaština
ko
Kórejčina
lb
Luxemburčina
mk
Macedónčina
tr
Turečtina
vi
Vietnamčina
bn
Bengálčina
be
Bieloruština
ka
Gruzínčina
fa
Perzština
/media/diarize
Spustí alebo reštartuje diarizáciu hovorcov pre mediálny súbor. Každá jazyková verzia má vlastnú segmentáciu hovorcov. Napríklad môžete mať diarizovanú anglickú verziu, zatiaľ čo španielska verzia zostane bez diarizácie.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
media_id |
povinný | ID mediálneho súboru na diarizáciu. |
lang |
povinný | Jazyková verzia na diarizáciu. |
speakers |
voliteľný | Počet hovorcov v súbore. Nechajte prázdne pre automatickú detekciu. |
# Vyžaduje dokončený preklad v danom jazyku
client.diarize("me...", lang="de", speakers=2)
/directory/tree
Rekurzívne vypíše celú štruktúru stromu priečinkov.
tree = client.directory_tree()
/directory
Vytvorí nový priečinok.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
title |
povinný | Názov nového priečinka. |
dir_id |
voliteľný | Rodičovský priečinok, kde má byť nový priečinok vytvorený. Nechajte prázdne pre vytvorenie v koreňovom adresári. |
folder = client.create_directory("Podcasts")
print(folder.id, folder.title)
/directory
Premenuje priečinok alebo ho presunie do iného nadradeného priečinka.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
dir_id |
povinný | ID priečinka, ktorý má byť presunutý alebo premenovaný. |
title |
voliteľný | Zadajte nový názov na premenovanie priečinka. |
parent_id |
voliteľný | ID nového nadradeného priečinka pri presune priečinka. |
client.update_directory(folder.id, title="Podcast archive")
/directory
Odstráni priečinok.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
dir_id |
povinný | ID priečinka na odstránenie. |
Táto metóda odstráni iba samotný priečinok. NEodstráni súbory, ktoré sa v ňom nachádzajú. Všetky podpriečinky sú odstránené rekurzívne.
client.delete_directory(folder.id)
/sentence/search
Vyhľadávanie viet vo vašich prepisoch.
Parametre
| Parameter | Povinný | Popis |
|---|---|---|
query |
povinný | Vyhľadávací dopyt. Podporuje operátory "OR", "AND" a zástupný znak (*). |
_from |
voliteľný | Index prvého záznamu na vrátenie. |
_max |
voliteľný | Maximálny počet vrátených záznamov. |
dir_ids |
voliteľný | Zoznam ID priečinkov, v ktorých sa má vyhľadávať. Nechajte prázdne pre globálne vyhľadávanie. |
lang |
voliteľný | Jazyk viet, v ktorom sa má vyhľadávať. |
results = client.search('(invoice OR receipt) AND "due date" NOT draft', max_=20)
print("total matches:", results.total)
for hit in results:
sentence = hit["_sentence"]
print(sentence["media"]["title"], "|", hit["_highlight"]["body"])
# Filtrovanie podľa priečinka a jazyka, so stránkovaním výsledkov
page2 = client.search("budget", from_=50, max_=50, dir_ids=[42, 43], lang="en")
Cenník
Samotná platforma Gaston nemá žiadne obmedzenia na prepis súborov. Môžete prepisovať, koľko potrebujete. Programový prístup cez API je však iný prípad: každá API požiadavka spúšťa prepis, preklad a vyhľadávanie na našej infraštruktúre, takže aby bola služba udržateľná, nemôže byť logicky neobmedzená za jednu paušálnu cenu.
Z tohto dôvodu sa používanie API účtuje za spracovaný súbor. Cena je 25 € za každých 100 súborov.
Za týmto spoplatnením je iba samotný prepis. Vo chvíli, keď je súbor v systéme, môžete s ním robiť, čo chcete. Môžete ho preložiť do ktoréhokoľvek podporovaného jazyka, spustiť diarizáciu, vyhľadávať, exportovať a organizovať do priečinkov bez akýchkoľvek ďalších poplatkov. Zaplatíte raz za prepis súboru a všetko, čo s ním robíte potom, je zadarmo.
Táto paušálna cena za súbor predpokladá súbory primeranej dĺžky. Kvôli udržateľnosti služby si vyhradzujeme právo upraviť cenu pri extrémnom alebo automatizovanom hromadnom používaní. Pred akoukoľvek zmenou, ktorá by sa vás týkala, vás vždy budeme kontaktovať.
Spracovanie a priepustnosť
Prepis beží na zdieľanom GPU klasteri so vstavanou ochranou proti zahlteniu. Ak naraz odošlete veľkú dávku súborov, nezablokuje to ostatných zákazníkov. Vaše súbory sa spracúvajú priebežne na pozadí, takže veľká dávka môže jednoducho trvať o niečo dlhšie.
Potrebujete garantovanú priepustnosť? Získajte vyhradenú GPU
Pre objemné alebo časovo kritické úlohy ponúkame vyhradenú GPU rezervovanú výhradne pre váš účet. Je vždy pripravená spracovať vaše súbory okamžite bez ohľadu na celkové zaťaženie systému, takže nikdy nečakáte v zdieľanej fronte.
Pri štandardnej sadzbe 0,25 € za súbor sa vyhradená GPU vyplatí približne od 750 súborov mesačne. Nad túto hranicu spracujete neobmedzené množstvo súborov s garantovanou priepustnosťou za paušálnu mesačnú cenu.
Pre nastavenie nás kontaktujte na contact@streams.guru.
Partnerské ceny
Ak váš projekt nejakým spôsobom propaguje naše služby, môžete mať nárok na partnerské ceny, ktoré sú ešte výhodnejšie než sadzby uvedené vyššie. Partnerom myslíme zákaznícky projekt, ktorý pomáha zviditeľniť Gaston, napríklad tým, že ho spomína alebo odporúča svojmu publiku. Partnerské ceny sú vždy individuálna dohoda a závisia od toho, nakoľko je váš projekt pre nás relevantný. Ak si myslíte, že by ste mohli do tohto popisu zapadnúť, ozvite sa na contact@streams.guru a detaily doladíme spoločne.
Záver
Pre technickú podporu nás môžete kedykoľvek kontaktovať na contact@streams.guru. Neustále rozširujeme naše endpointy a pridávame nové funkcie.
GASTON REST API — kompletná OpenAPI špecifikácia →