Skip to main content
Экспорт рендерит караоке или лирик-видео из проекта. Используйте client.exports.create(...) как основную точку входа. Выбирайте target: "local", когда хотите, чтобы SDK рендерил прямо на текущей машине; в противном случае по умолчанию используется облачный экспорт.

client.exports.create(projectId, input, options?)

Выберите цель экспорта с помощью target: "cloud" | "local".
Используйте облако, когда нужен управляемый асинхронный экспорт. Используйте локальный режим, когда хотите рендерить напрямую на машине вызывающей стороны.

Общие поля

Используйте fps: 60 для более плавного движения. Облачные квоты применяют множитель кредитов 1.5x при 60 fps. Прозрачные облачные экспорты в 60 fps доступны, когда выбранная длительность и разрешение укладываются в облачные лимиты.

Пример с громкостью стемов

Пример с переопределением настроек

См. Справочник настроек рендера для полной формы settingsOverride.

client.exports.quote(projectId, input, options?)

Оцените количество кредитов, необходимых для облачного экспорта, не запуская экспорт.
Локальный экспорт выполняется на машине вызывающей стороны и не расходует кредиты облачного экспорта, поэтому quote(...) предназначен только для облачных экспортов.

client.exports.list(projectId, input?, options?)

Список экспортов для проекта с пагинацией.
number
Номер страницы. По умолчанию на сервере — 1.
number
Размер страницы. По умолчанию — 100. Максимум 100.

client.exports.get(exportId, options?)

Получите экспорт только по ID, не зная родительский проект.

Локальный экспорт

Используйте onDependencyProgress, если хотите получать обновления во время установки или проверки локального инструментария рендера.

client.exports.prepareLocal(projectId, body, options?)

Возвращает подготовленный payload, необходимый для локального рендера экспорта. Используйте это при интеграции с @youka/remotion или другим локальным рендерером. Сервер возвращает входные данные композиции, URL ассетов и параметры рендера без постановки облачного рендера в очередь.
client.exports.prepareLocal(...) не запускает облачный рендер. Никакие платные вычисления на стороне Youka не потребляются.

Ожидание экспорта

Облачный экспорт — асинхронный. Используйте client.exports.wait(...):

Скачивание результата

Облачный экспорт завершается подписанным url. Используйте встроенный хелпер, чтобы потоково сохранить файл на диск. output может быть либо директорией, либо полным путём к файлу, а filename — необязательный:

Что дальше

  • Tasks — хендлы операций и продвинутое опрашивание задач
  • Presets — переиспользуемые конфигурации рендера
  • Project settings — патч активных настроек проекта

Снимки версии и таймингов

Список версий: client.projects.versions.list(projectId). Передайте versionId в exports.create, exports.quote или exports.prepareLocal. Стилизация относится к этой версии, а выбранное выравнивание относится к проекту. Хендлы операций облачного экспорта и локальные payload’ы включают versionId, alignmentId и alignmentRevision. Эти поля идентифицируют тот же снимок таймингов, который использовался для построения композиции. Более поздняя подготовка или экспорт может увидеть более новые правки. Сохраните подготовленный payload, если внешнему рендереру нужно использовать именно этот снимок, и обновляйте истёкшие подписанные URL медиа. Чтобы заглушить каждый стем, соберите stemVolumes из stem ID проекта, установив все значения в ноль. Прозрачный локальный экспорт использует ProRes 4444 в контейнере MOV. Беззвучный результат всё равно может содержать аудиопоток. См. Automate lyric videos для полного примера экспорта.