Skip to main content
Un preajuste es una configuración de render reutilizable — fondo, estilo de subtítulos, diseño — que puedes aplicar a cualquier proyecto o exportación. Usa preajustes cuando quieras una apariencia consistente en muchas pistas. Consulta Render settings reference para ver la forma completa de preset y todas las opciones respaldadas por enums.

client.presets.list(options?)

Lista todos los preajustes que pertenecen a la cuenta autenticada.
const presets = await client.presets.list();
presets.forEach((p) => console.log(p.id, p.name, p.isDefault));

client.presets.get(presetId, options?)

Obtén un único preajuste.
const preset = await client.presets.get("preset_abc123");

client.presets.create(body, options?)

Crea un nuevo preajuste.
const preset = await client.presets.create({
  name: "Neon Night",
  preset: {
    background: {
      type: "gradient",
      colors: ["#12001f", "#2f0a57"],
      angle: 90,
    },
    singerTextStyles: {
      0: {
        fontFamily: "Inter",
        textColor: "#00f5ff",
        effectColor: "#ff4fd8",
      },
    },
  },
  isDefault: false,
});
name
string
required
Nombre visible que se muestra en la UI de Youka.
preset
KaraokePreset
required
El cuerpo completo del preajuste. Usa Render settings reference para el mapa de campos legible por humanos, o KaraokePresetSchema.toJSONSchema() para el esquema legible por máquinas.
isDefault
boolean
Marca el nuevo preajuste como el predeterminado de la cuenta. Solo un preajuste puede ser el predeterminado a la vez.
Combínalo con una clave de idempotencia para reintentos seguros:
const preset = await client.presets.create(body, {
  idempotencyKey: "create-neon-night-v1",
});

client.presets.update(presetId, body, options?)

Aplica un patch a un preajuste existente. Pasa cualquier subconjunto de name, preset e isDefault.
const updated = await client.presets.update("preset_abc123", {
  name: "Neon Night v2",
  preset: {
    singerTextStyles: {
      0: { textColor: "#ff2a2a" },
    },
  },
});

client.presets.delete(presetId, options?)

Elimina un preajuste.
await client.presets.delete("preset_abc123", {
  idempotencyKey: "delete-preset_abc123",
});
Eliminar un preajuste no elimina proyectos ni exportaciones que se hayan renderizado previamente con él. Las exportaciones futuras que hagan referencia al preajuste eliminado fallarán.

client.presets.setDefault(presetId, options?)

Marca un preajuste como el predeterminado para nuevos proyectos. Este es un wrapper de conveniencia sobre client.presets.update(presetId, { isDefault: true }).
await client.presets.setDefault("preset_abc123");
Al establecer un nuevo predeterminado, se desactiva automáticamente el anterior.

Descubrir campos válidos

El SDK exporta el esquema Zod que valida los cuerpos de preajustes. Conviértelo a JSON Schema en tiempo de ejecución para agentes y constructores de formularios:
import { KaraokePresetSchema } from "@youka/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
console.log(jsonSchema);
Autores de agentes: llamen a este esquema antes de mutar preajustes para que el modelo conozca los nombres exactos de los campos y los tipos de valores.
Referencia legible por humanos:

Aplicar un preajuste

Aplica preajustes en tres puntos:
await client.projects.create({
  source: { type: "path", path: "./song.mp3" },
  presetId: "preset_abc123",
});

Qué sigue