CyHUB
EnglishПолучить ключ

HeyGen Lip Sync API

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

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

Для нейросети:Скачать .mdВся документация .mdОткрыть как текст

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

  1. Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
  2. Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
  3. Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

Готовый код

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

cURL
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"])
Node.js
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();
Получить ключ

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

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

РежимЦена
HeyGen Lip Sync с файлом на 1 сот 3 ₽

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

cURL
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 с.

Параметры

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

modeНеобязательно

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

Тип: СтрокаДопустимые значения: speedprecisionПо умолчанию: "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.

Входные данные

  • Видео передаётся ссылкой на MP4, MOV или WebM до 200 МБ, аудио ссылкой на MP3, WAV, M4A, OGG или FLAC до 50 МБ. Видео не длиннее 10 минут, аудио не длиннее 10 минут.
  • Ссылки должны быть открыты всем и начинаться с https://: HeyGen скачивает файлы сам.
  • В исходном видео нужна своя звуковая дорожка с речью: по ней HeyGen находит, кто и когда говорит. Видео без звука или с тишиной он не берёт.
  • Видео уходит в HeyGen целиком, и цена считается по его полной длине в секундах.
ПолеЧто принимаетФорматыФайловРазмер файла до
video_urlВидеоmp4, mov, webm1200 МБ
audio_urlАудиоmp3, wav, m4a, ogg, flac150 МБ
Как передать файлы

Пример запроса

Отправьте этот 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.

Полный пример запуска

Результат

  • Одно видео с новой звуковой дорожкой.
  • Обработка обычно идёт несколько минут, изредка до получаса.
Вид (kind)ФорматыСколькоПояснение
videomp41

Так выглядит готовая задача в ответе 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"
      }
    ]
  }
}
Как читать результат и скачивать файлы

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

Попробуйте HeyGen Lip Sync через API

Один ключ открывает все модели CyHUB. Оплата в рублях, цену видно до запуска.

Получить ключ API