Video Translate Quickstart

Translate and lip-sync any video to new languages

Translate your video content to multiple languages with automatic lip-syncing and voice cloning. The Video Translate endpoint handles speech translation, voice matching, and mouth movement synchronization.

Create a video

Send a POST request with your video URL and the target languages.

curl -X POST "https://api.d-id.com/translations" \
  -H "Authorization: Basic <YOUR KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "source_url": "https://your-storage.com/video.mp4",
    "languages": ["French", "Spanish"]
  }'
{
  "translations": [
    {
      "id": "trs_abc123",
      "name": "video-french",
      "status": "validating",
      "group_id": "grp_xyz789"
    },
    {
      "id": "trs_def456",
      "name": "video-spanish",
      "status": "validating",
      "group_id": "grp_xyz789"
    }
  ]
}

Save the id for each translation — you'll need them to check the status and retrieve the videos.

Supported languages: Arabic, Chinese, Dutch, English, French, German, Italian, Japanese, Korean, Portuguese, Russian, Spanish, and more.

Check the video status

Poll the GET endpoint for each translation until the status changes to done. Translation typically takes 1-5 minutes depending on video length.

curl -X GET "https://api.d-id.com/translations/trs_abc123" \
  -H "Authorization: Basic <YOUR KEY>"
{
  "id": "trs_abc123",
  "status": "done",
  "result_url": "https://result.d-id.com/.../video.mp4"
}

Poll until status is done. Translation typically takes 1-5 minutes depending on video length.

Get your videos

Once the status is done, the result_url field contains a direct link to your translated video. Each language creates a separate output video.

curl -O "https://result.d-id.com/.../video.mp4"

The video URL is valid for 24 hours. Store the video or re-fetch the translation to get a fresh URL.