API Rask AI pour le doublage vidéo, la traduction et la transcription

Une seule API pour l'ensemble du processus de localisation vidéo : transcrivez la parole, traduisez-la, doublez-la avec des voix de l'IA ou des clones vocaux, ajoutez la synchronisation labiale et téléchargez les sous-titres. Importez une seule fois, créez un projet pour chaque langue cible et récupérez la vidéo, les pistes audio, les sous-titres et la transcription.
Clonage vocal
Synchronisation labiale et sous-titres
REST + Kit de développement Python (SDK)
three requests, start to finish
OAuth 2.0
# 1. exchange your client id and secret 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 - file, or a YouTube, Drive, S3, Vimeo or direct link
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. create the project - transcription, translation and dubbing start
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\": \"es-mx\"}"
GET /v2/projects/{project_id}
polling, 10s
# Poll until merging_done, then collect the files
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, translated_video, voiceover, translation_srt_path}'
Utilisé par des équipes du monde entier
Fonctionnalités

Tout ce que fait l'API Rask AI

Une seule API couvre tout le flux de travail vidéo. Chaque fonctionnalité s'exécute sur le même projet, avec la même authentification et la même facturation à la minute, et chacune possède sa propre page avec des détails et du code.

Doublage par IA

Transcription, traduction, voix et mixage au sein d'un même projet. Envoyez une vidéo et une langue cible, et obtenez la vidéo doublée.

Traduction de vidéos

Traduisez des vidéos dans plus de 135 langues et options régionales à partir d'un seul fichier importé, le texte traduit étant disponible pour révision dans chaque langue.

Clonage vocal

Conservez la voix de chaque intervenant grâce au clonage vocal instantané (Instant Voice Clone) ou réutilisez un clone vocal personnalisé enregistré, dans les langues compatibles.

Synchronisation labiale

Adaptez les mouvements de la bouche au discours doublé en tant que tâche distincte sur un projet doublé, avec une vérification préalable des visages. Facturé séparément pour chaque génération de vidéo complète.

Transcription et conversion de la parole en texte pour la vidéo

Transcriptions avec identification des locuteurs et horodatage des segments dans 75 langues sources, avec détection automatique de la langue.

Sous-titres au format .srt et .vtt

Les deux formats sur chaque projet terminé, dans la langue cible, pour votre lecteur, application ou logiciel de montage.

Localisation vidéo

Options de langues régionales, glossaires pour les termes de la marque et traductions approuvées, afin que chaque marché ait sa propre version.

Synthèse vocale pour la vidéo

Envoyez votre propre script avec des repères temporels et obtenez une voix hors champ synchronisée avec l'image, en utilisant des voix de l'IA ou des clones vocaux.

Évoluez sans limites

Aucune limite de débit, aucun quota de concurrence, aucune restriction par clé. Exécutez l'ensemble de votre catalogue et de vos langues cibles en parallèle.
Voir en action

Ce que renvoie l'API Rask AI

Un clip source, doublé via l'API en anglais, français, allemand, portugais et espagnol, dans les voix clonées des intervenants avec l'audio de fond d'origine.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flux de travail

Trois requêtes de l'importation à la vidéo finale

Chaque flux de travail de l'API Rask AI suit le même modèle, et la création du projet lance l'exécution complète. Utilisez le point de terminaison /generate pour relancer la génération après avoir modifié la transcription ou les voix.
1

Téléchargez votre vidéo

Envoyez un fichier vidéo ou audio sous forme de données de formulaire multipart, ou publiez un lien depuis YouTube, Google Drive, S3, Vimeo ou toute URL directe. Vous obtenez un identifiant de média et les métadonnées du fichier avant de dépenser quoi que ce soit.

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

Créer le projet

Transmettez l'identifiant du média en tant que video_id ainsi qu'une langue cible. Vous pouvez également joindre votre propre transcription ou un glossaire. Le traitement commence immédiatement.

POST /v2/projects
3

Récupérer le résultat

Suivez l'état d'avancement jusqu'à ce qu'il atteigne merging_done, puis téléchargez la vidéo doublée, les pistes audio, les fichiers de sous-titres et la transcription.

