Node.js 로 한 번에(npm vidia-api)
패키지 고르기 → 견적(무료) → 사용자가 금액에 동의한 뒤 제작 시작 → 완성 대기 → 영상 받기. 키는 환경 변수 VIDIA_API_KEY 에서 읽습니다.
import VidiaClient from 'vidia-api';
const vidia = new VidiaClient();
const { items } = await vidia.listPackages({ format: 'shorts', q: '건강' });
const pkg = await vidia.getPackage(items[0].slug);
const input = { topic: '하품은 왜 옮을까?' };
const quote = await vidia.quote({ package: pkg.slug, input }); // 무료
const run = await vidia.startRun({ package: pkg.slug, input, quote, confirm: true });
const done = await vidia.waitForRun(run.id);
if (done.state === 'COMPLETED') await vidia.downloadVideo(done.id, './video.mp4');
else console.log(done.actionNeeded || done.error);
0. 패키지 찾기
GET /api/v1/packages 로 공개 패키지를 찾고, GET /api/v1/packages/:slug 로 넣을 값(입력 칸)을 확인합니다.
curl "https://vidia.kr/api/v1/packages?format=shorts&q=건강" \
-H "Authorization: Bearer $VIDIA_API_KEY"
1. 견적(무료)
POST /api/v1/quotes 로 패키지와 입력값을 보내면 최소·권장 예산과 견적 번호가 옵니다. 포인트는 빠지지 않습니다.
curl -X POST https://vidia.kr/api/v1/quotes \
-H "Authorization: Bearer $VIDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"package":"<패키지 slug>","input":{"title":"..."}}'
2. 제작 시작
run 권한 키로 POST /api/v1/runs. 견적 번호·예산·confirm:true·idempotency_key 가 필요하고, 같은 키로 다시 보내면 같은 제작을 돌려줍니다.
curl -X POST https://vidia.kr/api/v1/runs \
-H "Authorization: Bearer $VIDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"quote_id":"<견적 번호>","budget":8000,"confirm":true,"idempotency_key":"order-1234"}'
3. 진행 확인·결과물
GET /api/v1/runs/:id 로 진행 위치와 예상 남은 시간을, 완성 뒤 GET /api/v1/runs/:id/files 로 1시간짜리 다운로드 링크를 받습니다.
curl https://vidia.kr/api/v1/runs/<제작 번호>/files \
-H "Authorization: Bearer $VIDIA_API_KEY"