API di traduzione video per oltre 135 lingue

Carica un video e ricevilo in tutte le lingue di cui hai bisogno. L'API REST di traduzione video trascrive il parlato, lo traduce ed esegue il doppiaggio, restituendo poi il video tradotto, i file dei sottotitoli e il testo tradotto per la revisione.
Oltre 135 lingue di destinazione
Sottotitoli in formato .srt e .vtt
REST + SDK Python
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
Utilizzato da team in tutto il mondo
Funzionalità

Cosa fa l'API di traduzione video in un unico progetto

Trascrivi, traduci e doppi i tuoi video automaticamente tramite un'unica API. Controlla il testo tradotto, mantieni la terminologia coerente con i glossari e scarica il formato di output richiesto da ogni piattaforma. Aggiungi la sincronizzazione labial facoltativa, fatturata separatamente.

Traduzione in oltre 135 lingue

Invia un video e una lingua di arrivo per tradurre i video in es-mx, pt-br, fr-ca o qualsiasi altra lingua supportata. La lingua diorigine viene rilevata automaticamente.

Riconoscimento dei parlanti e voci personalizzate

Gli speaker vengono separati automaticamente e ciascuno riceve una voce nella lingua di arrivo, così le interviste e i dibattiti rimangono facili da seguire. Puoi sovrascrivere qualsiasi assegnazione o indicare il numero se lo conosci.

Voci originali o voci IA

Usa la voce originale di ogni speaker con la clonazione vocale istantanea oppure riutilizza una clonazione vocale personalizzata salvata per avere una voce coerente del presentatore in tutti i video. Entrambe le opzioni sono disponibili nelle lingue supportate; i preset di voce IA coprono il resto.

Sincronizzazione labiale

Attiva la sincronizzazione labiale per abbinare il movimento della bocca al discorso tradotto, come attività facoltativa su qualsiasi progetto completato, fatturata separatamente. Il rilevamento dei volti viene eseguito per primo, così puoi applicarlo solo dove funzionerà.

Audio di sottofondo preservato

Musica, rumore ambientale ed effetti sono separati dal parlato e rimescolati sotto il nuovo doppiaggio, in modo che gli spettatori ascoltino la produzione originale in una lingua diversa.

Sottotitoli in formato .srt e .vtt

Ogni video tradotto include un file di sottotitoli in entrambi i formati, nella lingua di arrivo e sincronizzati con il parlato tradotto.

Controllo della terminologia con glossari

I nomi dei marchi, i nomi dei prodotti e i termini tecnici vengono tradotti allo stesso modo in ogni video e in ogni lingua, oppure rimangono nella lingua originale se desiderato.

Testo tradotto che puoi modificare

Recupera la trascrizione con il testo originale e quello tradotto affiancati, correggi una riga o un timestamp, quindi rigenera. I revisori correggono il testo e nessuno deve registrare nuovamente l'audio.

Cresci senza limiti

Nessun limite di frequenza, nessuna quota di concorrenza, nessuna limitazione per chiave. Invia il tuo intero catalogo e traduci grandi volumi in più lingue in parallelo.
Guardalo in azione

Cosa restituisce l'API di traduzione video

La stessa clip, tradotta attraverso il flusso di lavoro di questa pagina. Speaker originali sulla sorgente, parlato tradotto in francese, tedesco, portoghese e spagnolo, audio di sottofondo intatto.
Bandiera EN
En
Bandiera della Francia
Ven
Bandiera della Germania
Da
Bandiera del PT
Pt
Bandiera ES
Es
Flusso di lavoro

Tre passaggi dal caricamento al video tradotto

La creazione di un progetto avvia la traduzione. Usa l'endpoint /generate in un secondo momento per ridoppiare un progetto dopo averlo modificato.
1

Carica il tuo video

Invia un file come dati di modulo multipart o pubblica un link da YouTube, Google Drive, S3, Vimeo o qualsiasi URL di download diretto. Ottieni un ID multimediale e i metadati tecnici prima di spendere qualsiasi importo.

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

Crea un progetto per ogni lingua

Passa l'ID multimediale come video_id e una lingua di arrivo. Crea un progetto per ogni lingua di cui hai bisogno dallo stesso caricamento, con la tua trascrizione o un glossario se ne hai uno.

POST /v2/projects
3

Assegna le voci e rifai il doppiaggio

Leggi lo stato finché non raggiunge merging_done, quindi scarica il video tradotto e i file dei sottotitoli per quella lingua.

GET /v2/projects/{project_id}
Il tempo di elaborazione varia a seconda del progetto. Per la traduzione in batch, crea un progetto per ciascuna lingua di arrivo dallo stesso caricamento, monitora ognuno tramite le API e scarica i file al termine.
Creato intorno a te

Hai bisogno di altro oltre al catalogo? Parla con il nostro team.

Nuove lingue, voci personalizzate, il tuo metodo di consegna, maggiore capacità: quando un'integrazione di traduzione video richiede qualcosa al di fuori del catalogo pubblico, il nostro team esamina le tue esigenze e le opzioni disponibili.

