Loading...
Loading...
Localize and dub videos using each::sense AI. Translate audio, generate subtitles, clone voices, and create lip-synced multilingual versions of your video content.
npx skill4agent add eachlabs/skills video-localizationcurl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this English video into Spanish with lip sync"}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/my-video.mp4"]
}'| Language | Code | Dubbing | Subtitles | Voice Cloning |
|---|---|---|---|---|
| English | en | Yes | Yes | Yes |
| Spanish | es | Yes | Yes | Yes |
| French | fr | Yes | Yes | Yes |
| German | de | Yes | Yes | Yes |
| Italian | it | Yes | Yes | Yes |
| Portuguese | pt | Yes | Yes | Yes |
| Chinese | zh | Yes | Yes | Yes |
| Japanese | ja | Yes | Yes | Yes |
| Korean | ko | Yes | Yes | Yes |
| Hindi | hi | Yes | Yes | Yes |
| Arabic | ar | Yes | Yes | Yes |
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate and dub this English video into Spanish. Use a natural-sounding voice that matches the original speaker tone and energy."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/english-video.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this video from English to French with full lip sync. The lip movements should match the French audio perfectly. Maintain the original background music and sound effects."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/presentation-video.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Generate subtitles for this video. First transcribe the English audio, then create Spanish subtitles. Output both SRT files and a video with burned-in Spanish subtitles."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/interview.mp4"]
}'# Start multi-language localization session
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "I need to localize this product video into Spanish, French, and German. Start with Spanish dubbing with lip sync."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001",
"video_urls": ["https://example.com/product-demo.mp4"]
}'
# Continue with French version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Now create the French version with the same quality settings."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001"
}'
# Continue with German version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Finally, create the German version."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"session_id": "localization-project-001"
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this video from English to Japanese using voice cloning. Clone the original speaker voice so they sound like themselves speaking Japanese. Maintain their unique voice characteristics, tone, and speaking style."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/ceo-message.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this marketing video for the Latin American market. Translate to Spanish with a neutral Latin American accent, not Spain Spanish. Apply lip sync and ensure the messaging resonates with the target audience. Keep the energy and excitement of the original."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/brand-ad.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this employee training video from English to Mandarin Chinese. Use clear, professional narration suitable for corporate training. Include both dubbed audio and Chinese subtitles for accessibility. Technical terms should be accurately translated."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/onboarding-training.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this YouTube video for Portuguese-speaking audiences (Brazilian Portuguese). Dub the narration with lip sync, generate Portuguese subtitles in SRT format, and create a localized thumbnail with Portuguese text overlay."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/youtube-tutorial.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Localize this 30-second ad for the German market. Translate and dub to German with lip sync. Ensure the call-to-action is culturally appropriate. Keep the same pacing and emotional impact as the original English version."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/product-ad-30s.mp4"]
}'curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Translate this e-learning module from English to Korean. The instructor should be dubbed with voice cloning to maintain authenticity. Generate Korean subtitles and ensure all on-screen text references are noted for manual localization. Educational terminology must be accurately translated."}],
"model": "eachsense/beta",
"stream": true,
"mode": "max",
"video_urls": ["https://example.com/course-module-1.mp4"]
}'| Mode | Best For | Speed | Quality |
|---|---|---|---|
| Final production, client deliverables, broadcast | Slower | Highest quality lip sync and voice |
| Drafts, internal review, quick previews | Faster | Good quality, faster turnaround |
ecomaxsession_id# Initial localization request
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Dub this video into Spanish with lip sync"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz",
"video_urls": ["https://example.com/source-video.mp4"]
}'
# Request adjustments based on review
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "The voice sounds too formal. Can you make it more conversational and energetic?"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz"
}'
# Add subtitles to the approved version
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Add Spanish subtitles to this dubbed version"}],
"model": "eachsense/beta",
"stream": true,
"session_id": "dubbing-project-xyz"
}'# Use eco mode for batch processing drafts
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-H "Accept: text/event-stream" \
-d '{
"messages": [{"role": "user", "content": "Create Spanish dubbed versions of these 3 marketing videos with subtitles"}],
"model": "eachsense/beta",
"stream": true,
"mode": "eco",
"video_urls": [
"https://example.com/video1.mp4",
"https://example.com/video2.mp4",
"https://example.com/video3.mp4"
]
}'| Error | Cause | Solution |
|---|---|---|
| Insufficient balance | Top up at eachlabs.ai |
| Source video exceeds limits | Split into shorter segments |
| No speech in video | Ensure video contains speech audio |
| No visible face for lip sync | Use videos with visible speakers |
| Timeout | Complex generation | Set client timeout to minimum 10 minutes |
each-sensevideo-generationvideo-editvoice-audio