API pro překlad videí do 135+ jazyků

Nahrajte jedno video a získejte ho zpět v libovolném jazyce. REST API pro překlad videí automaticky vytvoří přepis, přeloží ho a odebabuje. Poté vám vrátí hotové video, soubory s titulky a text ke kontrole.
Více než 135 cílových jazyků
Titulky ve formátech .srt a .vtt
REST + Python SDK
one upload, every language
OAuth 2.0
# 1. exchange client credentials for a token (valid 1 hour)
curl -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials"

# 2. upload the video once - YouTube, Drive, S3, Vimeo or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. one project per target language - they run in parallel
for lang in es-mx de-de ja-jp pt-br; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\"}"
done
GET /v2/projects/{project_id}
polling, 10s
# Poll each project until merging_done, then collect the files.
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID \
    -H "Authorization: Bearer $TOKEN" \
    | jq '{status, translated_video, translation_srt_path}'
  sleep 10
done
Používáno týmy po celém světě
Funkce

Co všechno API zvládne v rámci jednoho projektu

Automaticky přepisujte, překládejte a dabujte svá videa pomocí jednoho API. Kontrolujte přeložený text, udržujte jednotnou terminologii pomocí slovníků a stahujte formáty, které vaše platforma potřebuje. Můžete si připlatit i za volitelnou synchronizaci rtů.

Překlad do 135+ jazyků

Pošlete video a cílový jazyk a přeložte obsah do libovolného podporovaného jazyka. Původní jazyk se detekuje automaticky.

Rozpoznání mluvčích a vlastní hlas pro každého

Mluvčí se automaticky rozdělí a každý z nich získá hlas v cílovém jazyce, takže rozhovory a diskuze budou znít přirozeně. Jakékoliv přiřazení můžete upravit.

Původní hlasy nebo AI hlasy

Použijte původní hlas každého mluvčího díky klonování hlasu, nebo využijte uložený vlastní hlas pro jednotný projev napříč videi. Obě možnosti jsou dostupné v podporovaných jazycích, pro ostatní slouží předvolby AI hlasů.

Synchronizace rtů

Zapněte synchronizaci rtů, aby pohyby úst odpovídaly přeložené řeči. Jedná se o doplňkovou funkci, která se účtuje samostatně. Nejprve proběhne detekce obličeje, takže funkci použijete jen tam, kde to bude fungovat.

Zachování pozadí zvuku

Hudba, ruchy v místnosti a zvukové efekty se oddělí od řeči a smíchají se pod novým dabingem, takže diváci uslyší původní zvukovou stopu v jiném jazyce.

Titulky ve formátech .srt a .vtt

Ke každému přeloženému videu získáte soubor s titulky v obou formátech, v cílovém jazyce a přesně načasované.

Kontrola terminologie pomocí slovníků

Názvy značek, produktů a odborné termíny se přeloží ve všech videích a jazycích jednotně, případně je můžete ponechat v původním znění.

Přeložený text, který můžete upravit

Získejte přepis s původním a přeloženým textem vedle sebe, opravte řádek nebo časovou značku a text znovu vygenerujte. Nemusíte znovu nahrávat audio.

Růst bez omezení

Žádné limity rychlosti ani omezení paralelních požadavků. Pošlete celý svůj katalog a překládejte velké objemy videí do mnoha jazyků současně.
Podívejte se na to v akci

Co vám API pro překlad videí vrátí

Stejný klip přeložený pomocí našeho nástroje. Původní mluvčí v originále, řeč přeložená do několika jazyků a pozadí se všemi zvuky.
Vlajka EN
En
Vlajka Francie
Pá
Vlajka Německa
De
Vlajka PT
Pt
Vlajka ES
Es
Pracovní postup

Tři kroky od nahrání k přeloženému videu

Vytvořením projektu zahájíte překlad. Později můžete použít koncový bod /generate k opětovnému nadabování po úpravách.
1

Nahrajte své video

Pošlete soubor jako multipart formulář nebo vložte odkaz z YouTube, Disku Google, S3, Vimeo či jinou přímou URL adresu. Získáte ID média a technická metadata, aniž byste cokoliv utratili.

POST /api/library/v1/media/link
2

Vytvořte projekt pro každý jazyk

Předejte ID média jako video_id a zvolte cílový jazyk. Vytvořte samostatný projekt pro každý jazyk ze stejného zdroje, s vlastním přepisem nebo slovníkem.

POST /v2/projects
3

Přiřadit hlasy a přehrát

Sledujte stav, dokud se nezobrazí „merging_done“, a poté si stáhněte přeložené video a soubory s titulky pro daný jazyk.

