Skip to content

Avatars · Audio to Video

Integrate

Model id veed/avatars/audio-to-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/veed/avatars/audio-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "avatar_id": "emily_vertical_primary",
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.05 50 API credits your files are measured before the run Run it on this page

Get API key
VEED Lipsync & Avatars Lipsync #audio-to-video

Makes a talking avatar video from an audio file, using a preset avatar chosen by `avatar_id`

VEED · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required audio_url
Drop a file, or
•required

Avatar selected for the video.

POST /run/veed/avatars/audio-to-video?wait=20 quote → $0.05
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/veed/avatars/audio-to-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "avatar_id": "emily_vertical_primary",
    "audio": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Avatars · Audio to Video

Takes an audio file via `audio_url` and a required `avatar_id`, then produces a video of a presenter-style avatar speaking along with the recording. The avatar list includes named vertical presets such as walking and primary or secondary variants, plus generic male and female options. Use it when you already have a voice track and no source footage.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
avatar_idrequired
Typeenum
emily_vertical_primaryemily_vertical_secondarymarcus_vertical_primarymarcus_vertical_secondarymira_vertical_primarymira_vertical_secondaryjasmine_vertical_primaryjasmine_vertical_secondaryjasmine_vertical_walkingaisha_vertical_walkingelena_vertical_primaryelena_vertical_secondaryany_male_vertical_primaryany_female_vertical_primaryany_male_vertical_secondaryany_female_vertical_secondary
+12 moreany_female_vertical_walkingemily_primaryemily_sidemarcus_primarymarcus_sideaisha_walkingelena_primaryelena_sideany_male_primaryany_female_primaryany_male_sideany_female_side
Avatar selected for the video.
audio_urlrequired audio
Typeurl · audio
≤ 2,083 characters
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "veed/avatars/audio-to-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 50,
    "usd": "0.05",
    "charged": 50,
    "refunded": 0
  },
  "input": {
    "avatar_id": "emily_vertical_primary",
    "audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}

More models: Lipsync & Avatars

For AI agents: this page as Markdown is at https://doitong.com/developers/models/veed/avatars/audio-to-video.md. All models and guides: https://doitong.com/developers/llms.txt