모든 시장을 위한 동영상 현지화 API

원본 동영상 하나로 각 시장에 적합한 현지화 버전을 만드세요. 올바른 지역 언어, 일관된 브랜드 용어, 화자의 목소리, 자막 및 선택 사항인 립싱크를 제공합니다. 하나의 API로 현지화 워크플로가 실행되며, 콘텐츠가 게시되기 전에 팀에서 대본을 검토할 수 있습니다.
135개 이상의 언어 및 지역 옵션
용어집 및 검토
REST + Python SDK
one source, two Spanish markets
OAuth 2.0
# 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
GET /v2/projects/{project_id}/transcription
review
# 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}'
전 세계 팀들이 사용하는
주요 기능

동영상 현지화 API의 주요 기능

현지화는 단순히 번역된 오디오 트랙 그 이상입니다. 이 API는 시장별로 지역 언어 옵션, 용어 제어, 목소리, 자막, 검토 기능을 하나의 워크플로로 통합합니다. 별도로 과금되는 선택 사항인 립싱크를 추가할 수도 있습니다.

135개 이상의 언어 및 지역 옵션

특정 지역에 맞게 현지화하세요(es-mx 또는 es-es, pt-br 또는 pt-pt, fr-ca 또는 fr-fr). 각 프로젝트는 하나의 타겟 로케일로 설정되며, 원본 언어는 자동으로 감지됩니다.

용어 제어

용어집을 사용하면 모든 현지화 버전에서 브랜드 이름과 용어를 동일하게 유지할 수 있습니다. 하나의 용어집이 특정 언어의 모든 지역별 변형을 지원하며, 각 프로젝트에는 사용된 용어집 버전이 기록됩니다.

승인된 번역

자동 번역으로 시작하거나 검토자가 이미 승인한 SRT 파일 형태의 번역을 가져와 Rask를 통해 더빙할 수 있습니다.

인물 출연 영상을 위한 립싱크

실제 인물이 출연하는 영상에서 입 모양을 현지화된 음성에 맞춥니다. 선택 사항이며, 전체 동영상 생성 시 각각 별도로 과금됩니다.

배경 오디오 유지

원본 오디오의 음악, 현장음, 효과음이 현지화된 음성과 함께 유지되므로 어느 시장에서나 동일한 수준의 음향을 경험할 수 있습니다.

자막

모든 현지화 버전에는 타겟 언어로 제공되며 현지화된 음성에 맞춰진 SRT 및 VTT 형식의 자막이 포함됩니다.

시장별 화자 목소리

인터뷰나 대화에서는 인스턴트 목소리 복제(Instant Voice Clone)를 통해 지원되는 언어에서 각 화자의 목소리를 유지할 수 있으며, 저장된 맞춤 목소리 복제(Custom Voice Clone)를 사용하면 고정 출연자의 목소리를 일관되게 유지할 수 있습니다. AI 목소리 프리셋이 나머지를 지원합니다.

게시 전 검토

검토자는 원본과 번역된 텍스트를 나란히 비교하여 시장에 맞지 않는 부분을 수정하고, 변경된 세그먼트만 다시 더빙할 수 있습니다.

제한 없는 규모 확장

속도 제한, 동시성 할당량, 키별 제한이 없습니다. 모든 시장에 동시 출시가 이루어질 때 수백 개의 현지화 버전을 병렬로 생성하세요.
작동 모습 보기

원본 동영상 하나로 4개 시장에 현지화

프랑스어, 독일어, 포르투갈어, 스페인어로 현지화된 동일한 클립: 원본 배경 오디오가 유지된 상태에서 복제된 화자의 목소리로 번역된 음성을 제공합니다.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
작업 흐름

동영상 현지화 워크플로의 세 가지 단계

규칙을 한 번만 설정하면 이후 모든 새 동영상에 동일하게 적용됩니다. 프로젝트를 생성하면 현지화가 시작되며, 검토 후 수정이 완료되면 /generate 엔드포인트를 사용하세요.
1

현지화 규칙 설정하기

언어별로 용어집을 만들고, 자주 등장하는 출연자의 목소리를 저장하며, 진출하려는 지역에 맞는 현지 설정(로케일)을 선택하세요.

POST /v2/glossaries
2

시장별 버전 만들기

