모든 시장을 위한 동영상 현지화 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
작업 흐름

동영상 현지화 작업의 3단계

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

현지화 규칙 설정하기

언어 쌍별로 용어집을 만들고, 반복 출연하는 발표자의 맞춤 목소리를 저장하며, 콘텐츠를 게시할 시장별 지역 설정을 선택하세요.

POST /v2/glossaries
2

시장별 버전 만들기

원본 동영상을 한 번 업로드한 다음, 용어집을 적용하거나 SRT에서 가져온 승인된 번역을 사용하여 타겟 시장별 프로젝트를 만드세요.

POST /v2/projects
3

검토 및 게시

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

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

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

대량의 콘텐츠, 여러 명의 검토자, 자체 CMS 또는 LMS 시스템이 있으신가요? 저희 팀이 현지화 워크플로우 설계, 용어 및 검토 단계 구성, 그리고 모든 동영상을 직접 검토하기 어려운 경우를 위한 전문적인 품질 관리(QA) 도입을 도와드립니다.

지원 언어 및 목소리

기본 목록에 없는 언어이나 목소리가 필요하신가요? 필요한 사항과 이용 가능한 옵션에 대해 저희 팀과 상담해 보세요.

전송 및 연동

웹훅, 자체 대기열 연동, S3 직접 전송, 맞춤형 엔드포인트를 지원합니다. 시스템에 맞는 방식을 알려주세요.

볼륨 및 처리량

배치 크기, 작업당 타겟 언어 수, 처리 우선순위는 고정된 제품 한계가 아니라 계약을 통해 조율할 수 있습니다.

보안 및 호스팅

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

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

동영상이 포함된 플랫폼

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

현지화 및 제작 대행사

브랜드별 용어집과 프로젝트별 검토 단계를 활용하여 여러 클라이언트를 위한 현지화를 진행하세요. 언어 전문가가 승인한 SRT 파일 번역을 가져와 단일 동영상 현지화 워크플로우에서 더빙된 동영상, 자막, 그리고 선택 사항인 립싱크까지 제공하세요.

사내 자체 동영상 제작

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

실제 팀, 가시적인 성과

Rask를 통해 동영상을 현지화한 기업들의 실제 수치와 이야기를 확인해 보세요.
화살표
화살표
코드

동영상 현지화 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
공식 SDK는 Python입니다. 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
참고용으로 보관된 원본 파일
제어

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

현지화 품질은 꼼꼼한 검수 과정에서 나옵니다. 검수자는 각 구간을 확인하고 어색한 표현을 수정하며, 수정된 구간만 다시 더빙합니다. 용어집은 이러한 결정을 다음 동영상에도 반영하여 모든 시장에서 브랜드의 일관성을 유지해 줍니다.

문장 단위 편집

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

용어집

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

용어집 하나는 한 쌍의 언어에 적용되며 해당 목표 언어의 모든 지역별 변형에 공통으로 적용되므로 하나의 스페인어 용어집으로 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 형식의 자막
포함됨
자체 타이밍 데이터를 기반으로 생성
카메라 출연 영상을 위한 립싱크
선택 사항이며, 전체 동영상 생성 시 건당 청구됨
별도의 서비스 업체
검수 후 대사 수정하기
변경된 구간만 다시 더빙하기
버전 전체를 다시 렌더링하기
사용량 제한
없음
가장 엄격한 서비스 업체의 기준 적용
작업 흐름 설계 및 전문가 검수
당사 팀을 통해 이용 가능
별도로 채용 및 관리
자주 묻는 질문

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

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

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

동영상 현지화는 일반 동영상 번역과 어떻게 다른가요?

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

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

이미 승인된 번역을 사용할 수 있나요?

API로 문화적 배경이나 뉘앙스까지 처리할 수 있나요?

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

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

모든 시장의 동영상에서 원래 화자의 목소리를 유지할 수 있나요?

현지화 작업 흐름에서 립싱크(입모양 맞춤)는 어떻게 적용되나요?

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

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

API 접근 권한과 API 키는 어떻게 발급받나요?

단 하루 만에 더블링을 시작해 보세요

오늘 첫 요청을 보내보시고, 대량 이용 조건이나 흔하지 않은 언어가 필요할 때 저희에게 문의해 주세요.