← 대시보드 빠릿쇼츠

자막 지우기·번역을 API

공개 영상 URL을 주면 GPU 워커가 자막을 지우거나 번역해 결과 영상 URL을 돌려줍니다. 설치·업로드 없이 HTTP 한 번. 종량제 크레딧(영상 30초당 1크레딧·300원), 결과는 우리 CDN에 저장됩니다.

1. API 키 발급

키는 생성 시 한 번만 전체가 표시됩니다. 안전한 곳에 보관하세요. 우리는 키의 해시만 저장합니다.

로그인하고 키 발급하기

아래 문서는 로그인 없이 볼 수 있어요.

새 키가 발급됐어요 — 지금 복사하세요 (다시 표시되지 않음)
이름마지막 사용

아직 발급한 키가 없어요.

2. 크레딧 잔액 –

영상 30초당 1크레딧(300원)이 차감돼요. 길이는 처리 후 실측해 차액을 환급합니다. 최대 2분(4크레딧)까지 한 작업으로 처리돼요.

100 크레딧
30,000원
300원/크레딧
500 크레딧
150,000원
300원/크레딧
2000 크레딧
600,000원
300원/크레딧

결제 링크를 카카오톡으로 보내드려요. 결제 후 새로고침하면 충전됩니다.

3. 사용법 (REST)

흐름은 딱 두 단계예요. ① 영상 URL로 작업 생성 → ② 완료될 때까지 상태 확인 → 결과 영상 URL을 받습니다. 모든 요청에 Authorization: Bearer <키> 헤더만 붙이면 됩니다. 베이스 URL은 https://bbaritshorts.com.

전체 예제 — 복사해서 그대로 실행

아래 탭에서 쓰는 언어를 고르세요. bsk_live_... 자리에 발급받은 키만 넣으면 동작합니다.

# 1) 작업 생성 — 중국어 자막 제거
curl -X POST https://bbaritshorts.com/api/v1/jobs \
  -H "Authorization: Bearer bsk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "task": "erase", "video_url": "https://example.com/clip.mp4", "lang": "chinese" }'
# → { "job_id": "abc-123", "status": "queued", ... }

# 2) 완료될 때까지 상태 확인 (몇 초 간격으로 반복)
curl https://bbaritshorts.com/api/v1/jobs/abc-123 \
  -H "Authorization: Bearer bsk_live_..."
# → { "status": "completed", "result_url": "https://.../out.mp4" }
import requests, time

BASE = "https://bbaritshorts.com"
KEY  = "bsk_live_..."                  # 발급받은 API 키
H    = {"Authorization": f"Bearer {KEY}"}

# 1) 작업 생성 (번역은 task="translate", translate_to="korean" 으로)
job = requests.post(f"{BASE}/api/v1/jobs", headers=H, json={
    "task": "erase",
    "video_url": "https://example.com/clip.mp4",
    "lang": "chinese",
}).json()["job_id"]

# 2) 완료될 때까지 폴링
while True:
    s = requests.get(f"{BASE}/api/v1/jobs/{job}", headers=H).json()
    if s["status"] in ("completed", "failed"): break
    time.sleep(5)

print(s["result_url"])                 # 완성 영상 다운로드 URL
// Node 18+ (내장 fetch 사용)
const BASE = "https://bbaritshorts.com";
const KEY  = "bsk_live_...";           // 발급받은 API 키
const H = { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" };

// 1) 작업 생성 (번역은 task:"translate", translate_to:"korean")
const { job_id } = await (await fetch(`${BASE}/api/v1/jobs`, {
  method: "POST", headers: H,
  body: JSON.stringify({ task: "erase", video_url: "https://example.com/clip.mp4", lang: "chinese" }),
})).json();

// 2) 완료될 때까지 폴링
let s;
do {
  await new Promise(f => setTimeout(f, 5000));
  s = await (await fetch(`${BASE}/api/v1/jobs/${job_id}`, { headers: H })).json();
} while (s.status !== "completed" && s.status !== "failed");

console.log(s.result_url);             // 완성 영상 다운로드 URL

💡 번역으로 쓰려면 본문(body)에서 task·언어만 바꾸면 끝입니다:
{ "task": "translate", "video_url": "...", "translate_to": "korean" }

잔액 조회

curl https://bbaritshorts.com/api/v1/me -H "Authorization: Bearer bsk_live_..."
# → { "credits": 96, "usage": { "total": 12, "this_month": 4 } }

요청 파라미터 (body)

task필수
무엇을 할지 고릅니다. "erase" = 자막을 지우고 배경을 복원, "translate" = 원본 자막을 지운 뒤 그 자리에 번역 자막을 다시 넣기.
video_url필수
처리할 영상의 공개 http(s) 주소. 우리 서버가 이 주소로 직접 내려받습니다. 로그인이 필요한 비공개 링크는 안 됩니다.
권장 2분 이하 · 예: https://example.com/clip.mp4
langerase일 때
지울 자막의 언어. 화면에 다른 언어 제목이 섞여 있어도 고른 언어만 지웁니다. 기본값 chinese.
선택지: chinese · korean · english · japanese · latin · thai · arabic · hebrew · cyrillic · devanagari · greek · tamil · telugu · all
translate_totranslate일 때 필수
번역해서 다시 넣을 도착 언어.
선택지: korean · english · chinese · japanese · vietnamese · thai · arabic · russian · spanish
detect_region선택
자막을 찾을 화면 영역을 직접 지정합니다. 비율 좌표 [x1, y1, x2, y2](각 0~1). 예를 들어 하단 자막만 처리하려면 [0, 0.55, 1, 1]. 생략하면 화면 전체에서 자동으로 찾습니다.

한도·과금·에러

과금영상 30초당 1크레딧(올림, 최대 4). 제출 시 4크레딧 선차감 후 실측 환급. 실패 시 전액 환불.
동시 작업키 소유자당 진행 중 최대 5건. 초과 시 429.
인증 실패401. 크레딧 부족 402. 잘못된 입력 400.
결과 보관결과 URL은 추측 불가한 UUID. 처리 직후 다운로드해 보관하세요.