원본 동영상을 한 번 업로드한 후, 용어집을 적용하거나 SRT 파일로 번역본을 불러와 타겟 지역별 프로젝트를 각각 만드세요.

POST /v2/projects
3

검토 및 게시하기

번역된 텍스트를 원문과 나란히 비교하며 읽고, 검토자가 지적한 부분을 수정하고, 변경된 구간만 다시 더빙한 뒤 현지화된 동영상과 자막을 다운로드하세요.

GET /v2/projects/{id}/transcription
처리 시간은 프로젝트에 따라 다릅니다. 검토 후 재더빙할 때는 변경된 구간의 총 재생 시간을 기준으로 요금 이 청구되며, 실행당 최소 1분이 적용됩니다.
사용자 맞춤형 서비스

대량으로 현지화를 진행하시나요? 저희 팀과 함께 워크플로우를 계획해 보세요.

반복적인 대량 작업, 여러 명의 검토자, 자체 CMS나 LMS를 이용 중이신가요? 저희 팀이 현지화 워크플로우 설계, 용어 및 검토 단계 설정, 그리고 내부 팀에서 모든 영상을 직접 검토하기 어려운 경우를 위한 전문가(Human QA) 검토 추가를 도와드립니다.

언어 및 목소리

공개 카탈로그에 없는 언어이나 목소리가 필요하신가요? 요구사항과 가능한 옵션에 대해 저희 팀과 상의해 보세요.

전송 및 연동

웹훅(Webhook), 자체 대기열로의 전송, S3로의 직접 전달, 맞춤형 엔드포인트 등을 지원합니다. 파이프라인에서 원하는 전달 방식을 알려주세요.

볼륨 및 처리량

일괄 처리 규모, 작업당 목표 언어 수, 처리 우선순위는 고정된 제품 한도가 아니라 계약 조건에 따라 결정됩니다.

보안 및 호스팅

데이터 보관 위치, SSO 및 SAML, 보존 규칙, 보안 검토 지원은 기업용 온보딩 과정에서 처리됩니다.
사용 사례

동영상 현지화 API를 사용하는 대상

동영상이 포함된 플랫폼

LMS 및 고객 교육 플랫폼, 크리에이터 및 동영상 플랫폼, 웨비나 및 가상 이벤트 도구, 동영상 호스팅 및 워크플로우 SaaS, 디지털 채택 플랫폼, 라이브 쇼핑. 제품 내에서 지역별 언어 옵션이 포함된 현지화 버전을 제공하여, 사용자가 플랫폼을 떠나지 않고도 전 세계 오디언스와 새로운 시장에 도달할 수 있도록 하세요.

현지화 및 제작 대행사

브랜드별 용어집과 프로젝트별 검토 단계를 활용해 여러 고객을 위한 현지화를 진행하세요. 언어 전문가가 승인한 SRT 파일 번역본을 가져와 단일 동영상 현지화 워크플로우에서 더빙된 동영상, 자막, 옵션인 립싱크까지 모두 제공할 수 있습니다.

자체적인 지속적 동영상 제작

글로벌 유통 및 이커머스, 글로벌 프랜차이즈, 미디어 퍼블리셔, 사내 대학. 일관된 브랜드 용어를 사용하여 각 지역에 맞게 마케팅 동영상, 광고, 이러닝, 제품 동영상 콘텐츠를 현지화하고, 원본 동영상이 변경되면 업데이트된 버전을 만드세요.
고객 사례

실제 팀, 가시적인 성과

Rask AI를 통해 기업이 동영상을 현지화한 방식을 수치로 확인해 보세요.
화살표
화살표
코드

동영상 현지화 API 코드 예제

언어별로 제공되는 전체 예제 하나: 용어집 만들기, 스페인어권 두 곳을 위해 하나의 원본 동영상 현지화하기, 검토를 위해 번역된 텍스트 읽어오기.
# 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())
github.com/braskai/rask-sdk
async, typed models
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"])
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());

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));
}
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. 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\"}"
POST /v2/transcriptions/srt
approved translation from SRT
<?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;
}
Guzzle 7
plain HTTP
Python은 공식 SDK입니다. Node, PHP, cURL 탭은 동일한 엔드포인트를 사용하는 일반 HTTP 예시입니다.
진행 상황