GET /v2/projects/{project_id}
Le temps de traitement varie selon la longueur de la vidéo, le nombre d'intervenants et la langue cible. Lors d'un test, une vidéo de 3 minutes 47 a été doublée en 165 secondes.
Conçu pour vous

Besoin de quelque chose qui ne figure pas dans le catalogue ? Discutez-en avec notre équipe.

Une langue, une voix, une méthode de diffusion ou un débit que le catalogue public ne couvre pas encore : notre équipe examine vos besoins et les options disponibles avec vous.

Langues et voix

Besoin d'une langue ou d'une voix absente du catalogue public ? Parlez de vos besoins et des options disponibles à notre équipe.

Diffusion et intégration

Webhooks, envoi vers votre propre file d'attente, livraison directe sur votre S3, endpoints personnalisés. Dites-nous comment votre système souhaite être alimenté.

Volume et débit

La taille des lots, les langues cibles par action et la priorité de traitement sont des conditions contractuelles, et non des limites de produit fixes.

Sécurité et hébergement

La résidence des données, le SSO et SAML, les règles de conservation et le support pour l'examen de la sécurité sont pris en charge lors de l'intégration des grandes entreprises.
Cas d'utilisation

Qui utilise l'API Rask AI

Plateformes intégrant de la vidéo

Plateformes LMS et de formation client, plateformes de création et de vidéo, outils de webinaires et d'événements virtuels, SaaS d'hébergement vidéo et de flux de travail, plateformes d'adoption numérique, shopping en direct. Proposez le doublage, les sous-titres et les transcriptions dans d'autres langues en tant que fonctionnalités de votre propre produit.

Agences de localisation et de production

Connectez Rask au canal de livraison que vous utilisez déjà : doublage, clones vocaux, sous-titres et synchronisation labial pour les vidéos de vos clients, avec vos réviseurs qui modifient la transcription avant la livraison.

Production vidéo continue en interne

Vente au détail et commerce électronique internationaux, franchises mondiales, éditeurs de médias, universités d'entreprise. Localisez les vidéos de formation, de produits et de marketing pour chaque marché grâce à une seule intégration.
Témoignages clients

De véritables équipes, des résultats mesurables

Découvrez comment les entreprises localisent leurs vidéos avec Rask, chiffres à l'appui.
flèche
flèche
Code

Exemples de code de l'API Rask AI

Un aller-retour complet dans chaque langue : authentification, téléchargement, création d'un projet, attente, récupération des fichiers. Chaque page de fonctionnalité propose des exemples pour son propre flux de travail.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def main():
    # the client exchanges your credentials for tokens and refreshes them
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

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

    job = await client.create_project(data=schemas.ProjectCreate(video_id=media.id, dst_lang="es-mx"))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)

    print(job.translated_video, job.translation_srt_path, job.translation_vtt_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}"}

with open("launch.mp4", "rb") as f:
    media = requests.post(f"{API}/api/library/v1/media", headers=h,
                          params={"kind": "video"}, files={"data": f}).json()
while media["status"] == "processing":
    time.sleep(5)
    media = requests.get(f"{API}/api/library/v1/media/{media['id']}", headers=h).json()

pid = requests.post(f"{API}/v2/projects", headers=h,
                    json={"video_id": media["id"], "dst_lang": "de-de"}).json()["id"]
while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
    time.sleep(10)

for field in ("translated_video", "translated_audio", "translation_srt_path"):
    print(field, p[field])   # presigned links, valid for one hour
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 call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());

let media = await call('POST', '/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (media.status === 'processing') { await sleep(5000); media = await call('GET', `/api/library/v1/media/${media.id}`); }

let p = await call('POST', '/v2/projects', { video_id: media.id, dst_lang: 'ja-jp' });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }

const { translated_video, voiceover, translation_vtt_path } = p;
console.log({ translated_video, voiceover, translation_vtt_path });
fetch, Node 18+
plain HTTP
# 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. upload by link
VIDEO_ID=$(curl -s -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/..."}' | jq -r .id)

# 3. create the project once the media status is ready
ID=$(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\": \"pt-br\"}" | jq -r .id)

# 4. wait for merging_done, then read the links
until [ "$(curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq -r .status)" = merging_done ]; do
  sleep 10
done
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{translated_video, translated_audio, translation_srt_path}'
shell script
token to download
<?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']];

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

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $media['id'], 'dst_lang' => 'fr-fr']]));
while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}
echo $p['translated_video'], PHP_EOL, $p['translation_srt_path'], PHP_EOL;
Guzzle 7
plain HTTP
Python est le kit de développement officiel. Les onglets Node, PHP et cURL montrent des exemples HTTP simples utilisant les mêmes points de terminaison.
Progression

Comment un projet d'API Rask AI indique sa progression

Chaque projet, quel que soit son usage, passe par les mêmes états documentés. Affichez une barre de progression par étapes pour vos utilisateurs et agissez sur trois groupes seulement.

Succès, arrêtez-vous ici

merging_done
Chaque fichier de sortie est prêt. Récupérez le projet une fois de plus pour obtenir les liens de téléchargement, qui restent valables une heure.

En cours, continuez à vérifier

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Ainsi que la correspondance _done états. Ceux-ci correspondent parfaitement à une interface de progression par étapes.

Échec, arrêt et rapport

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words et forbidden_link sont suffisamment précis pour être affichés directement à vos propres utilisateurs. Chaque erreur renvoie également un identifiant lisible par machine.
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

Ou ignorez complètement le sondage

Indiquez-nous un point de terminaison webhook et chaque changement d'état est envoyé sous forme de POST, permettant à votre file d'attente de réagir instantanément à chaque modification. L'envoi de webhooks fait partie de l'intégration pour les entreprises.
Lire la documentation
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Sortie

Vidéo, audio, sous-titres et transcription à partir d'un seul projet

Un projet terminé présente la vidéo doublée, deux pistes audio, deux fichiers de sous-titres et la transcription. Sur les abonnements éligibles, la voix traduite est fournie seule au format WAV, à côté du mixage complet avec l'arrière-plan d'origine.
Champ
Format
Ce que c'est
translated_video
MP4
La vidéo doublée, prête à être publiée
voiceover
WAV
Parole traduite uniquement, sur les abonnements éligibles, pour votre propre mixage
translated_audio
WAV
Discours traduit mixé avec l'audio d'arrière-plan d'origine
translation_srt_path
.srt
Sous-titres dans la langue cible
translation_vtt_path
.vtt
Les mêmes sous-titres au format WebVTT, pour les lecteurs web
/transcription
JSON
Texte source, traduction, nom de l'intervenant et horodatages par segment
Contrôle

Modifiez la transcription, régénérez uniquement ce qui a changé

L'automatisation fait le plus gros du travail et votre équipe garde le dernier mot. Corrigez une ligne, un horodatage ou une voix, régénérez et payez pour les segments modifiés, avec un minimum d'une minute par exécution.

Édition au niveau des segments

Édition au niveau des segments
Chaque projet expose sa transcription sous forme de segments adressables, de sorte qu'une correction équivaut à une simple requête de mise à jour plutôt qu'à un nouveau projet.
Récupérer la transcription et ses segments
Modifier le texte source pour lancer une nouvelle traduction
Modifier directement le texte traduit pour conserver vos propres formulations
Ajuster les repères temporels, ajouter ou supprimer des segments
Réassigner la voix associée à un locuteur

Glossaires pour la terminologie

Glossaires pour la terminologie
Associez un glossaire pour que les noms de marque, les noms de produits et les termes techniques soient traduits de la même manière dans chaque projet, ou conservés volontairement dans la langue d'origine.

Un glossaire couvre une paire de langues et s'applique à toutes les variantes régionales de cette langue cible. Ainsi, un seul glossaire en espagnol sert es-mx et es-es de la même manière. L'historique du projet glossary_version, de sorte que les modifications ultérieures ne modifient jamais discrètement le travail déjà terminé.
Entrée

