Skip to main content
Las exportaciones renderizan un karaoke terminado como un archivo de vídeo. Usa client.exports.create(...) como punto de entrada principal. Elige target: "local" cuando quieras que el SDK renderice directamente en la máquina actual; de lo contrario, la exportación en la nube es la opción predeterminada.

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

Elige el destino de exportación con target: "cloud" | "local".
const cloud = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});
// => ExportOperation

const local = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
});
// => { outputPath, fileSize, duration, ... }
Usa la nube cuando quieras una exportación asíncrona gestionada. Usa local cuando quieras renderizar directamente en la máquina del caller.

Campos comunes

CampoTipoDescripción
resolution"540p" | "720p" | "1080p"Resolución de salida.
quality"low" | "average" | "high"Calidad de codificación.
playbackRatenumberMultiplicador de velocidad (p. ej., 0.9).
toneFrequencynumberCambio de tono en semitonos.
transparentbooleanRenderiza con un fondo transparente.
presetIdstringAplica un preset antes de renderizar.
stemVolumesRecord<string, number>Overrides de volumen por stem, con clave por id de stem.
settingsOverrideobjectParchea la configuración del proyecto solo para esta exportación.

Ejemplo con volúmenes de stem

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  stemVolumes: {
    vocals: 0,
    instrumental: 1,
    backing: 0.5,
  },
});

Ejemplo con override de configuración

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  settingsOverride: {
    trim: { startSeconds: 5, endSeconds: 180 },
    style: {
      background: { type: "color", color: "#101010" },
    },
  },
});
Consulta Referencia de configuración de renderizado para ver la forma completa de settingsOverride.

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

Cotiza los créditos necesarios para una exportación en la nube sin iniciar la exportación.
const quote = await client.exports.quote("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  transparent: false,
});

console.log(quote.creditsRequired, quote.sufficientBalance);
Las exportaciones locales se ejecutan en la máquina del caller y no usan créditos de exportación en la nube, por lo que quote(...) es solo para exportaciones en la nube.

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

Lista las exportaciones de un proyecto, con paginación.
const exports = await client.exports.list("prj_abc123", {
  page: 1,
  pageSize: 50,
});
page
number
Número de página. El valor predeterminado en el servidor es 1.
pageSize
number
Tamaño de página. El valor predeterminado es 100. Máximo 100.

client.exports.get(exportId, options?)

Obtén una exportación solo por ID, sin conocer el proyecto padre.
const exported = await client.exports.get("exp_xyz");

Exportación local

const result = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
  onProgress(progress) {
    console.log(progress.stage, progress.percent);
  },
});

console.log(result.outputPath);
Usa onDependencyProgress si quieres actualizaciones mientras se instala o verifica la toolchain de renderizado local.

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

Devuelve el payload preparado necesario para renderizar una exportación localmente. Úsalo al integrarte con @youka/remotion u otro renderer local. El servidor devuelve los inputs de composición, las URLs de assets y los parámetros de renderizado sin poner en cola un render en la nube.
const payload = await client.exports.prepareLocal("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});

// Hand payload off to your local renderer
await renderLocally(payload);
client.exports.prepareLocal(...) no inicia un render en la nube. No se consume compute facturable del lado de Youka.

Esperar a una exportación

Las exportaciones en la nube son asíncronas. Usa client.exports.wait(...):
const operation = await client.exports.create("prj_abc123", {
  resolution: "1080p",
});

const finalized = await client.exports.wait(operation, {
  pollIntervalMs: 3_000,
});
console.log("Download from", finalized.url);

Descargar el resultado

Las exportaciones en la nube terminan con una url firmada. Usa el helper integrado para transmitir el archivo al disco. output puede ser un directorio o una ruta de archivo completa, y filename es opcional:
await client.exports.download(finalized, {
  output: "./exports",
});

Qué sigue

  • Tasks — handles de operación y polling avanzado de tareas
  • Presets — configuraciones de render reutilizables
  • Project settings — parchear la configuración activa de un proyecto