각 현지화 버전의 진행 상황 보고 방식

모든 시장 버전은 고유한 상태 기록이 있는 개별 프로젝트이므로, 여러 시장에 대한 전체 배포 현황을 한눈에 추적할 수 있습니다. 다음 세 가지 그룹에 대해서만 조치하시면 됩니다.

성공, 여기서 중지

merging_done
현지화가 완료되었습니다. 프로젝트를 다시 불러와 해당 프로젝트의 다운로드 링크를 확인하세요.

진행 중이며 계속 상태를 확인합니다

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
그리고 다음 상태와 _done 상태, 시장 버전별로 하나의 시퀀스.

실패 시 중단하고 보고하며

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words 및 forbidden_link 사용자에게 직접 보여주기에 충분히 명확합니다.
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

또는 상태 확인 과정을 완전히 건너뛰세요

웹훅 엔드포인트를 지정하면 상태가 바뀔 때마다 POST 요청이 전송되므로, 대기열이 변경 즉시 반응합니다. 웹훅 전송 기능은 엔터프라이즈 플랜에서 제공됩니다.
문서 읽기
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
결과물

각 시장을 위한 현지화된 동영상, 오디오, 자막

각 시장 버전은 현지화된 동영상과 SRT 및 VTT 자막을 제공합니다. 지원되는 요금제에서는 자체 편집이나 배포를 위해 현지화된 음성 파일만 단독으로 또는 원본 오디오와 섞어서 다운로드할 수도 있습니다.
필드
형식
설명
translated_video
MP4
바로 게시할 수 있는 현지화된 동영상
voiceover
WAV
자체 믹싱을 위한 현지화된 음성만 제공
translated_audio
WAV
번역된 음성과 원래 배경 오디오가 섞인 파일
translation_srt_path
.srt
번역된 언어의 자막
translation_vtt_path
.vtt
웹 플레이어용 WebVTT 자막
original_video
MP4
참고용으로 저장된 원본 파일
제어

모든 시장에서 브랜드 용어와 표현을 일관되게 유지하기

현지화 품질은 꼼꼼한 검토 과정에서 나옵니다. 검토자가 각 구간을 확인하고 현지 정서에 맞지 않는 표현을 바로잡은 뒤, 해당 구간만 다시 더빙합니다. 용어집을 사용하면 검토 결과가 다음 동영상에도 반영되어 시장 전반에 걸쳐 브랜드 일관성을 유지할 수 있습니다.

문장 단위 편집

문장 단위 편집
모든 프로젝트는 원문과 번역된 텍스트가 구간별로 나뉜 대본을 제공하므로, 검토자의 수정 사항은 요청 한 번으로 반영됩니다.
대본과 문장 가져오기
원본 텍스트를 수정하면 AI가 다시 번역합니다
번역된 텍스트를 직접 수정하여 원하는 표현을 유지하세요
타임스탬프 조정, 문장 추가 및 삭제
화자에게 지정된 목소리 변경하기

전문 용어 사전

전문 용어 사전
각 프로젝트에 용어집을 추가하여 브랜드 이름과 제품 용어가 모든 다국어 버전에서 일관되게 번역되도록 하거나, 필요에 따라 원문 그대로 유지하세요.

하나의 용어 사은 하나의 언어 쌍을 다루며 해당 타겟 언어의 모든 지역별 변형에 적용되므로, 하나의 스페인어 사전으로 es-mx 및 es-es 지원합니다. 프로젝트는 glossary_version을 기록하므로, 나중에 수정해도 완료된 작업이 예기치 않게 변경되지 않습니다.
입력

지원하는 파일 형식

7가지 동영상 및 4가지 오디오 형식 중 원하는 파일을 업로드하거나 URL을 입력하세요. 팟캐스트 같은 오디오 전용 콘텐츠도 다국어 번역이 가능하며, 입모양 맞춤(립싱크) 기능은 화면에 얼굴이 나오는 영상에 적용됩니다.

동영상

7개 형식
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

오디오

4개 형식
.mp3
.wav
.flac
.m4a

비용 발생 전 상세 정보 확인

