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

# Configuración del proyecto

> Lee y actualiza la configuración activa de un proyecto

Cada proyecto tiene una configuración activa — recorte, fondo, estilo de subtítulos, diseño — que controla cómo se renderizan las exportaciones.

Usa la configuración del proyecto cuando quieras anulaciones locales del proyecto que no merecen la pena agrupar en un preset compartido.

Consulta [Render settings reference](/en/render-settings-reference) para el mapa de campos compartidos de `preset`, `settings.style` y `settingsOverride`.

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

Obtén la configuración activa de un proyecto.

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

Aplica un parche a la configuración activa del proyecto. Puedes aplicar un preset, pasar configuración en bruto o ambas (primero se aplica el preset y luego se fusionan las anulaciones de configuración por encima).

```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">
  Aplica un preset reutilizable. Omítelo para dejar el preset actual sin cambios.
</ParamField>

<ParamField path="settings" type="object">
  Parche aplicado por encima del preset. Usa `style` para anulaciones con la misma forma que el preset,
  además de campos locales del proyecto como `displayLanguages`, `chordSettings` y
  `duetSingerFilter`.
</ParamField>

### Descubrir campos válidos

Convierte el esquema de actualización a JSON Schema en tiempo de ejecución para descubrir todos los campos válidos:

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

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

<Tip>
  Los agentes deberían llamar a esto antes de mutar la configuración del proyecto para que siempre conozcan
  la forma actual.
</Tip>

## Patrones comunes

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

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

  <Tab title="Idiomas de visualización">
    ```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>

## Configuración del proyecto vs presets

| Pregunta                                                          | Usa                                 |
| ----------------------------------------------------------------- | ----------------------------------- |
| ¿Misma apariencia en muchos proyectos?                            | Presets                             |
| ¿Ajuste puntual de recorte o color en un solo proyecto?           | Configuración del proyecto          |
| ¿Apariencia base + pequeñas anulaciones específicas del proyecto? | Preset + configuración del proyecto |

## Qué sigue

* [Render settings reference](/en/render-settings-reference) — todas las rutas de campos compartidos y los valores de enum
* [Presets](/es/sdk/presets) — configuraciones reutilizables
* [Media](/es/sdk/media) — sube fondos y logotipos
* [API project settings](/es/api/project-settings) — el mismo flujo mediante HTTP sin procesar
* [CLI projects](/es/cli/projects) — el mismo flujo desde la terminal
* [Exports](/es/sdk/exports) — usa `settingsOverride` para ajustes solo de exportación
