> ## 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.

# Projekteinstellungen

> Aktive Einstellungen eines Projekts lesen und aktualisieren

Jedes Projekt hat aktive Einstellungen — Zuschnitt, Hintergrund, Untertitelstil, Layout — die steuern, wie Exporte gerendert werden.

Verwende Projekteinstellungen, wenn du projektlokale Überschreibungen möchtest, die sich nicht lohnen, in ein gemeinsames Preset zu packen.

Siehe [Render settings reference](/en/render-settings-reference) für die gemeinsame Feldzuordnung von
`preset`, `settings.style` und `settingsOverride`.

## `client.projects.getSettings(projectId, options?)`

Rufe die aktiven Einstellungen eines Projekts ab.

```ts theme={null}
const config = await client.projects.getSettings("prj_abc123");
console.log(
  config.settings.trim,
  config.settings.style?.background,
  config.settings.displayLanguages,
);
```

## `client.projects.updateSettings(projectId, body, options?)`

Patche die aktiven Projekteinstellungen. Du kannst ein Preset anwenden, rohe Einstellungen übergeben oder beides (das Preset wird zuerst angewendet, anschließend werden die Einstellungen darüber hinaus zusammengeführt).

```ts theme={null}
const updated = await client.projects.updateSettings("prj_abc123", {
  presetId: "preset_abc123",
  settings: {
    trim: { startSeconds: 5, endSeconds: 180 },
  },
});
```

### Fields

<ParamField path="presetId" type="string">
  Wende ein wiederverwendbares Preset an. Lasse es weg, um das aktuelle Preset unverändert zu lassen.
</ParamField>

<ParamField path="settings" type="object">
  Patch, der oberhalb des Presets angewendet wird. Verwende `style` für Preset-förmige Überschreibungen,
  sowie projektlokale Felder wie `displayLanguages`, `chordSettings` und
  `duetSingerFilter`.
</ParamField>

### Gültige Felder ermitteln

Wandle das Update-Schema zur Laufzeit in JSON Schema um, um jedes gültige Feld zu entdecken:

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

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();
console.log(JSON.stringify(schema, null, 2));
```

<Tip>
  Agents sollten dies vor dem Ändern von Projekteinstellungen aufrufen, damit sie immer
  die aktuelle Struktur kennen.
</Tip>

## Häufige Muster

<Tabs>
  <Tab title="Zuschnitt">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        trim: { startSeconds: 5.0, endSeconds: 180.0 },
      },
    });
    ```
  </Tab>

  <Tab title="Hintergrundfarbe">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        style: {
          background: { type: "color", color: "#101010" },
        },
      },
    });
    ```
  </Tab>

  <Tab title="Anzeigesprachen">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        displayLanguages: ["en", "es"],
      },
    });
    ```
  </Tab>

  <Tab title="Preset anwenden">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      presetId: "preset_abc123",
    });
    ```
  </Tab>
</Tabs>

## Projekteinstellungen vs Presets

| Frage                                             | Verwenden                     |
| ------------------------------------------------- | ----------------------------- |
| Gleiches Erscheinungsbild über viele Projekte?    | Presets                       |
| Einmaliger Zuschnitt- oder Farb-Tweak im Projekt? | Projekteinstellungen          |
| Basis-Look + kleine projektspezifische Overrides? | Preset + Projekteinstellungen |

## Wie geht es weiter

* [Render settings reference](/en/render-settings-reference) — alle gemeinsamen Feldpfade und Enum-Werte
* [Presets](/de/sdk/presets) — wiederverwendbare Konfigurationen
* [Media](/de/sdk/media) — Hintergründe und Logos hochladen
* [API project settings](/de/api/project-settings) — derselbe Ablauf über reines HTTP
* [CLI projects](/de/cli/projects) — derselbe Ablauf aus dem Terminal
* [Exports](/de/sdk/exports) — `settingsOverride` für export-spezifische Tweaks verwenden
