# 1. one Spanish glossary - it applies to every Spanish regional variant
curl -X POST https://api.rask.ai/v2/glossaries \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"name": "Brand terms", "src_lang": "en", "dst_lang": "es",
"entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}'
# 2. a localized version per market, both with the same glossary
for lang in es-mx es-es; do
curl -X POST https://api.rask.ai/v2/projects \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\", \"glossary_id\": \"$GLOSSARY_ID\"}"
done# Review: source and translated text, segment by segment
curl -s https://api.rask.ai/v2/projects/$ID/transcription \
-H "Authorization: Bearer $TOKEN" \
| jq '.segments[] | {speaker, src: .src.text, dst: .dst.text}'



Vytvořte slovník pro každou jazykovou dvojici, uložte si vlastní hlasy pro stálé moderátory a vyberte regionální verzi pro každý trh, na kterém publikujete.
Nahrávejte zdrojové video pouze jednou a poté vytvořte projekt pro každou cílovou lokalitu s vaším slovníkem nebo s importovaným schváleným překladem ve formátu SRT.
Přečtěte si přeložený text vedle sebe, upravte to, co recenzenti označili, předabujte změněné části a stáhněte si lokalizované video a titulky.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas
MARKETS = ["es-mx", "es-es"]
async def localize(client, video_id, locale, glossary_id):
job = await client.create_project(data=schemas.ProjectCreate(
video_id=video_id, dst_lang=locale, glossary_id=glossary_id))
while job.status is not enums.ProjectStatus.MERGING_DONE:
await asyncio.sleep(10)
job = await client.get_project(project_id=job.id)
return job
async def main():
client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
glossary = await client.create_glossary(data=schemas.GlossaryCreate(
name="Brand terms", src_lang="en", dst_lang="es",
entries={"Rask Studio": "Rask Studio", "onboarding": "incorporación"}))
jobs = await asyncio.gather(*(localize(client, VIDEO_ID, m, glossary.id) for m in MARKETS))
for job in jobs: # review before publishing
script = await client.get_project_transcription(project_id=job.id)
for seg in script.segments[:3]:
print(job.dst_lang, seg.speaker, seg.src.text, "->", seg.dst.text)
asyncio.run(main())import time, requests
AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API = "https://api.rask.ai"
token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}
glossary = requests.post(f"{API}/v2/glossaries", headers=h, json={
"name": "Brand terms", "src_lang": "en", "dst_lang": "es",
"entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}).json()
ids = [requests.post(f"{API}/v2/projects", headers=h, json={
"video_id": VIDEO_ID, "dst_lang": locale, "glossary_id": glossary["id"]}).json()["id"]
for locale in ["es-mx", "es-es"]]
for pid in ids:
while requests.get(f"{API}/v2/projects/{pid}", headers=h).json()["status"] != "merging_done":
time.sleep(10)
script = requests.get(f"{API}/v2/projects/{pid}/transcription", headers=h).json()
for seg in script["segments"][:3]:
print(seg["src"]["text"], "->", seg["dst"]["text"])// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
method: 'POST',
headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());
const glossary = await call('POST', '/v2/glossaries', {
name: 'Brand terms', src_lang: 'en', dst_lang: 'es',
entries: { 'Rask Studio': 'Rask Studio', onboarding: 'incorporación' },
});
for (const dst_lang of ['es-mx', 'es-es']) {
let p = await call('POST', '/v2/projects', { video_id: VIDEO_ID, dst_lang, glossary_id: glossary.id });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }
const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
segments.slice(0, 3).forEach((s) => console.log(dst_lang, s.src.text, '->', s.dst.text));
}# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
-u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)
# 2. import the translation your reviewers approved (source and translated .srt)
TRANSCRIPT_ID=$(curl -s -X POST "https://api.rask.ai/v2/transcriptions/srt?src_lang=en&dst_lang=es-mx" \
-H "Authorization: Bearer $TOKEN" \
-F "src=@source_en.srt" -F "dst=@approved_es-mx.srt" | jq -r .id)
# 3. create the localized version from it - Rask voices the approved script
curl -s -X POST https://api.rask.ai/v2/projects \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}"<?php
use GuzzleHttp\Client;
$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];
$glossary = $json($http->post('/v2/glossaries', ['headers' => $h, 'json' => [
'name' => 'Brand terms', 'src_lang' => 'en', 'dst_lang' => 'es',
'entries' => ['Rask Studio' => 'Rask Studio', 'onboarding' => 'incorporación'],
]]));
foreach (['es-mx', 'es-es'] as $locale) {
$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
'video_id' => $videoId, 'dst_lang' => $locale, 'glossary_id' => $glossary['id']]]));
while ($p['status'] !== 'merging_done') {
sleep(10);
$p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}
$script = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
echo $locale, ': ', $script['segments'][0]['dst']['text'], PHP_EOL;
} 0s created
11s transcription_started
87s translation_started
99s voiceover_started
154s merging_started
165s merging_done

