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

# Preajustes

> Configuraciones de render reutilizables — crea, actualiza, lista y establece el valor predeterminado de la cuenta

Un preajuste es una configuración de render reutilizable — fondo, estilo de subtítulos, diseño — que puedes aplicar a cualquier proyecto o exportación. Usa preajustes cuando quieras una apariencia consistente en muchas pistas.

Consulta [Render settings reference](/en/render-settings-reference) para ver la forma completa de `preset` y todas las opciones respaldadas por enums.

## Cuándo usar un preajuste

<Columns cols={2}>
  <Card title="Usa un preajuste cuando…" icon="check">
    Quieres la misma apariencia en muchos proyectos y necesitas actualizarla en
    un solo lugar.
  </Card>

  <Card title="Usa la configuración del proyecto cuando…" icon="sliders" href="/es/api/project-settings">
    Necesitas ajustes locales del proyecto que no vale la pena compartir.
  </Card>
</Columns>

## Endpoints

| Method   | Path                  | Purpose                                               |
| -------- | --------------------- | ----------------------------------------------------- |
| `GET`    | `/presets`            | Lista los preajustes de la cuenta autenticada.        |
| `POST`   | `/presets`            | Crea un nuevo preajuste.                              |
| `GET`    | `/presets/{presetId}` | Obtiene un único preajuste.                           |
| `PATCH`  | `/presets/{presetId}` | Actualiza el nombre, el cuerpo o lo fija por defecto. |
| `DELETE` | `/presets/{presetId}` | Elimina un preajuste.                                 |

Los esquemas completos de solicitud y respuesta están disponibles en **API reference** en la barra lateral.

## Crear un preajuste

```bash theme={null}
curl -X POST https://api.youka.io/es/api/v1/presets \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: create-neon-night-v1" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night",
    "preset": {
      "background": {
        "type": "gradient",
        "colors": ["#12001f", "#2f0a57"],
        "angle": 90
      },
      "singerTextStyles": {
        "0": {
          "fontFamily": "Inter",
          "textColor": "#00f5ff",
          "effectColor": "#ff4fd8"
        }
      }
    },
    "isDefault": false
  }'
```

La respuesta incluye el nuevo `presetId`. Guárdalo y haz referencia a él desde proyectos o exportaciones.

<Tip>
  Acompaña cada `POST` con una clave de idempotencia. Reutilizar la misma clave con el mismo
  payload devuelve el preajuste original en lugar de crear un duplicado.
</Tip>

## Descubrir campos válidos del preajuste

Los preajustes se validan del lado del servidor contra `KaraokePresetSchema`. El SDK exporta este esquema para que puedas convertirlo a JSON Schema en tiempo de ejecución:

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

const jsonSchema = KaraokePresetSchema.toJSONSchema();
```

Desde el CLI:

```bash theme={null}
youka preset schema --json
```

Quienes escriben agentes deberían llamar a esto antes de modificar preajustes para que el modelo conozca cada campo válido y el tipo de valor.

Referencia legible:

* [Render settings reference](/en/render-settings-reference)
* [CLI presets](/es/cli/presets)
* [SDK presets](/es/sdk/presets)

## Actualizar un preajuste

```bash theme={null}
curl -X PATCH https://api.youka.io/es/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Neon Night v2",
    "preset": {
      "singerTextStyles": {
        "0": {
          "textColor": "#ff2a2a"
        }
      }
    }
  }'
```

Pasa cualquier subconjunto de `name` y `preset`. Los campos que no incluyas se mantienen sin cambios.

## Establecer el preajuste predeterminado

Cada cuenta tiene como máximo un preajuste predeterminado, que se aplica automáticamente a los proyectos nuevos.

```bash theme={null}
curl -X PATCH https://api.youka.io/es/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "isDefault": true
  }'
```

Establecer un nuevo valor predeterminado desactiva automáticamente el anterior.

## Aplicar un preajuste

Haz referencia a un preajuste en tres lugares:

| Where                               | Field                                                |
| ----------------------------------- | ---------------------------------------------------- |
| Al crear el proyecto                | `presetId` en `POST /projects`                       |
| En cualquier momento en un proyecto | `presetId` en `PATCH /projects/{projectId}/settings` |
| En el momento de exportar           | `presetId` en `POST /projects/{projectId}/exports`   |

Ejemplo al exportar:

```bash theme={null}
curl -X POST https://api.youka.io/es/api/v1/projects/prj_abc/exports \
  -H "Authorization: Bearer yk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "presetId": "preset_abc123",
    "resolution": "1080p",
    "quality": "high"
  }'
```

## Eliminar un preajuste

```bash theme={null}
curl -X DELETE https://api.youka.io/es/api/v1/presets/preset_abc123 \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: delete-preset_abc123"
```

<Warning>
  Eliminar un preajuste no afecta a los proyectos o exportaciones que se hayan
  renderizado previamente con él. Las exportaciones futuras que hagan referencia al preajuste eliminado fallarán.
</Warning>

## Qué sigue

* [Render settings reference](/en/render-settings-reference) — todas las rutas de campos compartidos y valores de enum
* [Media](/es/api/media) — referenciado desde los cuerpos de preajuste
* [Project settings](/es/api/project-settings) — aplica un preajuste a un proyecto
* [CLI presets](/es/cli/presets) — el mismo flujo desde la terminal
* [SDK presets](/es/sdk/presets) — los mismos endpoints en TypeScript
