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

# Configurações do projeto

> Leia e atualize as configurações ativas de um projeto

Todo projeto tem configurações ativas — trim, background, estilo de legenda, layout — que controlam como as exportações são renderizadas.

Use as configurações do projeto quando você quiser substituições locais do projeto que não valem a pena agrupar em um preset compartilhado.

Veja [Render settings reference](/en/render-settings-reference) para o mapa de campos compartilhados de
`preset`, `settings.style` e `settingsOverride`.

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

Busque as configurações ativas de um projeto.

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

Faça patch das configurações ativas do projeto. Você pode aplicar um preset, passar configurações brutas, ou ambos (o preset é aplicado primeiro e, em seguida, as substituições de settings são mescladas por cima).

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

### Campos

<ParamField path="presetId" type="string">
  Aplique um preset reutilizável. Omita para manter o preset atual inalterado.
</ParamField>

<ParamField path="settings" type="object">
  Patch aplicado por cima do preset. Use `style` para substituições no formato de preset,
  além de campos locais do projeto como `displayLanguages`, `chordSettings` e
  `duetSingerFilter`.
</ParamField>

### Descobrindo campos válidos

Converta o schema de update para JSON Schema em tempo de execução para descobrir todos os campos válidos:

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

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

<Tip>
  Agentes devem chamar isso antes de modificar as configurações do projeto para que sempre conheçam
  o formato atual.
</Tip>

## Padrões comuns

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

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

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

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

## Configurações do projeto vs presets

| Pergunta                                          | Use                               |
| ------------------------------------------------- | --------------------------------- |
| Mesmo visual em muitos projetos?                  | Presets                           |
| Ajuste único de trim ou cor em um único projeto?  | Configurações do projeto          |
| Visual base + pequenas substituições por projeto? | Preset + configurações do projeto |

## Próximos passos

* [Render settings reference](/en/render-settings-reference) — todos os caminhos de campos e valores de enum compartilhados
* [Presets](/pt/sdk/presets) — configurações reutilizáveis
* [Media](/pt/sdk/media) — envie backgrounds e logos
* [API project settings](/pt/api/project-settings) — o mesmo fluxo via HTTP bruto
* [CLI projects](/pt/cli/projects) — o mesmo fluxo pelo terminal
* [Exports](/pt/sdk/exports) — use `settingsOverride` para ajustes apenas da exportação