GET /v2/projects/{project_id}
Doba zpracování se liší podle projektu. V případě hromadného překladu vytvořte pro každý cílový jazyk samostatný projekt na základě stejného nahraného souboru, sledujte průběh každého z nich prostřednictvím API a po dokončení si soubory stáhněte.
Přizpůsobeno vám

Potřebujete víc než jen katalog? Obraťte se na náš tým.

Nové jazyky, vlastní hlasy, váš vlastní způsob doručení, vyšší propustnost: pokud integrace překladu videí vyžaduje něco, co není k dispozici ve veřejném katalogu, náš tým posoudí vaše požadavky a dostupné možnosti.

Jazyky a hlasy

Potřebujete jazyk nebo hlas, který není uveden ve veřejném katalogu? Obraťte se na náš tým a sdělte nám své požadavky a dostupné možnosti.

Doručení a integrace

Webhooky, odesílání do vlastní fronty, uložení přímo na S3 nebo vlastní koncové body. Řekněte nám, jak funguje váš systém, a my se přizpůsobíme.

Objem a rychlost

Velikost dávek, počet jazyků nebo priorita zpracování jsou součástí smlouvy, nikoliv pevně dané limity produktu.

Zabezpečení a hosting

Zabezpečení dat, přihlašování přes SSO a SAML, pravidla uchovávání a podpora bezpečnostních auditů jsou součástí nastavení pro firemní zákazníky.
Případy použití

Kdo využívá API pro překlad videí

Platformy pracující s videem

Platformy LMS a platformy pro vzdělávání zákazníků, platformy pro tvůrce obsahu a videa, nástroje pro webináře a virtuální akce, služby SaaS pro hostování videí a řízení pracovních postupů, platformy pro digitální adaptaci, živé nakupování a nástroje pro práci s videem využívající umělou inteligenci, které uživatelům pomáhají vytvářet videa nebo generovat videa z textu. Vaši uživatelé již do vašeho produktu nahrávají videoobsah. Díky API mohou videa překládat přímo na stejném místě do více jazyků a překlad videí se tak stane jednou z vašich placených funkcí.

Lokalizační a produkční agentury

Propojte překlad videí s vaším stávajícím pracovním postupem a zachovejte fázi lidské kontroly. Lingvisté překládaný text kontrolují segment po segmentu, takže váš tým dokáže obsloužit více jazyků klientů se stejným počtem zaměstnanců.

Interní a nepřetržitá produkce videí

Mezinárodní maloobchod a elektronický obchod, globální franšízy, mediální vydavatelé, firemní univerzity. Začleňte překlady do svého publikačního workflow, aby se školicí videa a produktový obsah dostaly na všechny trhy v různých jazycích a aby se jazyková verze automaticky aktualizovala pokaždé, když dojde ke změně zdrojového videa.
Příběhy zákazníků

Skutečné týmy, měřitelné výsledky

Jak firmy lokalizují videa pomocí Rask v řeči čísel.
šipka
šipka
Kód

Příklady kódu pro API překladu videí

Jeden kompletní příklad v každém jazyce: přihlášení, jednorázové nahrání, vytvoření projektu pro každý cílový jazyk, čekání, stažení přeložených video a titulkových souborů.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

TARGETS = ["es-mx", "de-de", "ja-jp", "pt-br"]

async def translate(client, video_id, lang):
    job = await client.create_project(
        data=schemas.ProjectCreate(video_id=video_id, dst_lang=lang))
    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)

    video = await client.create_media_link(
        data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    jobs = await asyncio.gather(*(translate(client, video.id, l) for l in TARGETS))
    for j in jobs:
        print(j.dst_lang, j.translated_video, j.translation_srt_path)

asyncio.run(main())
github.com/braskai/rask-sdk
Python 3.8+, async
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}"}

video = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

ids = [requests.post(f"{API}/v2/projects", headers=h,
                     json={"video_id": video["id"], "dst_lang": lang}).json()["id"]
       for lang in ["es-mx", "de-de", "ja-jp", "pt-br"]]

for pid in ids:
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    print(p["dst_lang"], p["translated_video"], p["translation_vtt_path"])
requests + polling
no SDK required
// 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 get = (path) => fetch(API + path, { headers: h }).then((r) => r.json());
const post = (path, body) => fetch(API + path, { method: 'POST', headers: h, body: JSON.stringify(body) }).then((r) => r.json());

