> ## Documentation Index
> Fetch the complete documentation index at: https://docs.youka.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Presets

> Wiederverwendbare Render-Konfigurationen — erstellen, aktualisieren, auflisten und als Account-Standard festlegen

Ein Preset ist eine wiederverwendbare Render-Konfiguration — Hintergrund, Untertitel-Stil, Layout — die du auf jedes Projekt oder jeden Export anwenden kannst. Verwende Presets, wenn du über viele Tracks hinweg ein konsistentes Erscheinungsbild brauchst.

Siehe [Render settings reference](/en/render-settings-reference) für die vollständige
`preset`-Struktur und jede enum-gestützte Option.

## Wann du ein Preset verwenden solltest

<Columns cols={2}>
  <Card title="Verwende ein Preset, wenn…" icon="check">
    Du für viele Projekte dasselbe Erscheinungsbild möchtest und es an einer
    Stelle aktualisieren willst.
  </Card>

  <Card title="Verwende Projekteinstellungen, wenn…" icon="sliders" href="/de/api/project-settings">
    Du projektlokale Overrides brauchst, die sich nicht zu teilen lohnen.
  </Card>
</Columns>

## Endpunkte

| Method   | Path                  | Zweck                                                 |
| -------- | --------------------- | ----------------------------------------------------- |
| `GET`    | `/presets`            | Presets für den authentifizierten Account auflisten.  |
| `POST`   | `/presets`            | Ein neues Preset erstellen.                           |
| `GET`    | `/presets/{presetId}` | Ein einzelnes Preset abrufen.                         |
| `PATCH`  | `/presets/{presetId}` | Name, Body aktualisieren oder als Standard festlegen. |
| `DELETE` | `/presets/{presetId}` | Ein Preset löschen.                                   |

Vollständige Request- und Response-Schemas findest du unter **API reference** in der Sidebar.

## Ein Preset erstellen

```bash theme={null}
curl -X POST https://api.youka.io/de/api/v1/presets \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: create-neon-night-v1" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night",
    "preset": {
      "background": {
        "type": "gradient",
        "colors": ["#12001f", "#2f0a57"],
        "angle": 90
      },
      "singerTextStyles": {
        "0": {
          "fontFamily": "Inter",
          "textColor": "#00f5ff",
          "effectColor": "#ff4fd8"
        }
      }
    },
    "isDefault": false
  }'
```

Die Response enthält die neue `presetId`. Speichere sie und referenziere sie aus Projekten oder Exporten.

<Tip>
  Kombiniere jedes `POST` mit einem Idempotency-Key. Wenn du denselben Key mit demselben
  Payload wiederverwendest, wird das ursprüngliche Preset zurückgegeben, statt ein Duplikat zu erstellen.
</Tip>

## Gültige Preset-Felder ermitteln

Presets werden serverseitig gegen das `KaraokePresetSchema` validiert. Das SDK exportiert dieses Schema, sodass du es zur Laufzeit in JSON Schema konvertieren kannst:

```ts theme={null}
import { KaraokePresetSchema } from "@youka/de/sdk";

const jsonSchema = KaraokePresetSchema.toJSONSchema();
```

Über die CLI:

```bash theme={null}
youka preset schema --json
```

Agent-Autoren sollten dies aufrufen, bevor sie Presets verändern, damit das Modell jedes gültige Feld und jeden Werttyp kennt.

Gut lesbare Referenz:

* [Render settings reference](/en/render-settings-reference)
* [CLI presets](/de/cli/presets)
* [SDK presets](/de/sdk/presets)

## Ein Preset aktualisieren

```bash theme={null}
curl -X PATCH https://api.youka.io/de/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night v2",
    "preset": {
      "singerTextStyles": {
        "0": {
          "textColor": "#ff2a2a"
        }
      }
    }
  }'
```

Übergebe eine beliebige Teilmenge von `name` und `preset`. Felder, die du nicht einschließt, bleiben unverändert.

## Das Standard-Preset festlegen

Jeder Account hat höchstens ein Standard-Preset, das automatisch auf neue Projekte angewendet wird.

```bash theme={null}
curl -X PATCH https://api.youka.io/de/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "isDefault": true
  }'
```

Wenn du ein neues Standard-Preset setzt, wird das vorherige automatisch zurückgesetzt.

## Ein Preset anwenden

Du kannst ein Preset an drei Stellen referenzieren:

| Wo                         | Feld                                                 |
| -------------------------- | ---------------------------------------------------- |
| Bei der Projekterstellung  | `presetId` in `POST /projects`                       |
| Jederzeit in einem Projekt | `presetId` in `PATCH /projects/{projectId}/settings` |
| Beim Export                | `presetId` in `POST /projects/{projectId}/exports`   |

Beispiel beim Export:

```bash theme={null}
curl -X POST https://api.youka.io/de/api/v1/projects/prj_abc/exports \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "presetId": "preset_abc123",
    "resolution": "1080p",
    "quality": "high"
  }'
```

## Ein Preset löschen

```bash theme={null}
curl -X DELETE https://api.youka.io/de/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: delete-preset_abc123"
```

<Warning>
  Das Löschen eines Presets hat keine Auswirkungen auf Projekte oder Exporte, die zuvor
  damit gerendert wurden. Zukünftige Exporte, die das gelöschte Preset referenzieren, schlagen fehl.
</Warning>

## Wie es weitergeht

* [Render settings reference](/en/render-settings-reference) — alle geteilten Feldpfade und Enum-Werte
* [Media](/de/api/media) — wird aus Preset-Bodies referenziert
* [Project settings](/de/api/project-settings) — ein Preset auf ein Projekt anwenden
* [CLI presets](/de/cli/presets) — derselbe Ablauf im Terminal
* [SDK presets](/de/sdk/presets) — dieselben Endpunkte in TypeScript
