Rask AI API 동영상 더빙, 번역 및 자막 추출

동영상 현지화 작업을 위한 하나의 API: 음성 인식, 번역, AI 목소리 또는 복제된 목소리로 더빙, 입모양 맞춤 추가 및 자막 다운로드까지 한 번에 가능합니다. 한 번 업로드하고 타겟 언어별로 프로젝트를 만든 다음, 동영상, 오디오 트랙, 자막, 대본을 받아보세요.
음성 복제
입모양 맞춤 및 자막
REST + 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}'
전 세계 팀들이 사용하는
지원 기능

Rask AI API의 모든 기능

하나의 API로 전체 동영상 작업을 처리할 수 있습니다. 모든 기능이 동일한 프로젝트, 동일한 인증, 분당 과금 체계 위에서 작동하며, 각 기능마다 상세 정보와 코드가 담긴 전용 페이지가 있습니다.

AI 더빙

하나의 프로젝트에서 대본 추출, 번역, 목소리 생성, 오디오 믹싱을 모두 처리하세요. 동영상과 타겟 언어를 보내면 더빙된 동영상을 받아볼 수 있습니다.

동영상 번역

한 번의 업로드로 135개 이상의 언어 및 지역별 옵션으로 동영상을 번역하고, 각 언어별로 번역된 텍스트를 검토할 수 있습니다.

음성 복제

지원되는 목소리 복제 언어에서 즉시 목소리 복제(Instant Voice Clone)를 통해 화자의 원래 목소리를 유지하거나, 저장해 둔 커스텀 목소리 복제(Custom Voice Clone)를 다시 사용하세요.

립싱크

얼굴 확인 과정을 거친 후, 더빙된 프로젝트에서 별도의 작업으로 입모양을 더빙된 음성과 일치시키세요. 전체 동영상 생성 시마다 별도로 과금됩니다.

음성 인식 및 동영상 대본 추출

자동 언어 감지 기능을 통해 75개의 원본 언어로 화자 이름표와 구간별 타임스탬프가 포함된 대본을 제공합니다.

.srt 및 .vtt 형식의 자막

플레이어, 앱, 편집 프로그램에서 바로 사용할 수 있도록 타겟 언어로 완성된 프로젝트마다 두 가지 형식을 모두 제공합니다.

동영상 현지화

지역별 언어 옵션과 브랜드 용어 및 승인된 번역을 위한 용어집을 제공하여 각 시장에 딱 맞는 버전을 만들 수 있습니다.

동영상용 텍스트 음성 변환

타임스탬프가 포함된 나만의 대본을 보내면, AI 목소리나 복제된 목소리를 사용하여 화면에 딱 맞게 타이밍이 조절된 내레이션을 얻을 수 있습니다.

제한 없는 확장

속도 제한, 동시 접속 할당량, 키별 제한이 없습니다. 보유한 전체 콘텐츠와 모든 타겟 언어를 동시에 처리하세요.
실행 화면 보기

Rask AI API가 제공하는 결과물

하나의 원본 클립을 API를 통해 영어, 프랑스어, 독일어, 포르투갈어, 스페인어로 더빙하고, 원래 배경 오디오를 유지한 채 화자의 복제된 목소리로 제공합니다.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
작업 흐름

업로드부터 완성된 동영상까지 단 3단계 요청

모든 Rask AI API 작업은 동일한 패턴으로 진행되며, 프로젝트 생성과 동시에 전체 작업이 시작됩니다. 대본이나 목소리를 수정한 후 다시 생성하려면 /generate 엔드포인트를 사용하세요.
1

동영상 업로드

멀티파트 폼 데이터(multipart form data) 형식으로 동영상이나 오디오 파일을 전송하거나, YouTube, Google Drive, S3, Vimeo 또는 기타 직접 URL 링크를 게시하세요. 비용을 지불하기 전에 미디어 ID와 파일 메타데이터를 먼저 확인할 수 있습니다.

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

프로젝트 생성

미디어 ID를 video_id로 전달하고 목표 언어를 설정하세요. 선택사항으로 자체 대본이나 용어집을 첨부할 수 있습니다. 처리가 즉시 시작됩니다.

POST /v2/projects
3

결과물 수집

상태가 merging_done에 도달할 때까지 확인한 후, 더빙된 동영상, 오디오 트랙, 자막 파일 및 대본을 다운로드하세요.

