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

# Impostazioni del progetto

> Leggi e aggiorna le impostazioni attive di un progetto

Ogni progetto ha impostazioni attive — trim, background, stile dei sottotitoli, layout — che controllano come vengono renderizzate le esportazioni.

Usa le impostazioni del progetto quando vuoi override locali al progetto che non vale la pena raggruppare in un preset condiviso.

Vedi [Render settings reference](/en/render-settings-reference) per la mappa dei campi condivisi `preset`, `settings.style` e `settingsOverride`.

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

Recupera le impostazioni attive di un progetto.

```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?)`

Applica una patch alle impostazioni attive del progetto. Puoi applicare un preset, passare impostazioni grezze o entrambi (prima viene applicato il preset, poi gli override delle impostazioni vengono uniti sopra).

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

### Campi

<ParamField path="presetId" type="string">
  Applica un preset riutilizzabile. Omettilo per lasciare invariato il preset corrente.
</ParamField>

<ParamField path="settings" type="object">
  Patch applicata sopra il preset. Usa `style` per override con la stessa forma del preset,
  oltre a campi locali del progetto come `displayLanguages`, `chordSettings` e
  `duetSingerFilter`.
</ParamField>

### Scoprire i campi validi

Converti lo schema di update in JSON Schema a runtime per scoprire ogni campo valido:

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

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

<Tip>
  Gli agenti dovrebbero chiamare questo prima di modificare le impostazioni del progetto, così da conoscere sempre la forma corrente.
</Tip>

## Pattern comuni

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

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

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

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

## Impostazioni del progetto vs preset

| Domanda                                                        | Usa                                |
| -------------------------------------------------------------- | ---------------------------------- |
| Stesso aspetto su molti progetti?                              | Preset                             |
| Un ritocco una tantum di trim o colore su un progetto singolo? | Impostazioni del progetto          |
| Aspetto base + piccoli override specifici per progetto?        | Preset + impostazioni del progetto |

## Cosa c'è dopo

* [Render settings reference](/en/render-settings-reference) — tutti i percorsi dei campi condivisi e i valori enum
* [Presets](/it/sdk/presets) — configurazioni riutilizzabili
* [Media](/it/sdk/media) — carica sfondi e loghi
* [API project settings](/it/api/project-settings) — lo stesso flusso via HTTP grezzo
* [CLI projects](/it/cli/projects) — lo stesso flusso dal terminale
* [Exports](/it/sdk/exports) — usa `settingsOverride` per ritocchi solo in esportazione