Formats de fichiers pris en charge

Sept formats vidéo et quatre formats audio, ainsi que des liens provenant de YouTube, Google Drive, S3, Vimeo et des URL directes. Un fichier non pris en charge est rejeté avant qu'aucune minute ne soit facturée.

Vidéo

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

Audio

4 formats
.mp3
.wav
.flac
.m4a

Métadonnées avant de dépenser

L'endpoint média renvoie la durée, la taille du fichier, le codec vidéo, la fréquence d'images, la résolution, le codec audio, la fréquence d'échantillonnage et la disposition des canaux. Validez un fichier et estimez le coût à l'avance, car les projets sont facturés à la minute.
Sécurité et conformité

Prêt pour les achats et l'examen de sécurité

Brask Inc détient la certification SOC 2 Type II, fonctionne conformément au RGPD et publie l'état de ses contrôles en direct dans son Centre de confiance pour votre équipe de sécurité.

Certifications

SOC 2 Type II
GDPR
Membre CAI et C2PA

Cryptage

TLS 1.2 en transit
AES-256 au repos
Clés gérées SSE-S3
Rotation des clés au moins tous les 12 mois

Votre contenu

Environnement d'IA fermé
Jamais utilisé pour entraîner des modèles généraux
Exportation complète, sans dépendance vis-à-vis d'un fournisseur

Accès

SSO et SAML
Contrôle d'accès basé sur les rôles
Identifiants client OAuth 2.0

Entreprise

Options de résidence des données
SLA personnalisés
Gestionnaire de compte dédié

Droits sur les voix

Voix synthétiques avec droits d'utilisation
Clonage de voix basé sur le consentement
Contrôles de sécurité de l'IA, intervention humaine
Comparaison

API Rask AI par rapport à un pipeline assemblé à partir de plusieurs fournisseurs

La transcription, la traduction, les voix, la synchronisation labial et les sous-titres proviennent généralement de fournisseurs différents. Voici le même flux de travail vidéo, assemblé de deux manières.
Ce dont vous avez besoin
Rask API
Assemblé à partir de pièces
Transcription avec identification des locuteurs
Inclus
Une API de conversion de la parole en texte
Traduction dans plus de 135 langues et options régionales
Inclus
Une API de traduction
Voix IA et clones vocaux
Inclus
Un fournisseur TTS et un fournisseur de clonage de voix
Audio de fond sous la nouvelle voix
Mixé automatiquement
Séparation des sources et votre propre mixage
Synchronisation labiale
Une tâche distincte sur le même projet
Un fournisseur de synchronisation labiale
Sous-titres au format .srt et .vtt
Inclus
Votre propre outil de création de fichiers
Correction d'une ligne
Régénérer les segments modifiés
Réexécuter le pipeline pour le fichier
Gestion de la terminologie
Glossaires
Post-traitement personnalisé
Facturation
Par minute de vidéo, un seul solde
Par caractère, par heure et par requête selon les fournisseurs
Limites de taux
Aucun
Selon les règles imposées par chaque fournisseur
Merci de remplir ce formulaire ; l'équipe d'Rask AI vous contactera très prochainement !
FAQ

API Rask AI : questions fréquentes

Vous ne trouvez pas ce que vous cherchez ? Contactez le service commercial.

Qu'est-ce que l'API Rask AI ?

Quelles API font partie de l'API Rask AI ?

Comment obtenir l'accès à l'API Rask AI ?

Comment fonctionne l'authentification ?

Existe-t-il un SDK ?

Quelles langues l'API prend-elle en charge ?

Quel est le modèle tarifaire de l'API Rask AI ?

Y a-t-il des limites de taux ?

L'API prend-elle en charge les webhooks ?

Quels formats de fichiers puis-je importer ?

Puis-je utiliser ma propre transcription ou traduction ?

L'API fonctionne-t-elle en temps réel ?

L'API Rask AI est-elle sécurisée ?

Commencez à doubler en un après-midi

Faites votre première demande dès aujourd'hui et contactez-nous si vous avez besoin de tarifs de gros ou d'une langue introuvable ailleurs.