---
updatedAt: 2026-02-08T21:20:01.000Z
agentTools:
  projectIndex: https://docs.d-id.com/llms.txt
---

# Video Translate

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.

<CoolSteps name="video-translate-quickstart">
  <CoolStep number={1} title="Create a video">
    Send a POST request with your video URL and the target languages.

    ```yaml Request
    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"]
      }'
    ```

    ```json Response
    {
      "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.
  </CoolStep>

  <CoolStep number={2} title="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.

    ```yaml Request
    curl -X GET "https://api.d-id.com/translations/trs_abc123" \
      -H "Authorization: Basic <YOUR KEY>"
    ```

    ```json Response
    {
      "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.
  </CoolStep>

  <CoolStep number={3} title="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
    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.
  </CoolStep>
</CoolSteps>