# 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}'



Erstellen Sie ein Glossar für jedes Sprachpaar, speichern Sie benutzerdefinierte Stimmen für wiederkehrende Sprecher und wählen Sie den regionalen Dialekt für jeden Markt aus, in dem Sie veröffentlichen.
Laden Sie das Quellvideo einmal hoch und erstellen Sie dann für jede Zielregion ein Projekt mit Ihrem Glossar oder einer aus einer SRT-Datei importierten, genehmigten Übersetzung.
Lesen Sie den übersetzten Text im direkten Vergleich, bearbeiten Sie von Prüfern markierte Stellen, synchronisieren Sie geänderte Segmente neu und laden Sie das lokalisierte Video sowie die Untertitel herunter.
# 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 und es-es gleichermaßen dient. Das Projekt speichert glossary_version, sodass spätere Änderungen bereits fertiggestellte Arbeit nicht unbemerkt verändern.Eine Video-Lokalisierungs-API verwandelt ein Ausgangsvideo durch Automatisierung in Ihrem eigenen Code in verschiedene Versionen für andere Märkte: übersetzte und vertonte Sprache, Untertitel, einheitliche Fachbegriffe und optionales Lipsync. Mit Rask ist jede Marktversion ein Projekt, das Sie über eine einzige REST-API erstellen, überprüfen und herunterladen.
Die Übersetzung ändert die Wörter. Die Lokalisierung bereitet dasselbe Video für einen bestimmten Markt vor: die regionale Sprachvariante, Markennamen, die einheitlich bleiben, die Sprecherstimmen, Untertitel und einen Überprüfungsschritt vor der Veröffentlichung. Die Rask-API unterstützt all dies in einem einzigen Arbeitsablauf.
Ja. Erstellen Sie für jedes Zielgebiet ein Projekt, wie etwa es-mx für Mexiko und es-es für Spanien, und verwenden Sie ein deutsches Glossar für einheitliche Markennamen wieder. Überprüfen Sie den Wortlaut für jeden Markt. Wenn ein regionaler Akzent wichtig ist, wählen Sie eine verfügbare KI-Stimmenvoreinstellung für dieses Gebiet; das Klonen von Stimmen verwendet das Basissprachmodell und garantiert keinen bestimmten regionalen Akzent.
Erstellen Sie für jedes Sprachpaar ein Glossar und fügen Sie es bei der Erstellung des Projekts hinzu. Jedes Projekt speichert die verwendete Glossarversion, sodass die spätere Bearbeitung eines Glossars niemals bereits abgeschlossene Arbeit verändert. Einem Projekt kann nach seiner Erstellung kein Glossar mehr hinzugefügt werden.
Ja, bei Tarifen mit SRT-Upload. Importieren Sie Ihre genehmigte Zielsprachen-SRT bei der Erstellung des Projekts; eine separate Ausgangssprachen-SRT ist optional. Sie können auch beide Dateien bereitstellen, wenn Sie sie zur Hand haben. Rask verwendet Ihre genehmigte Übersetzung für das Synchronisieren.
Kulturelle Relevanz erfordert menschliches Urteilsvermögen. Die API stellt Prüfern jeden Abschnitt zur Verfügung, um Bezüge, Redewendungen und Beispiele vor der Veröffentlichung an den Markt anzupassen, und Rask kann menschliche Qualitätssicherung in den Arbeitsablauf integrieren, wenn Ihr Team nicht jedes Video überprüfen kann.
Die dokumentierten API-Endpunkte lokalisieren die Sprache und die Untertitel. Text, der Teil des Bildes ist, wie etwa Titel im Filmmaterial, bleibt so, wie er gefilmt wurde. Sprechen Sie mit unserem Team, wenn Text im Video Teil Ihres Lokalisierungs-Workflows ist.
Lokalisieren Sie in mehrere Sprachen aus über 135 Sprach- und Regionaloptionen, darunter mexikanisches und europäisches Spanisch, brasilianisches und europäisches Portugiesisch sowie kanadisches Französisch. Jedes Projekt erfordert ein Zielgebiet. Die vollständige Liste finden Sie in der API-Dokumentation, und unser Team bespricht gerne Optionen außerhalb davon.
Ja, in unterstützten Sprachen für das Klonen von Stimmen. Verwenden Sie Instant Voice Clone, um die Identität des Sprechers zu bewahren, oder einen gespeicherten Custom Voice Clone für einen wiederkehrenden Moderator. Das Klonen verwendet das Basissprachmodell, daher garantiert die Auswahl eines regionalen Gebiets nicht den Akzent dieser Region. Wählen Sie eine verfügbare KI-Stimmenvoreinstellung, wenn der regionale Akzent im Vordergrund steht.
Lipsync ist ein optionaler Schritt für Filmmaterial, bei dem eine echte Person vor der Kamera spricht. Führen Sie es nach der Überprüfung auf der lokalisierten Version aus. Jede vollständige Video-Lipsync-Generierung wird separat von der Synchronisation abgerechnet, einschließlich Generierungen nach späteren Bearbeitungen.
Die API-Nutzung wird pro Videominute für jede Marktversion abgerechnet, aus demselben Minutenkontingent wie die Rask-App. Zusätzliche Minuten kosten bei berechtigten Standardtarifen 3 $/Minute. Enterprise-Preise sind auf Ihre Vereinbarung zugeschnitten. Das erneute Synchronisieren nach der Überprüfung wird auf Basis der kombinierten Dauer der geänderten Abschnitte abgerechnet, mit einem Mindestbetrag von einer Minute pro Durchlauf, und Lipsync wird separat berechnet. Probieren Sie die Lokalisierung in der Rask-App mit einer kostenlosen Testversion aus, keine Kreditkarte erforderlich. Um die API zu testen, buchen Sie eine Demo mit unserem Team.
Ja. Bei wiederkehrendem Volumen unterstützt unser Team Sie dabei, Ihre aktuellen Prozesse abzubilden, Prüf- und Freigabeschritte zu definieren, Terminologien und Stimmen einzurichten, Rask an Ihr CMS oder LMS anzubinden und bei Bedarf menschliche Qualitätssicherung hinzuzufügen.
Der API-Zugriff ist in den Tarifen Creator Pro, Business und Enterprise verfügbar, wobei der genaue Funktionsumfang von Ihrem Tarif abhängt. Sie erstellen Ihre Client-ID sowie Ihr Secret direkt in der App und können sofort loslegen. Enterprise-Bedingungen, Staffelpreise und spezielle Sprachanpassungen stimmen wir gerne persönlich mit Ihnen ab.