let video = await post('/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await get(`/api/library/v1/media/${video.id}`); }

const results = await Promise.all(['es-mx', 'de-de', 'ja-jp', 'pt-br'].map(async (dst_lang) => {
  let p = await post('/v2/projects', { video_id: video.id, dst_lang });
  while (p.status !== 'merging_done') { await sleep(10000); p = await get(`/v2/projects/${p.id}`); }
  return p;
}));

results.forEach((p) => console.log(p.dst_lang, p.translated_video, p.translation_srt_path));
fetch, Node 18+
plain HTTP
<?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']];

$video = $json($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']]));
while ($video['status'] !== 'ready') {
    sleep(5);
    $video = $json($http->get("/api/library/v1/media/{$video['id']}", ['headers' => $h]));
}

foreach (['es-mx', 'de-de', 'ja-jp', 'pt-br'] as $lang) {
    $p = $json($http->post('/v2/projects', ['headers' => $h,
        'json' => ['video_id' => $video['id'], 'dst_lang' => $lang]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    echo $lang, ' ', $p['translation_srt_path'], PHP_EOL;
}
POST /v2/projects
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);

$auth = json_decode((new Client)->post(
    'https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret],
     'form_params' => ['grant_type' => 'client_credentials']]
)->getBody(), true);

$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = json_decode($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']])->getBody(), true);

$project = json_decode($http->post('/v2/projects',
    ['headers' => $h, 'json' => ['video_id' => $media['id'], 'dst_lang' => 'es-mx']])->getBody(), true);

while ($project['status'] !== 'merging_done') {
    sleep(10);
    $project = json_decode($http->get("/v2/projects/{$project['id']}",
        ['headers' => $h])->getBody(), true);
}
Guzzle 7
plain HTTP
Oficiálním SDK je Python. Záložky pro Node, PHP a cURL představují běžné příklady HTTP volání pro stejná koncová rozhraní.
Průběh

Jak se podávají zprávy o postupu překladu

Každý projekt prochází zdokumentovaným stavovým strojem, takže vaši uživatelé mohou sledovat průběh procesu pomocí reálného, po etapách se měnícího ukazatele průběhu pro každou jazykovou verzi. Stačí, když budete zasahovat pouze do tří skupin.

Hotovo, tady skončete

merging_done
Překlad je hotový. Načtěte projekt znovu, abyste získali odkazy ke stažení dostupné pro váš projekt.

Zpracovává se, pokračujte ve zjišťování stavu

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Plus odpovídající _hotovo státy.

Chyba, zastavit a nahlásit

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words and forbidden_link are specific enough to show directly to your own user. Every error also returns a machine-readable slug for error handling.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

Nebo cyklické dotazování úplně vynechte

Stačí nám zadat koncový bod webhooku a každá změna stavu dorazí jako požadavek POST, takže vaše fronta reaguje na každou změnu ihned, jak k ní dojde. Doručování webhooků je součástí procesu zapojení podnikových zákazníků.
Přečíst dokumentaci
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Výstup

Přeložené video, zvuk a titulky

Stáhněte si přeložené video a titulky ve formátech SRT a VTT pro každý cílový jazyk. V rámci oprávněných tarifů si můžete také stáhnout pouze přeložený hlasový doprovod nebo jeho verzi smíchanou s původním zvukovým pozadím.
Pole
Formát
Co to je
translated_video
MP4
Dabované video připravené k publikování
voiceover
WAV
Pouze přeložená řeč, bez zvukového pozadí, pro váš vlastní mix
translated_audio
WAV
Přeložený mluvený komentář smíchaný s původním zvukovým pozadím
translation_srt_path
.srt
Titulky v cílovém jazyce
translation_vtt_path
.vtt
Stejné titulky ve formátu WebVTT pro webové přehrávače
original_video
MP4
Váš původní soubor pro kontrolu
Ovládání

Zkontrolujte přeložený text a poté znovu nadabujte pouze ty části, které se změnily

Při vytváření projektu začněte s automatickým překladem nebo nahrajte vlastní schválený překlad ve formátu SRT. Před zveřejněním scénář zkontrolujte a znovu vygenerujte pouze ty části, které se změnily. Za předabování prostřednictvím API se účtují pouze změněné segmenty.

Úpravy po jednotlivých segmentech

Úpravy po jednotlivých segmentech
Každý projekt zobrazuje svůj přepis ve formě segmentů, přičemž zdrojový text a přeložený text jsou uvedeny vedle sebe, takže oprava vyžaduje pouze jednu žádost o opravu.
Získání přepsaného textu a jeho segmentů
Upravte původní text a my jej znovu přeložíme
Upravte přeložený text přímo a zachovejte si vlastní slovosled
Úprava časových značek, přidání nebo odstranění segmentů
Změna hlasu přiřazeného k jednotlivým mluvčím

Slovníky pro správnou terminologii

Slovníky pro správnou terminologii
K projektu přiložte slovníček, aby se názvy značek, názvy produktů a odborné termíny překládaly ve všech jazykových verzích stejným způsobem, případně aby zůstaly záměrně nepřeložené.

Slovník pokrývá jeden jazykový pár a platí pro všechny regionální varianty daného cílového jazyka, takže jeden španělský slovník poslouží 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.
Vstup

Podporované formáty souborů

Nahrát můžete video v jednom ze sedmi formátů nebo audio ve čtyřech formátech, případně můžete vložit odkaz. Nepodporované soubory systém odmítne ještě předtím, než se vám odečtou minuty z kreditu.

Video

7 formátů
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Zvuk

4 formáty
.mp3
.wav
.flac
.m4a

Metadata dříve, než cokoliv utratíte

Koncový bod pro média vrací délku, velikost souboru, video kodek, snímkovou frekvenci, rozlišení, audio kodek, vzorkovací frekvenci a rozložení kanálů. Soubor si můžete zkontrolovat a předem odhadnout cenu, protože překlad videa se účtuje po minutách.
Bezpečnost a dodržování předpisů

Připraveno pro váš bezpečnostní audit

Společnost Brask Inc. splňuje normu SOC 2 Type II, řídí se nařízením GDPR a v Centru důvěry zveřejňuje aktuální stav zabezpečení. S vaším video obsahem se pracuje v uzavřeném prostředí umělé inteligence.

Certifikace

SOC 2 Type II
GDPR
Člen CAI a C2PA

Šifrování

TLS 1.2 při přenosu
AES-256 v klidu
Klíče spravované přes SSE-S3
Obměna klíčů minimálně každých 12 měsíců

Váš obsah

Uzavřené prostředí AI
Nikdy se nepoužívá k trénování obecných modelů
Úplný export, žádné závazky vůči jedné platformě

Přístup

SSO a SAML
Řízení přístupu na základě rolí
Pověření klienta OAuth 2.0

Podnik

Možnosti umístění dat
Vlastní smlouvy o úrovni služeb (SLA)
Vyhrazený správce účtu

Práva na hlas

Syntetické hlasy s právy k užívání
Klonování hlasu na základě souhlasu
Bezpečnostní opatření v oblasti umělé inteligence, zapojení člověka do procesu
Srovnání

Rask API vs. vlastní řešení

Běžné API pro překlad textu překládá znaky. Překlad videa však vyžaduje také rozpoznávání řeči, načasování, hlasy a mixování. Zde jsou dvě možné cesty, jak dosáhnout stejného výsledku.
Co budete potřebovat
Rask API
Sestaveno z dílů
Přepis, překlad, syntéza, mixáž
Jeden hovor
Tři až čtyři dodavatelé a kód, který je propojuje
Načasování překladu s videem
Součástí balení
Vlastní logika pro zarovnání
Rozpoznání mluvčích a vlastní hlas pro každého
Součástí balení
Poskytovatel služby diarizace a vaše vlastní logika přiřazování hlasů
Zachována doprovodná hudba a zvukové efekty
Součástí balení
Krok separace na zdroji, který si sami sestavíte a vyladíte
Titulky ve formátech .srt a .vtt
Součástí balení
Vytvořeno na základě vašich vlastních časových údajů
Synchronizace rtů
Volitelné, účtuje se zvlášť
Samostatný dodavatel
Úprava jednoho přeloženého řádku
Předabujte jen tuto část a zaplaťte pouze za ni
Spusťte proces znovu, plaťte za soubor
Konzistence terminologie
Slovníky s historií verzí
Úpravy před zpracováním a po něm podle vás
Rychlostní limity
Žádné
Podle nejpřísnějších podmínek vašeho dodavatele
Jazyk mimo nabízený katalog
Probereme s naším týmem
Záleží na jednotlivých dodavatelích
Často kladené otázky

API pro překlad videí: nejčastější dotazy

Nenašli jste, co hledáte? Obraťte se na obchodní oddělení.

Existuje API, které dokáže automaticky překládat videa?

Jak získáte přístup k API a klíč API?

Jak probíhá ověření totožnosti u API pro překlad videí?

Funguje API synchronně, nebo asynchronně?

Jaké jsou limity počtu požadavků?

Do kolika jazyků mohu videa překládat?

Můžu jedno video přeložit do více jazyků najednou?

Jak dlouho trvá překlad videa?

Jaké formáty souborů jsou podporovány?

Získám spolu s přeloženým videem i titulky?

Můžu přeložený text před zveřejněním upravit?

Dokáže ChatGPT přeložit video?

Kolik stojí překlad videa?

Začněte dabovat už dnes odpoledne

Zadejte svůj první požadavek ještě dnes a ozvěte se nám, jakmile budete potřebovat velký objem nebo vzácný jazyk.