미디어 엔드포인트는 재생 시간, 파일 크기, 비디오 코덱, 프레임 속도, 해상도, 오디오 코덱, 샘플링 속도 및 채널 레이아웃을 반환합니다. 번역은 분 단위로 청구되므로, 사전에 파일을 검증하고 각 시장별 버전의 예상 비용을 미리 확인하세요.
보안 및 규정 준수

모든 시장에서 도입 준비 완료

Brask Inc는 SOC 2 Type II 인증을 취득하고 GDPR을 준수하며, 트러스트 센터에서 실시간 보안 상태를 공개합니다. 데이터 보관 위치 옵션은 엔터프라이즈 온보딩 시 제공됩니다.

인증

SOC 2 Type II
GDPR
CAI 및 C2PA 회원

암호화

전송 중 TLS 1.2 암호화
저장 시 AES-256 암호화
SSE-S3 관리형 키
최소 12개월마다 키 교체

콘텐츠 보호

폐쇄형 AI 환경
일반 모델 학습에 절대 사용되지 않음
자유로운 내보내기, 잠금 현상 없음

액세스

SSO 및 SAML
역할 기반 접근 제어
OAuth 2.0 클라이언트 자격 증명

기업

데이터 보관 지역 선택 옵션
맞춤형 SLA
전담 계정 관리자

목소리 권리 보호

사용 권한이 포함된 합성 목소리
동의 기반 목소리 복제
AI 안전 제어 및 사람의 직접 검토
비교

직접 구축하는 번역 작업 방식과 Rask API 비교

영상 현지화는 번역, 음성, 자막, 용어 및 검토 과정을 하나의 제작 파이프라인으로 통합합니다. 다음은 동일한 작업 방식을 두 가지 방식으로 구현한 비교입니다.
필요한 항목
Rask API
개별 부품 조합 방식
지원하는 지역별 언어 옵션
135개 이상의 언어 및 지역 옵션
업체별로 다른 언어 지원 범위
모든 버전에서 일관된 브랜드 용어
언어 쌍별 버전 관리 용어집
직접 유지보수해야 하는 찾기 및 바꾸기 스크립트
검토자가 승인한 번역본
SRT로 가져온 후 음성 입힘
영상과 수동으로 싱크 맞추기
시장별 화자 목소리
즉시 사용 가능한 맞춤형 목소리 복제
언어별로 다른 별도의 성우 업체
배경음악 및 효과음
현지화된 음성 아래에 유지됨
직접 구축하는 음원 분리 단계
.srt 및 .vtt 형식의 자막
포함됨
사용자의 타이밍 데이터를 바탕으로 생성됨
인물 출연 영상을 위한 립싱크
선택 사항, 전체 영상 생성 시마다 과금
별도의 서비스 업체
검토 후 대사 수정
수정된 구간만 다시 더빙
전체 버전 다시 렌더링
이용 제한
없음
가장 엄격한 제공업체의 정책 적용
작업 흐름 설계 및 전문가 품질 검수(QA)
당사 팀을 통해 이용 가능합니다
별도로 채용 및 관리됨
자주 묻는 질문

동영상 현지화 API: 자주 묻는 질문

원하시는 내용을 찾지 못하셨나요? 영업팀에 문의해 주세요.

동영상 현지화 API란 무엇인가요?

동영상 현지화와 동영상 번역은 어떤 차이가 있나요?

동일한 언어를 사용하는 여러 지역에 맞게 하나의 동영상을 각각 현지화할 수 있나요?

현지화된 버전 전체에서 브랜드 이름을 어떻게 일관되게 유지할 수 있나요?

이미 승인해 둔 번역본을 사용할 수 있나요?

API에서 문화적 표현이나 관용구도 처리해 주나요?

API로 화면에 나오는 텍스트도 번역할 수 있나요?

지원되는 언어와 지역은 어디인가요?

모든 시장에서 원래 화자의 목소리를 그대로 유지할 수 있나요?

립싱크(입모양 맞춤)는 현지화 워크플로우에서 어떻게 적용되나요?

동영상 현지화 비용은 얼마인가요?

Rask에서 현지화 작업 흐름을 설계하는 데 도움을 줄 수 있나요?

API 이용 권한과 API 키는 어떻게 발급받나요?

반나절만에 더빙 시작하기

오늘 첫 요청을 보내보세요. 대량 계약 조건이나 다른 곳에 없는 언어가 필요할 때 저희에게 연락해 주세요.