Tài liệu API

video-dubbing

Lồng tiếng & dịch video AI — Tải video lên, AI tách lời, dịch, lồng tiếng bằng giọng AI khớp mốc thời gian, che phụ đề gốc và xuất ra video mới kèm phụ đề.

type: videooutput: videoTheo tham số — dùng POST /v1/generations/estimate để báo giá

Input — tham số đầu vào

POST/v1/generations

Gửi JSON gồm "model": "video-dubbing" và các tham số dưới đây ở cùng cấp. Tham số không có trong bảng sẽ bị từ chối (400).

Tham sốKiểuGiá trị hỗ trợMô tả
modelrequiredstringvideo-dubbingMã model
media_urlrequiredstring (URL video)
Video / audio gốc — MP4, MOV hoặc MP3 / WAV / M4A. File audio thì kết quả là audio.
target_languagerequiredenum
vienzhjakothidesfrde

Mặc định: vi

Lồng tiếng sang
source_langenum
autovienzhjakothidesfrde

Mặc định: auto

Ngôn ngữ gốc
voice_sourceenum
autooriginalmanual

Mặc định: auto

Giọng đọc
voice_modeenum
singlepair

Mặc định: single

Kiểu chọn giọng

Chỉ có hiệu lực khi voice_source ∈ manual

voiceenum
DDC251VV0002VV0012ECF913VV0041DFE237VV0022EFC483VV0021VV0009VV0024DFE601VV0005BEB861ADC689VV0006AEE454F00277VV0045VI0001VV0003VV0086DBD914VV0019EFC482VI0010BAD084VV0038F06966VI0017VI0005VV0065VV0046CAF969VI0019VV0007F00231F06846VV0048VV0069EDB974VV0059VV0089VV0075F05503VV0020BCB483VV0066EFC481VI0002

Mặc định: DDC251

Giọng đọc — Nghe thử và xem hơn 3.000 giọng (nhiều ngôn ngữ) ở yupvox.com/voices

Chỉ có hiệu lực khi voice_mode ∈ single

voice_codestring

Tối đa 20 ký tự

Hoặc nhập mã giọng khác (tuỳ chọn) — Điền mã giọng thì bỏ qua giọng đã chọn ở trên

Chỉ có hiệu lực khi voice_mode ∈ single

male_voice_idenum
VV0012VV0041VV0009VV0024DFE601BEB861ADC689VV0006AEE454F00277VV0045VI0001VV0019EFC482VI0017VI0005VV0065VV0007F00231VV0048VV0069EDB974VV0059VV0089VV0075VI0002

Mặc định: BEB861

Giọng cho người nói nam

Chỉ có hiệu lực khi voice_mode ∈ pair

female_voice_idenum
DDC251VV0002ECF913DFE237VV0022EFC483VV0021VV0005VV0003VV0086DBD914VI0010BAD084VV0038F06966VV0046CAF969VI0019F06846F05503VV0020BCB483VV0066EFC481

Mặc định: DFE237

Giọng cho người nói nữ

Chỉ có hiệu lực khi voice_mode ∈ pair

sub_mask_modeenum
light_maskeddark_full_maskeddark_maskedlight_full_maskednoneno_subtitle

Mặc định: light_masked

Phụ đề · Kiểu che phụ đề gốc — Chỉ áp dụng cho file video
enable_delogoboolean

true, false

Mặc định: false

AI xoá mờ phụ đề gốc (tự phát hiện và làm mờ chữ cứng trên video)
target_resenum
hdsd

Mặc định: hd

Độ nét & tốc độ render
target_aspectenum
original9:1616:91:1

Mặc định: original

Tỉ lệ khung hình xuất video
  • Tham số file (string URL) nhận link công khai http(s) — máy chủ tự tải về — hoặc URL trả về từ API tải file POST /account/ai/uploads.
  • Bỏ trống tham số không bắt buộc thì dùng giá trị mặc định.

Ví dụ request

curl -X POST https://nov.ai.vn/api/v1/generations \
  -H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
  -d '{
  "model": "video-dubbing",
  "media_url": "https://example.com/video.mp4",
  "target_language": "vi",
  "source_lang": "auto",
  "voice_source": "auto",
  "sub_mask_mode": "light_masked",
  "enable_delogo": false,
  "target_res": "hd",
  "target_aspect": "original"
}'

Output — kết quả trả về

Tác vụ chạy bất đồng bộ. POST /v1/generations trả ngay đối tượng generation với status queued hoặc processing; hỏi lại GET /v1/generations/{id} mỗi 5–10 giây tới khi status là succeeded, failed hoặc cancelled.

GET/v1/generations/{id}
{
  "id": "3f1c...-uuid",
  "object": "generation",
  "code": "T8KQ2M4X",
  "model": "video-dubbing",
  "status": "succeeded",       // queued | processing | succeeded | failed | cancelled
  "progress": 100,
  "cost": 2400,                // số tiền đã trừ
  "currency": "VND",
  "refunded": false,
  "output": {
    "type": "video",
    "files": [{ "url": "https://nov.ai.vn/uploads/ai/outputs/....mp4", "type": "video", "name": "video.mp4" }],
    "text": null
  },
  "error": null,
  "created_at": "2026-10-30T08:00:00.000Z",
  "completed_at": "2026-10-30T08:01:12.000Z"
}
TrườngÝ nghĩa
output.files[].urlLink file kết quả — nên tải về hệ thống của bạn, file trên máy chủ có thể được dọn sau một thời gian.
output.textNội dung văn bản (chỉ có với model trả văn bản).
costSố tiền VND đã trừ vào số dư; lỗi hoặc huỷ thì tự hoàn lại (refunded = true).
errorLý do lỗi khi status = failed.

Báo giá trước khi chạy

POST/v1/generations/estimate

Cùng body với POST /v1/generations, không chạy và không trừ tiền.

# => { "object": "estimate", "model": "video-dubbing", "cost": 2400, "currency": "VND" }
Lấy API key
video-dubbing · Tài liệu API | NOV AI