Integration Guide
Dub a video into multiple languages with a single API call. V100 handles transcription, translation, voice synthesis, and audio mixing automatically.
1
Upload or Stream
Provide a video URL, upload a file, or connect a live stream. V100 accepts MP4, WebM, MKV, HLS, and RTMP sources.
2
Select Languages
Specify target languages and voice preferences. Enable speaker voice matching for natural-sounding output that preserves original speaker identity.
3
Receive Dubbed Output
Get dubbed video files via webhook or poll the status endpoint. Each language is delivered as a separate file or audio track.
// npm install v100-sdk
import { V100 } from 'v100-sdk';
const v100 = new V100('YOUR_API_KEY');
// Dub a video into multiple languages
const job = await v100.dubbing.create({
source: 'https://cdn.example.com/sermon-2026-03-28.mp4',
sourceLanguage: 'en',
targetLanguages: ['es', 'fr', 'pt', 'zh', 'ar'],
voiceMatching: true, // Preserve speaker voice characteristics
preserveBackground: true, // Keep music and ambient audio
lipSync: true, // Align timing to original speech
outputFormat: 'mp4', // mp4, webm, or audio-only (m4a)
webhook: 'https://api.example.com/webhooks/dubbing'
});
// job.id → "dub_abc123"
// job.status → "processing"
// job.languages → ["es", "fr", "pt", "zh", "ar"]
// For real-time live stream dubbing:
const liveDub = await v100.dubbing.startLive({
meetingId: 'mtg_xyz789',
targetLanguages: ['es', 'fr'],
voiceMatching: true,
ttsEngine: 'default' // or 'onnx://your-model-id'
});
// Subscribers select language via:
// v100.meeting.selectAudioLanguage('es')
Or use the REST API directly:
curl -X POST https://api.v100.ai/v1/dubbing \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "https://cdn.example.com/video.mp4",
"sourceLanguage": "en",
"targetLanguages": ["es", "fr", "pt", "zh", "ar"],
"voiceMatching": true,
"preserveBackground": true,
"lipSync": true
}'