Lingue e voci

Hai bisogno di una lingua o di una voce non presenti nel catalogo pubblico? Parla con il nostro team per esporre le tue esigenze e scoprire le opzioni disponibili.

Consegna e integrazione

Webhook, invio nella tua coda, consegna diretta al tuo S3, endpoint personalizzati. Diteci come il vostro sistema si aspetta di ricevere i dati.

Volume e capacità

Le dimensioni dei lotti, le lingue di arrivo per azione e la priorità di elaborazione sono termini contrattuali, non limiti fissi del prodotto.

Sicurezza e hosting

La residenza dei dati, l'SSO e SAML, le regole di conservazione e il supporto per la revisione della sicurezza vengono gestiti durante l'attivazione per le aziende.
Casi d'uso

Chi utilizza un'API di traduzione video

Piattaforme con video integrati

Piattaforme LMS e di formazione per i clienti, piattaforme per creatori e video, strumenti per webinar ed eventi virtuali, hosting video e SaaS per flussi di lavoro, piattaforme di digital adoption, live shopping e strumenti di IA per la creazione o la generazione di video a partire dal testo. I tuoi utenti caricano già contenuti video sul tuo prodotto. Con le API possono tradurre i video nello stesso posto e in più lingue, trasformando la traduzione video in una delle tue funzioni a pagamento.

Agenzie di localizzazione e produzione

Collega la traduzione video al flusso di lavoro che usi già e mantieni la fase di revisione umana. I linguisti esaminano il testo tradotto segmento per segmento, consentendo al tuo team di offrire più lingue ai clienti con lo stesso personale.

Produzione video interna e continua

Retail internazionale ed e-commerce, franchising globali, editori multimediali, università aziendali. Integra la traduzione nel tuo flusso di pubblicazione per fare in modo che i video di formazione e i contenuti di prodotto raggiungano ogni mercato in lingue diverse, rigenerando una versione linguistica ogni volta che il video di origine cambia.
Storie di clienti

Squadre vere, risultati tangibili

Come le aziende localizzano i video con Rask, attraverso i loro numeri.
freccia
freccia
Codice

Esempi di codice per le API di traduzione video

Un esempio completo per ciascuna lingua: autenticazione, caricamento unico, creazione di un progetto per lingua di arrivo, attesa e raccolta del video tradotto e dei file dei sottotitoli.
# 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
Python è l'SDK ufficiale. Le schede Node, PHP e cURL mostrano semplici esempi HTTP sugli stessi endpoint.
Avanzamento

Come viene comunicato l'avanzamento della traduzione

Ogni progetto attraversa una macchina a stati documentata, in modo che i tuoi utenti possano seguire il processo tramite una barra di avanzamento reale e suddivisa in fasi per ogni versione linguistica. Devi intervenire solo su tre gruppi.

Operazione riuscita, fermati qui

merging_done
La traduzione è completata. Richiedi nuovamente il progetto per recuperare i link di download disponibili.

In corso, continua a verificare

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
In più la corrispondenza _done stati.

Errore, interruzione e segnalazione

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

Oppure salta del tutto il controllo

Indica un endpoint webhook e ogni transizione di stato arriverà come richiesta POST, così la tua coda potrà reagire a ogni cambiamento nel momento stesso in cui si verifica. La consegna tramite webhook fa parte dell'onboarding per le aziende.
Leggi la documentazione
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Output

Video tradotto, audio e sottotitoli

Scarica il video tradotto e i sottotitoli in formato SRT e VTT per ogni lingua di arrivo. Con i piani idonei, puoi anche scaricare la voce tradotta da sola o combinata con l'audio di sottofondo originale.
Campo
Formato
Cosa contiene
translated_video
MP4
Il video doppiato, pronto per essere pubblicato
voiceover
WAV
Solo parlato tradotto, senza sottofondo, per il tuo mix
translated_audio
WAV
Voce tradotta unita all'audio di sottofondo originale
translation_srt_path
.srt
Sottotitoli nella lingua di arrivo
translation_vtt_path
.vtt
Gli stessi sottotitoli in formato WebVTT, per lettori web
original_video
MP4
Il file di origine salvato, come riferimento
Controllo

Rivedi il testo tradotto, quindi rifai il doppiaggio solo di ciò che è cambiato

Inizia con la traduzione automatica o importa la tua traduzione approvata come file SRT durante la creazione del progetto. Rivedi la sceneggiatura prima della pubblicazione e rigenera solo ciò che cambia. Il nuovo doppiaggio tramite API viene fatturato in base ai segmenti modificati.

Modifica per singoli segmenti

