Skip to main content
Exports render a karaoke or lyric video from a project. Use client.exports.create(...) as the main entrypoint. Pick target: "local" when you want the SDK to render directly on the current machine; otherwise cloud export is the default.

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

Choose the export target with target: "cloud" | "local".
Use cloud when you want a managed async export. Use local when you want to render directly on the caller’s machine.

Common fields

Use fps: 60 for smoother motion. Cloud quotes apply a 1.5x credit multiplier at 60 fps. Transparent 60 fps cloud exports are available when the selected duration and resolution fit cloud limits.

Example with stem volumes

Example with settings override

See Render settings reference for the full settingsOverride shape.

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

Quote the credits required for a cloud export without starting the export.
Local exports run on the caller’s machine and do not use cloud export credits, so quote(...) is only for cloud exports.

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

List exports for a project, with pagination.
number
Page number. Defaults to 1 on the server.
number
Page size. Defaults to 100. Maximum 100.

client.exports.get(exportId, options?)

Fetch an export by ID alone, without knowing the parent project.

Local export

Use onDependencyProgress if you want updates while the local render toolchain is being installed or verified.

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

Return the prepared payload needed to render an export locally. Use this when integrating with @youka/remotion or another local renderer. The server returns the composition inputs, asset URLs, and render parameters without queuing a cloud render.
client.exports.prepareLocal(...) does not start a cloud render. No billable compute is consumed on the Youka side.

Waiting for an export

Cloud exports are async. Use client.exports.wait(...):

Downloading the result

Cloud exports finish with a signed url. Use the built-in helper to stream the file to disk. output can be either a directory or a full file path, and filename is optional:

What’s next

  • Tasks — operation handles and advanced task polling
  • Presets — reusable render configurations
  • Project settings — patch a project’s active settings

Version and timing snapshots

List versions with client.projects.versions.list(projectId). Pass versionId to exports.create, exports.quote, or exports.prepareLocal. Styling belongs to that version, while the selected alignment belongs to the project. Cloud export operation handles and local payloads include versionId, alignmentId, and alignmentRevision. These fields identify the same timing snapshot used to construct the composition. A later preparation or export may observe newer edits. Save the prepared payload if an external renderer must use that exact snapshot, and refresh expired signed media URLs. To silence every stem, build stemVolumes from the project’s stem IDs with every value set to zero. Transparent local export uses ProRes 4444 in a MOV container. A silent output may still have an audio stream. See Automate lyric videos for the complete export example.