# HeyGen Lip Sync API

> HeyGen LipSync: новая звуковая дорожка для готового видео, губы человека в кадре двигаются под неё.

Разработчик: HeyGen
Ключ модели в API: `heygen`

## Подключение в три шага

1. [Получите ключ](https://api.cyhub.ai/docs/connection.md?lang=ru): Ключ создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
2. [Узнайте цену](https://api.cyhub.ai/docs/generations.md?lang=ru): POST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
3. [Запустите задачу и заберите результат](https://api.cyhub.ai/docs/tasks.md?lang=ru): POST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

## Готовый код

Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.

```bash
curl -X POST "https://api.cyhub.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "heygen",
  "settings": {
    "video_url": [
      "https://example.com/speaker.mp4"
    ],
    "audio_url": [
      "https://example.com/new_voice.mp3"
    ]
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```python
import time

import requests

API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

body = {
    "model": "heygen",
    "settings": {
        "video_url": [
            "https://example.com/speaker.mp4",
        ],
        "audio_url": [
            "https://example.com/new_voice.mp3",
        ],
    },
}

response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])
```

```javascript
const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const body = {
  "model": "heygen",
  "settings": {
    "video_url": [
      "https://example.com/speaker.mp4"
    ],
    "audio_url": [
      "https://example.com/new_voice.mp3"
    ]
  }
};

async function main() {
  let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
  if (!response.ok) throw new Error(await response.text());
  let task = await response.json();
  while (task.status === "queued" || task.status === "running") {
    await new Promise((resolve) => setTimeout(resolve, 5000));
    response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
    task = await response.json();
  }
  console.log(task.status, task.result);
}

main();
```

[Получить ключ](https://cyhub.ai/cabinet/keys)

## Цена до запуска

Цены на 15.10.2026: от 3 ₽. Точную цену своих настроек покажет POST /v1/price.

Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.

```bash
curl -X POST "https://api.cyhub.ai/v1/price" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "heygen",
  "settings": {
    "video_url": [
      "https://example.com/speaker.mp4"
    ],
    "audio_url": [
      "https://example.com/new_voice.mp3"
    ]
  }
}'
```

- amount_minor: цена запуска в копейках (для рублей)
- currency: валюта кошелька
- available_minor: сколько сейчас доступно на балансе для новых задач

Цена в этом режиме от 3 ₽, с файлом на 1 с.

## <a id="parameters"></a>Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

### `mode` (Необязательно)

Качество. Быстрый подходит, когда лицо почти не двигается. Точный лучше справляется с поворотами головы, движением и частично закрытым лицом, работает дольше и стоит дороже.

- Тип: Строка
- Допустимые значения: `speed`, `precision`
- По умолчанию: `"speed"`

### `video_url` (Обязательно)

Одна ссылка на исходное видео. Лицо говорящего должно быть хорошо видно, а в видео должна быть своя звуковая дорожка с речью.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

### `audio_url` (Обязательно)

Одна ссылка на новую звуковую дорожку: под неё двигаются губы.

- Тип: Список (Строка, uri)
- Максимум элементов: 1

### `enable_dynamic_duration` (Необязательно)

Подогнать длину готового видео под длину аудио. Включено: длины аудио и видео должны отличаться не больше чем на 15%, иначе HeyGen откажет. Выключено: видео сохраняет свою длину.

- Тип: Да/нет
- По умолчанию: `true`

### `disable_music_track` (Необязательно)

Убрать фоновую музыку из исходного видео.

- Тип: Да/нет
- По умолчанию: `false`

### `enable_speech_enhancement` (Необязательно)

Улучшить звучание речи в готовом видео.

- Тип: Да/нет
- По умолчанию: `false`

### `keep_the_same_format` (Необязательно)

Сохранить разрешение и битрейт исходного видео.

- Тип: Да/нет
- По умолчанию: `true`

### `enable_watermark` (Необязательно)

Поставить на готовое видео водяной знак HeyGen.

- Тип: Да/нет
- По умолчанию: `false`

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

## <a id="input"></a>Входные данные

- Видео передаётся ссылкой на MP4, MOV или WebM до 200 МБ, аудио ссылкой на MP3, WAV, M4A, OGG или FLAC до 50 МБ. Видео не длиннее 10 минут, аудио не длиннее 10 минут.
- Ссылки должны быть открыты всем и начинаться с https://: HeyGen скачивает файлы сам.
- В исходном видео нужна своя звуковая дорожка с речью: по ней HeyGen находит, кто и когда говорит. Видео без звука или с тишиной он не берёт.
- Видео уходит в HeyGen целиком, и цена считается по его полной длине в секундах.

| Поле | Что принимает | Форматы | Файлов | Размер файла до |
|---|---|---|---|---|
| `video_url` | Видео | mp4, mov, webm | 1 | 200 МБ |
| `audio_url` | Аудио | mp3, wav, m4a, ogg, flac | 1 | 50 МБ |

[Как передать файлы](https://api.cyhub.ai/docs/files.md?lang=ru)

## <a id="example"></a>Пример запроса

Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

Новая озвучка видео

```json
{
  "model": "heygen",
  "settings": {
    "video_url": [
      "https://example.com/speaker.mp4"
    ],
    "audio_url": [
      "https://example.com/new_voice.mp3"
    ]
  }
}
```

Точный режим, видео своей длины

```json
{
  "model": "heygen",
  "settings": {
    "mode": "precision",
    "video_url": [
      "https://example.com/interview.mov"
    ],
    "audio_url": [
      "https://example.com/dub.wav"
    ],
    "enable_dynamic_duration": false,
    "disable_music_track": true
  }
}
```

Цена считается при приёме задачи, валюта `RUB`.

[Полный пример запуска](https://api.cyhub.ai/docs/generations.md?lang=ru)

## <a id="output"></a>Результат

- Одно видео с новой звуковой дорожкой.
- Обработка обычно идёт несколько минут, изредка до получаса.

| Вид (kind) | Форматы | Сколько | Пояснение |
|---|---|---|---|
| `video` | mp4 | 1 |  |

Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

```json
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "status": "succeeded",
  "finished_at": "2026-10-01T12:03:41+00:00",
  "result": {
    "caption": "Подпись к результату: модель и настройки",
    "texts": [],
    "files_expire_at": "2026-10-08T12:03:41+00:00",
    "files_expired": false,
    "artifacts": [
      {
        "index": 0,
        "kind": "video",
        "filename": "video.mp4",
        "size": 12582912,
        "caption": "",
        "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
      }
    ]
  }
}
```

[Как читать результат и скачивать файлы](https://api.cyhub.ai/docs/tasks.md?lang=ru#result)

## Смотрите также

- [Нейросеть HeyGen Lip Sync: возможности и цены](https://api.cyhub.ai/models/heygen-lip-sync)
- Похожие модели: [Seedance 2.5 API](https://api.cyhub.ai/models/seedance-2-5/api.md), [Kling 3.0 API](https://api.cyhub.ai/models/kling-3/api.md), [Kling Motion 3.0 API](https://api.cyhub.ai/models/kling-motion/api.md), [Veo 3.1 API](https://api.cyhub.ai/models/veo-3-1/api.md), [Wan 3.0 API](https://api.cyhub.ai/models/wan-3/api.md), [MiniMax H3 (Hailuo 03) API](https://api.cyhub.ai/models/minimax-h3/api.md)
- [Документация API](https://api.cyhub.ai/docs.md?lang=ru)
- [Ошибки API и что с ними делать](https://api.cyhub.ai/docs/errors.md?lang=ru)