GET /v2/projects/{project_id}
처리 시간은 동영상 길이, 화자 수, 목표 언어에 따라 다릅니다. 테스트 결과, 3분 47초 분량의 동영상이 165초 만에 더빙되었습니다.
맞춤형 서비스

카탈로그에 없는 다른 기능이 필요하신가요? 당사 팀에 문의해 주세요.

공개 카탈로그에 아직 없는 언어, 목소리, 전달 방식 또는 처리량 등 요구사항을 당사 팀이 검토하고 가능한 옵션을 함께 안내해 드립니다.

지원 언어 및 목소리

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

전송 및 연동

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

볼륨 및 처리량

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

보안 및 호스팅

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

Rask AI API를 활용하는 곳

동영상이 포함된 플랫폼

LMS 및 고객 교육 플랫폼, 크리에이터 및 동영상 플랫폼, 웨비나 및 가상 이벤트 도구, 동영상 호스팅 및 워크플로 SaaS, 디지털 도입 플랫폼, 라이브 쇼핑. 자사 제품의 기능으로 다른 언어의 더빙, 자막, 대본을 제공하세요.

현지화 및 제작 대행사

클라이언트 동영상을 위한 더빙, 목소리 복제, 자막, 입모양 맞춤 기능을 기존에 사용 중인 전달 파이프라인에 연결하고, 담당 검토자가 배포 전에 대본을 편집할 수 있도록 하세요.

사내 자체 동영상 제작

글로벌 소매 및 이커머스, 글로벌 프랜차이즈, 미디어 퍼블리셔, 기업 대학. 단일 통합을 통해 모든 시장에 맞게 교육, 제품 및 마케팅 동영상을 현지화하세요.
고객 성공 사례

실제 팀, 가시적인 성과

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

Rask AI API 코드 예제

각 언어별 전체 프로세스(인증, 업로드, 프로젝트 생성, 대기, 파일 수집)입니다. 각 기능 페이지에는 해당 워크플로에 대한 예제가 있습니다.
# 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
공식 SDK는 Python입니다. Node, PHP, cURL 탭은 동일한 엔드포인트를 사용하는 일반적인 HTTP 예시입니다.
진행 상황

Rask AI API 프로젝트의 진행 상황 확인 방법

어떤 용도로 사용하든 모든 프로젝트는 동일한 문서화된 단계를 거칩니다. 사용자에게 단계별 진행률 표시줄을 보여주고 세 가지 그룹에만 대응하세요.

성공, 여기서 중지

merging_done
모든 출력 파일이 준비되었습니다. 프로젝트를 한 번 더 불러와 1시간 동안 유효한 다운로드 링크를 받으세요.

진행 중, 계속 확인

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">
결과물

하나의 프로젝트로 동영상, 오디오, 자막, 대본까지 모두 해결

완료된 프로젝트에서는 더빙된 동영상, 2개의 오디오 트랙, 2개의 자막 파일 및 대본이 제공됩니다. 조건에 맞는 요금제의 경우, 원본 배경음이 포함된 전체 믹스 파일 외에도 번역된 음성만 WAV 파일로 따로 제공됩니다.
항목
형식
설명
translated_video
MP4
바로 게시할 수 있는 더빙된 동영상
voiceover
WAV
자체 믹싱을 위해 이용 가능한 요금제에서 제공되는 번역된 음성만 추출
translated_audio
WAV
번역된 음성과 원래의 배경음악이 섞인 오디오
translation_srt_path
.srt
번역된 언어의 자막
translation_vtt_path
.vtt
WebVTT 형식의 자막 (웹 플레이어용)
/transcription
JSON
세그먼트별 원문, 번역문, 화자 레이블 및 타임스탬프
제어

대본을 수정하고 변경된 부분만 다시 생성하세요.

자동화가 대부분의 작업을 처리하고, 팀에서 최종 검토를 진행합니다. 대사, 타임스탬프, 목소리를 수정하여 다시 생성한 후 변경된 세그먼트 분량만큼만 비용을 지불하세요(실행당 최소 1분).

문장 단위 편집

문장 단위 편집
모든 프로젝트는 대본을 개별 세그먼트로 제공하므로, 새 프로젝트를 만들 필요 없이 패치 요청 한 번으로 수정할 수 있습니다.
대본과 문장 불러오기
원본 텍스트를 수정하면 자동으로 다시 번역됩니다.
번역된 텍스트를 직접 수정하여 원하는 표현을 유지하세요.
타임스탬프 조정, 문장 추가 및 삭제
화자에게 연결된 목소리 변경하기

