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

# Paramètres du projet

> Lire et mettre à jour les paramètres actifs d'un projet

Chaque projet possède des paramètres actifs — trim, background, style de sous-titres, layout — qui contrôlent la façon dont les exports sont rendus.

Utilisez les paramètres du projet lorsque vous voulez des surcharges locales au projet qui ne valent pas la peine d’être regroupées dans un preset partagé.

Voir [Render settings reference](/en/render-settings-reference) pour la cartographie des champs partagés `preset`, `settings.style` et `settingsOverride`.

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

Récupère les paramètres actifs d’un projet.

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

Applique un patch aux paramètres actifs du projet. Vous pouvez appliquer un preset, passer des paramètres bruts, ou les deux (le preset est appliqué en premier, puis les surcharges de paramètres sont fusionnées par-dessus).

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

### Champs

<ParamField path="presetId" type="string">
  Applique un preset réutilisable. Omettez-le pour laisser le preset actuel inchangé.
</ParamField>

<ParamField path="settings" type="object">
  Patch appliqué par-dessus le preset. Utilisez `style` pour des surcharges au format du preset,
  ainsi que des champs locaux au projet comme `displayLanguages`, `chordSettings` et
  `duetSingerFilter`.
</ParamField>

### Découvrir les champs valides

Convertissez le schéma de mise à jour en JSON Schema à l’exécution pour découvrir chaque champ valide :

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

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

<Tip>
  Les agents devraient appeler ceci avant de modifier les paramètres du projet afin de toujours connaître
  la structure actuelle.
</Tip>

## Modèles courants

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

  <Tab title="Couleur d’arrière-plan">
    ```ts theme={null}
    await client.projects.updateSettings("prj_abc123", {
      settings: {
        style: {
          background: { type: "color", color: "#101010" },
        },
      },
    });
    ```
  </Tab>

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

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

## Paramètres du projet vs presets

| Question                                                          | Utiliser                      |
| ----------------------------------------------------------------- | ----------------------------- |
| Même apparence sur de nombreux projets ?                          | Presets                       |
| Ajustement ponctuel du trim ou de la couleur sur un seul projet ? | Paramètres du projet          |
| Apparence de base + petites surcharges spécifiques au projet ?    | Preset + paramètres du projet |

## Et ensuite

* [Render settings reference](/en/render-settings-reference) — tous les chemins de champs partagés et les valeurs enum
* [Presets](/fr/sdk/presets) — configurations réutilisables
* [Media](/fr/sdk/media) — importer des arrière-plans et des logos
* [API project settings](/fr/api/project-settings) — le même flux via HTTP brut
* [CLI projects](/fr/cli/projects) — le même flux depuis le terminal
* [Exports](/fr/sdk/exports) — utilisez `settingsOverride` pour des ajustements uniquement pour l’export