Modifica per singoli segmenti
Ogni progetto mostra la sua trascrizione suddivisa in segmenti, con il testo originale e quello tradotto affiancati, in modo che basti una richiesta patch per effettuare una correzione.
Scarica la trascrizione e i suoi segmenti
Modifica il testo originale e noi penseremo a ritradurlo
Modifica direttamente il testo tradotto per usare le parole che preferisci
Modifica i tempi, aggiungi segmenti o cancellane altri
Cambia la voce associata a qualsiasi speaker

Glossari per la terminologia

Glossari per la terminologia
Associa un glossario a un progetto affinché i nomi dei brand, dei prodotti e i termini tecnici vengano tradotti allo stesso modo in ogni versione linguistica, oppure vengano lasciati intenzionalmente non tradotti.

Un glossario copre una coppia di lingue e si applica a tutte le varianti regionali di quella lingua, così un unico glossario in spagnolo è utile per es-mx e es-es allo stesso modo. Il progetto registra glossary_version, così le modifiche successive non alterano mai inaspettatamente il lavoro completato.
Input

Formati di file supportati

Carica un formato tra sette video e quattro audio, oppure inserisci un URL. Se il file non è supportato, viene rifiutato prima di scalare minuti di traduzione.

Video

7 formati
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Audio

4 formati
.mp3
.wav
.flac
.m4a

Tutte le informazioni prima di iniziare

L'endpoint multimediale restituisce durata, dimensioni, codec video, fotogrammi al secondo, risoluzione, codec audio, frequenza di campionamento e canali. Verifica il file e stima il costo in anticipo, perché la traduzione video viene fatturata al minuto.
Sicurezza e conformità

Pronto per le verifiche di sicurezza

Brask Inc possiede la certificazione SOC 2 Tipo II, rispetta il GDPR e pubblica lo stato dei controlli in tempo reale nel suo Trust Center. I tuoi contenuti video vengono elaborati in un ambiente IA protetto.

Certificazioni

SOC 2 Tipo II
GDPR
Membro CAI e C2PA

Crittografia

TLS 1.2 in transito
AES-256 a riposo
Chiavi gestite SSE-S3
Rotazione delle chiavi almeno ogni 12 mesi

I tuoi contenuti

Ambiente di intelligenza artificiale chiuso
Mai utilizzato per addestrare modelli generali
Esportazione completa, senza vincoli

Accesso

SSO e SAML
Controllo degli accessi basato sui ruoli
Credenziali client OAuth 2.0

Enterprise

Opzioni di localizzazione dei dati
SLA personalizzati
Account manager dedicato

Diritti sulle voci

Voci sintetiche con diritti di utilizzo
Clonazione vocale basata sul consenso
Controlli di sicurezza dell'IA, supervisione umana
Confronto

API di Rask a confronto con un sistema creato da te

Un'API di traduzione di testi traduce solo i caratteri. La traduzione video richiede anche riconoscimento vocale, tempistiche, voci e missaggio. Ecco la stessa funzione realizzata in due modi diversi.
Ciò di cui hai bisogno
Rask API
Assemblato da componenti
Trascrizione, traduzione, sintesi, missaggio
Una sola chiamata
Da tre a quattro fornitori e il codice per collegarli
Sincronizzazione della traduzione con il video
Incluso
La tua logica di allineamento
Riconoscimento dei parlanti e voci personalizzate
Incluso
Un fornitore di diarizzazione più la tua logica di assegnazione delle voci
Musica di sottofondo ed effetti preservati
Incluso
Un passaggio di separazione delle sorgenti da creare e ottimizzare
Sottotitoli in formato .srt e .vtt
Incluso
Generato dai tuoi dati di tempistica
Sincronizzazione labiale
Opzionale, fatturato separatamente
Un fornitore separato
Correzione di una singola riga tradotta
Doppia di nuovo quel segmento e paga solo per quella parte
Riavvia il processo e paga per il file
Coerenza della terminologia
Glossari con versioni
Pre e post-elaborazione gestiti da te
Limiti di velocità
Nessuno
Il livello di sicurezza più severo richiesto dai tuoi fornitori
Una lingua non presente nel catalogo
Da discutere con il nostro team
Dipende da ciascun fornitore
Domande frequenti

API di traduzione video: domande frequenti

Non riesci a trovare quello che cerchi? Contatta l'ufficio vendite.

Esiste un'API che traduce i video in modo automatico?

Come posso ottenere l'accesso alle API e una chiave API?

Come posso effettuare l'autenticazione con l'API di traduzione video?

L'API è sincrona o asincrona?

Quali sono i limiti di frequenza?

In quante lingue posso tradurre i video?

Posso tradurre un video in più lingue contemporaneamente?

Quanto tempo richiede la traduzione di un video?

Quali formati di file sono supportati?

Ricevo anche i sottotitoli oltre al video tradotto?

Posso modificare il testo tradotto prima della pubblicazione?

ChatGPT può tradurre un video?

Quanto costa la traduzione di un video?

Inizia a doppiare in un solo pomeriggio

Fai la tua prima prova oggi e contattaci se hai bisogno di tariffe per grandi volumi o di una lingua che nessun altro offre.