용어집

용어집
용어집을 첨부하여 브랜드 이름, 제품 이름, 기술 용어가 모든 프로젝트에서 동일하게 번역되도록 하거나 의도한 대로 원문 언어를 유지하세요.

용어집 하나는 한 쌍의 언어에 적용되며 해당 목표 언어의 모든 지역별 변형에 공통으로 적용되므로 하나의 스페인어 용어집으로 es-mx 및 es-es 모두 커버할 수 있습니다. 프로젝트 기록은 glossary_version유지되므로 나중에 수정하더라도 완료된 작업이 예기치 않게 변경되지 않습니다.
입력

지원되는 파일 형식

7가지 동영상 포맷과 4가지 오디오 포맷을 지원하며, 유튜브, 구글 드라이브, S3, 비메오 및 다이렉트 URL 링크도 사용할 수 있습니다. 지원되지 않는 파일은 이용 시간이 차감되기 전에 거부됩니다.

동영상

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

오디오

4가지 형식
.mp3
.wav
.flac
.m4a

작업 전 메타데이터 확인

미디어 엔드포인트는 재생 시간, 파일 크기, 비디오 코덱, 프레임 레이트, 해상도, 오디오 코덱, 샘플 레이트, 채널 레이아웃을 반환합니다. 프로젝트는 분 단위로 과금되므로 사전에 파일을 검증하고 비용을 예상해 보세요.
보안 및 규정 준수

도입 및 보안 검토 완료

Brask Inc는 SOC 2 Type II 인증을 획득하고 GDPR을 준수하며, 보안 팀을 위해 신뢰 센터(Trust Center)에 실시간 통제 상태를 공개하고 있습니다.

인증

SOC 2 Type II
GDPR
CAI 및 C2PA 회원사

암호화

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

회원님의 콘텐츠

폐쇄형 AI 환경
일반 모델 학습에 절대 사용되지 않음
전체 내보내기 가능, 종속성 없음

액세스

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

기업

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

음성 권리

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

Rask AI API와 여러 공급업체를 조합한 파이프라인 비교

기존에는 전사, 번역, 음성, 립싱크, 자막을 각각 다른 공급업체에서 따로 이용해야 했습니다. 동일한 동영상 작업 과정을 두 가지 방식으로 비교해 드립니다.
필요한 기능
Rask API
부품들을 조립하는 방식
화자 라벨이 포함된 음성 전사
포함됨
음성-텍스트 변환 API
135개 이상의 언어 및 지역 옵션으로 번역
포함됨
번역 API
AI 목소리 및 목소리 복제
포함됨
TTS 공급업체와 목소리 복제 공급업체
새로운 음성 아래의 배경 오디오
자동 믹싱
오디오 소스 분리 및 자체 믹싱
립싱크
동일 프로젝트 내의 별도 작업
립싱크 공급업체
.srt 및 .vtt 형식의 자막
포함됨
자체 파일 작성기
한 줄 수정
수정된 구간 다시 생성하기
파일용 파이프라인 다시 실행
용어 제어
용어집
맞춤형 후반 작업
결제
동영상 1분당 단일 통합 풀
공급업체별 글자 수, 시간, 요청 횟수 기준
사용량 제한
없음
각 제공업체가 정한 정책에 따릅니다.
이 양식을 작성해 주시면, Rask AI 팀에서 곧 연락드리겠습니다!
자주 묻는 질문

Rask AI API 자주 묻는 질문

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

Rask AI API란 무엇인가요?

Rask AI API에는 어떤 API들이 포함되어 있나요?

Rask AI API는 어떻게 이용할 수 있나요?

인증은 어떻게 작동하나요?

SDK가 제공되나요?

API에서 지원하는 언어는 무엇인가요?

Rask AI API의 가격은 어떻게 책정되나요?

사용량 제한(레이트 리밋)이 있나요?

API에서 웹훅을 지원하나요?

어떤 파일 형식을 업로드할 수 있나요?

제가 직접 작성한 자막이나 번역본을 사용할 수 있나요?

API가 실시간으로 작동하나요?

Rask AI API는 안전한가요?

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

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