es-mx a es-es stejně tak. Projekt uchovává záznamy glossary_version, takže pozdější úpravy nikdy nepozorovaně nezmění hotovou práci.API pro lokalizaci videí převádí jedno zdrojové video na různé verze pro jiné trhy pomocí automatizace přímo ve vašem kódu: přeloženou a namluvenou řeč, titulky, konzistentní terminologii a volitelnou synchronizaci rtů. S platformou Rask je každá verze pro daný trh samostatným projektem, který vytvoříte, zkontrolujete a stáhnete prostřednictvím jednoho REST API.
Překlad mění slova. Lokalizace připravuje stejné video pro konkrétní trh: regionální jazykovou variantu, jednotné názvy značek, hlasy mluvčích, titulky a krok kontroly před zveřejněním. Rask API podporuje všechny tyto kroky v rámci jednoho pracovního postupu.
Ano. Vytvořte projekt pro každou cílovou lokalizaci (např. es-mx pro Mexiko a es-es pro Španělsko) a pro zachování konzistentních názvů značek použijte jeden španělský slovník. Zkontrolujte znění pro každý trh. Pokud záleží na regionálním přízvuku, vyberte pro danou lokalizaci dostupnou předvolbu hlasu AI; klonování hlasu využívá základní jazykový model a nezaručuje specifický regionální přízvuk.
Vytvořte slovník pro každý jazykový pár a přiřaďte jej při vytváření projektu. Každý projekt zaznamenává verzi slovníku, kterou použil, takže pozdější úprava slovníku již nikdy neovlivní hotovou práci. K již vytvořenému projektu nelze slovník přidat.
Ano, u tarifů s možností nahrát soubory SRT. Při vytváření projektu importujte svůj schválený soubor SRT v cílovém jazyce; samostatný soubor SRT ve zdrojovém jazyce je volitelný. Můžete také poskytnout oba soubory, pokud je máte k dispozici. Rask používá váš schválený překlad pro dabing.
Kulturní relevance vyžaduje lidský úsudek. API poskytuje kontrolorům každý segment, aby mohli před zveřejněním přizpůsobit odkazy, idiomy a příklady danému trhu, a Rask může do pracovního postupu přidat lidskou kontrolu kvality, pokud váš tým nemůže zkontrolovat každé video.
Dokumentovaná rozhraní API lokalizují mluvené slovo a titulky. Text, který je součástí obrazu (například titulky v záběrech), zůstává tak, jak byl natočen. Pokud je text v obraze součástí vašeho lokalizačního procesu, obraťte se na náš tým.
Lokalizujte do mnoha jazyků z více než 135 jazykových a regionálních možností, včetně mexické a evropské španělštiny, brazilské a evropské portugalštiny či kanadské francouzštiny. Každý projekt využívá jednu cílovou lokalizaci. Úplný seznam naleznete v dokumentaci API a náš tým s vámi rád prodiskutuje i další možnosti mimo něj.
Ano, v podporovaných jazycích pro klonování hlasu. Pomocí funkce Okamžité klonování hlasu zachováte identitu mluvčího nebo můžete pro stálého prezentujícího využít uložený Vlastní klon hlasu. Klonování využívá základní jazykový model, takže výběr regionální lokality nezaručuje tamní přízvuk. Pokud je regionální přízvuk prioritou, zvolte dostupnou předvolbu hlasu AI.
Synchronizace rtů je volitelný krok pro videa, kde na kameru mluví reálná osoba. Spustí se na přeložené verzi až po kontrole. Každé vytvoření synchronizace pro celé video se účtuje zvlášť od dabingu, a to včetně úprav po pozdějších změnách.
Použití API se účtuje za minutu videa pro každou jazykovou verzi ze stejného balíčku minut jako v aplikaci Rask. Další minuty stojí 3 $ za minutu u vybraných standardních tarifů. Ceny pro firmy se odvíjejí od individuální dohody. Opakovaný dabing po kontrole se účtuje podle celkové délky změněných částí s minimem jedné minuty na spuštění a synchronizace rtů se účtuje zvlášť. Vyzkoušejte lokalizaci v aplikaci Rask zdarma a bez zadání karty. Pro vyzkoušení API si domluvte demo s naším týmem.
Ano. V případě pravidelného objemu videí vám náš tým pomůže nastavit stávající postup, definovat fáze kontroly a schvalování, nastavit terminologii a hlasy, propojit Rask s vaším systémem a případně přidat i lidskou kontrolu kvality.
Přístup k API je k dispozici v tarifech Creator Pro, Business a Enterprise, přičemž možnosti závisí na vašem tarifu. ID klienta a tajný klíč si vygenerujete přímo v aplikaci a můžete začít hned volat. Firemní podmínky, velkoobchodní ceny a vlastní jazyky řešíme individuálně přes náš tým.