HeyGen Lip Sync API
HeyGen LipSync: новая звуковая дорожка для готового видео, губы человека в кадре двигаются под неё.
Для нейросети:Скачать .mdВся документация .mdОткрыть как текст
Подключение в три шага
- Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
- Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
- Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.
Готовый код
Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.
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"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"])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 -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)Максимум элементов: 1audio_urlОбязательноОдна ссылка на новую звуковую дорожку: под неё двигаются губы.
Тип: Список (Строка, uri)Максимум элементов: 1enable_dynamic_durationНеобязательноПодогнать длину готового видео под длину аудио. Включено: длины аудио и видео должны отличаться не больше чем на 15%, иначе HeyGen откажет. Выключено: видео сохраняет свою длину.
Тип: Да/нетПо умолчанию:truedisable_music_trackНеобязательноУбрать фоновую музыку из исходного видео.
Тип: Да/нетПо умолчанию:falseenable_speech_enhancementНеобязательноУлучшить звучание речи в готовом видео.
Тип: Да/нетПо умолчанию:falsekeep_the_same_formatНеобязательноСохранить разрешение и битрейт исходного видео.
Тип: Да/нетПо умолчанию:trueenable_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, webm | 1 | 200 МБ |
audio_url | Аудио | mp3, wav, m4a, ogg, flac | 1 | 50 МБ |
Пример запроса
Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.
Новая озвучка видео
{
"model": "heygen",
"settings": {
"video_url": [
"https://example.com/speaker.mp4"
],
"audio_url": [
"https://example.com/new_voice.mp3"
]
}
}Точный режим, видео своей длины
{
"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) | Форматы | Сколько | Пояснение |
|---|---|---|---|
video | mp4 | 1 |
Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.
{
"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