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



Her dil çifti için bir sözlük oluşturun, düzenli olarak görünen sunucular için özel sesleri kaydedin ve içerik yayınladığınız her pazar için bölge seçin.
Kaynak videoyu bir kez yükleyin, ardından sözlüğünüzle veya SRT'den içe aktarılan onaylanmış bir çeviriyle her hedef pazar için bir proje oluşturun.
Çevrilen metni yan yana okuyun, inceleyenlerin işaretlediği yerleri düzenleyin, değiştirilen bölümleri yeniden seslendirin ve yerelleştirilmiş video ile altyazıları indirin.
# 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 ve es-es benzer şekilde hizmet eder. Proje kayıtları sözlük_sürümü, böylece daha sonra yapılan düzenlemeler tamamlanan çalışmayı habersiz değiştirmez.Bir video yerelleştirme API'si, kendi kodunuz içindeki otomasyon sayesinde tek bir kaynak videoyu diğer pazarlar için çevrilmiş ve seslendirilmiş konuşmalar, altyazılar, tutarlı terminoloji ve isteğe bağlı dudak senkronizasyonu içeren farklı versiyonlara dönüştürür. Rask ile her pazar versiyonu, tek bir REST API üzerinden oluşturduğunuz, incelediğiniz ve indirdiğiniz bir projedir.
Çeviri kelimeleri değiştirir. Yerelleştirme ise aynı videoyu belirli bir pazar için hazırlar: Bölgesel dil varyantı, tutarlı kalan marka terimleri, konuşmacıların sesleri, altyazılar ve yayınlamadan önceki bir inceleme adımı. Rask API, tüm bunları tek bir iş akışında destekler.
Evet. Meksika için es-mx ve İspanya için es-es gibi her hedef bölge için bir proje oluşturun ve tutarlı marka terimleri için tek bir İspanyolca sözlük yeniden kullanın. Her pazar için ifadeyi inceleyin. Bölgesel bir aksan önemli olduğunda, o bölge için mevcut bir yapay zeka ses ön ayarını seçin; ses klonlama temel dil modelini kullanır ve belirli bir bölgesel aksanı garanti etmez.
Her dil çifti için bir sözlük oluşturun ve projeyi oluştururken ekleyin. Her proje, kullandığı sözlük sürümünü kaydeder, bu nedenle daha sonra bir sözlüğü düzenlemek asla bitmiş çalışmayı değiştirmez. Oluşturulduktan sonra bir projeye sözlük eklenemez.
Evet, SRT yüklemesini destekleyen planlarda. Projeyi oluştururken onaylanmış hedef dil SRT'nizi içe aktarın; ayrı bir kaynak dil SRT'si isteğe bağlıdır. Her iki dosyanız olduğunda bunları da sağlayabilirsiniz. Rask, dublaj için onaylanmış çevirinizi kullanır.
Kültürel uygunluk insan muhakemesi gerektirir. API, yayınlamadan önce incelemecilere referansları, deyimleri ve örnekleri pazar için uyarlamaları amacıyla her segmenti sunar ve ekibiniz her videoyu inceleyemediğinde Rask, iş akışına insan kalite kontrolü (QA) ekleyebilir.
Belgelenen API uç noktaları konuşmaları ve altyazıları yerelleştirir. Görüntüdeki başlıklar gibi resmin parçası olan metinler çekildiği gibi kalır. Ekrandaki metin yerelleştirme iş akışınızın bir parçasıysa ekibimizle görüşün.
Meksika ve Avrupa İspanyolcası, Brezilya ve Avrupa Portekizcesi ile Kanada Fransızcası dahil olmak üzere 135'ten fazla dil ve bölge seçeneğinden birden fazla dile yerelleştirin. Her proje bir hedef bölge alır. Tam liste API belgelerindedir ve ekibimiz bunun dışındaki seçenekleri görüşebilir.
Evet, desteklenen ses klonlama dillerinde. Konuşmacının kimliğini korumak için Anında Ses Klonlama'yı veya tekrar eden bir sunucu için kaydedilmiş Özel Ses Klonlama'yı kullanın. Klonlama temel dil modelini kullanır, bu nedenle bölgesel bir yerel ayar seçmek o bölgenin aksanını garanti etmez. Bölgesel aksan öncelikli olduğunda uygun bir yapay zeka ses ön ayarı seçin.
Dudak senkronizasyonu, gerçek bir kişinin kamerada konuştuğu görüntüler için isteğe bağlı bir adımdır. İncelemeden sonra yerelleştirilmiş sürüm üzerinde çalıştırın. Her tam video dudak senkronizasyonu oluşturma işlemi, daha sonraki düzenlemelerden sonraki oluşturmalar dahil olmak üzere dublajdan ayrı olarak faturalandırılır.
API kullanımı, Rask uygulamasıyla aynı dakika havuzundan her pazar sürümü için video dakikası başına faturalandırılır. Uygun standart planlarda ek dakikaların maliyeti 3$/dakikadır. Kurumsal fiyatlandırma anlaşmanıza göre uyarlanır. İncelemeden sonra yeniden dublaj, çalışma başına bir dakikalık minimum süreyle değiştirilen segmentlerin birleştirilmiş süresi üzerinden faturalandırılır ve dudak senkronizasyonu ayrı olarak ücretlendirilir. Kart gerektirmeyen ücretsiz deneme sürümüyle Rask uygulamasında yerelleştirmeyi deneyin. API'yi değerlendirmek için ekibimizden bir demo rezervasyonu yapın.
Evet. Düzenli ve yüksek hacimli işler için ekibimiz; mevcut sürecinizi planlamanıza, inceleme ve onay aşamalarını belirlemenize, terminoloji ve sesleri yapılandırmanıza, Rask'ı CMS veya LMS'nize bağlamanıza ve gerektiğinde insan denetimi (QA) eklemenize yardımcı olabilir.
API erişimi Creator Pro, Business ve Enterprise planlarında sunulur ve özellikler planınıza göre belirlenir. Uygulama üzerinden istemci kimliğinizi ve gizli anahtarınızı oluşturarak hemen kullanmaya başlayabilirsiniz. Kurumsal şartlar, hacim bazlı fiyatlandırma ve özel dil seçenekleri için ekibimizle iletişime geçebilirsiniz.