Skip to main content
Ein Preset ist eine wiederverwendbare Render-Konfiguration — Hintergrund, Untertitelstil, Layout — die du auf jedes Projekt oder jeden Export anwenden kannst. Verwende Presets, wenn du über viele Tracks hinweg ein konsistentes Erscheinungsbild haben möchtest. Siehe Render settings reference für die vollständige preset-Form und jede enum-basierte Option.

client.presets.list(options?)

Listet alle Presets auf, die dem authentifizierten Konto gehören.
const presets = await client.presets.list();
presets.forEach((p) => console.log(p.id, p.name, p.isDefault));

client.presets.get(presetId, options?)

Ruft ein einzelnes Preset ab.
const preset = await client.presets.get("preset_abc123");

client.presets.create(body, options?)

Erstellt ein neues Preset.
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
Anzeigename, der in der Youka-UI angezeigt wird.
preset
KaraokePreset
required
Der vollständige Preset-Body. Verwende Render settings reference für die menschenlesbare Feldzuordnung oder KaraokePresetSchema.toJSONSchema() für das maschinenlesbare Schema.
isDefault
boolean
Markiert das neue Preset als Standard des Kontos. Es kann jeweils nur ein Preset Standard sein.
In Kombination mit einem Idempotency-Key für sichere Wiederholungsversuche:
const preset = await client.presets.create(body, {
  idempotencyKey: "create-neon-night-v1",
});

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

Patcht ein bestehendes Preset. Übergebe eine beliebige Teilmenge von name, preset und isDefault.
const updated = await client.presets.update("preset_abc123", {
  name: "Neon Night v2",
  preset: {
    singerTextStyles: {
      0: { textColor: "#ff2a2a" },
    },
  },
});

client.presets.delete(presetId, options?)

Löscht ein Preset.
await client.presets.delete("preset_abc123", {
  idempotencyKey: "delete-preset_abc123",
});
Das Löschen eines Presets löscht keine Projekte oder Exporte, die zuvor damit gerendert wurden. Zukünftige Exporte, die auf das gelöschte Preset verweisen, werden fehlschlagen.

client.presets.setDefault(presetId, options?)

Markiert ein Preset als Standard für neue Projekte. Dies ist ein Convenience-Wrapper um client.presets.update(presetId, { isDefault: true }).
await client.presets.setDefault("preset_abc123");
Das Setzen eines neuen Standards hebt den vorherigen automatisch auf.

Gültige Felder ermitteln

Das SDK exportiert das Zod-Schema, das Preset-Bodies validiert. Wandle es zur Laufzeit in JSON Schema um — für Agents und Form-Builder:
import { KaraokePresetSchema } from "@youka/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
console.log(jsonSchema);
Agent-Autor:innen: Ruft dieses Schema auf, bevor ihr Presets verändert, damit das Modell die exakten Feldnamen und Werttypen kennt.
Menschenlesbare Referenz:

Ein Preset anwenden

Wende Presets an drei Stellen an:
await client.projects.create({
  source: { type: "path", path: "./song.mp3" },
  presetId: "preset_abc123",
});

Wie geht’s weiter