Skip to main content
Uma predefinição é uma configuração de renderização reutilizável — fundo, estilo de legenda, layout — que você pode aplicar a qualquer projeto ou exportação. Use predefinições quando você tiver um visual consistente em muitas faixas. Veja Render settings reference para o formato completo de preset e todas as opções baseadas em enum.

client.presets.list(options?)

Liste todas as predefinições pertencentes à conta autenticada.
const presets = await client.presets.list();
presets.forEach((p) => console.log(p.id, p.name, p.isDefault));

client.presets.get(presetId, options?)

Busque uma única predefinição.
const preset = await client.presets.get("preset_abc123");

client.presets.create(body, options?)

Crie uma nova predefinição.
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
Nome de exibição mostrado na UI do Youka.
preset
KaraokePreset
required
O corpo completo da predefinição. Use Render settings reference para o mapa de campos legível para humanos, ou KaraokePresetSchema.toJSONSchema() para o schema legível por máquina.
isDefault
boolean
Marque a nova predefinição como padrão da conta. Apenas uma predefinição pode ser a padrão por vez.
Combine com uma chave de idempotência para novas tentativas seguras:
const preset = await client.presets.create(body, {
  idempotencyKey: "create-neon-night-v1",
});

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

Aplique um patch em uma predefinição existente. Passe qualquer 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?)

Exclua uma predefinição.
await client.presets.delete("preset_abc123", {
  idempotencyKey: "delete-preset_abc123",
});
Excluir uma predefinição não exclui projetos nem exportações que foram anteriormente renderizados com ela. Exportações futuras que referenciem a predefinição excluída falharão.

client.presets.setDefault(presetId, options?)

Marque uma predefinição como padrão para novos projetos. Este é um wrapper de conveniência em torno de client.presets.update(presetId, { isDefault: true }).
await client.presets.setDefault("preset_abc123");
Definir um novo padrão remove automaticamente o padrão anterior.

Descobrindo campos válidos

O SDK exporta o schema Zod que valida corpos de predefinição. Converta-o para JSON Schema em runtime para agentes e construtores de formulários:
import { KaraokePresetSchema } from "@youka/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
console.log(jsonSchema);
Autores de agentes: chame este schema antes de modificar predefinições para que o modelo saiba os nomes exatos dos campos e os tipos de valores.
Referência legível para humanos:

Aplicando uma predefinição

Aplique predefinições em três pontos:
await client.projects.create({
  source: { type: "path", path: "./song.mp3" },
  presetId: "preset_abc123",
});

Próximos passos