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

# Настройки проекта

> Чтение и изменение активных настроек проекта

У каждого проекта есть активные настройки — обрезка, фон, стиль субтитров, макет — которые управляют тем, как рендерятся экспорты. Используйте настройки проекта, когда вам нужны локальные для проекта переопределения, которыми не имеет смысла делиться как пресетом.

См. [Справочник по настройкам рендера](/en/render-settings-reference) для общей карты полей `preset`, `settings.style` и `settingsOverride`.

## Эндпоинты

| Method  | Path                             | Purpose                                                  |
| ------- | -------------------------------- | -------------------------------------------------------- |
| `GET`   | `/projects/{projectId}/settings` | Получить активные настройки проекта.                     |
| `PATCH` | `/projects/{projectId}/settings` | Применить пресет, изменить настройки или и то, и другое. |

Полные схемы запросов и ответов приведены в **API reference**.

## Получить текущие настройки

```bash theme={null}
curl https://api.youka.io/ru/api/v1/projects/prj_abc/settings \
  -H "Authorization: Bearer yk_..."
```

Возвращает полный набор активных настроек проекта, включая любой применённый пресет.

## Изменить настройки

`PATCH` принимает любой поднабор `presetId` и `settings`. Если переданы оба, сначала применяется пресет, затем поверх него сливаются `settings`.

<Tabs>
  <Tab title="Применить пресет">
    ```bash theme={null}
    curl -X PATCH https://api.youka.io/ru/api/v1/projects/prj_abc/settings \
      -H "Authorization: Bearer yk_..." \
      -H "Content-Type: application/json" \
      -d '{
        "presetId": "preset_abc123"
      }'
    ```
  </Tab>

  <Tab title="Встроенные настройки">
    ```bash theme={null}
    curl -X PATCH https://api.youka.io/ru/api/v1/projects/prj_abc/settings \
      -H "Authorization: Bearer yk_..." \
      -H "Content-Type: application/json" \
      -d '{
        "settings": {
          "trim": { "startSeconds": 5, "endSeconds": 180 },
          "style": {
            "background": {
              "type": "color",
              "color": "#101010"
            }
          }
        }
      }'
    ```
  </Tab>

  <Tab title="Пресет + переопределения">
    ```bash theme={null}
    curl -X PATCH https://api.youka.io/ru/api/v1/projects/prj_abc/settings \
      -H "Authorization: Bearer yk_..." \
      -H "Content-Type: application/json" \
      -d '{
        "presetId": "preset_abc123",
        "settings": {
          "trim": { "startSeconds": 5, "endSeconds": 180 }
        }
      }'
    ```
  </Tab>
</Tabs>

## Узнать допустимые поля

SDK экспортирует схему, которая валидирует обновления настроек проекта. Преобразуйте её в JSON Schema во время выполнения:

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

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();
```

<Tip>
  Агентам следует получать схему SDK или схему запроса OpenAPI перед
  изменением настроек проекта, чтобы всегда знать актуальную структуру.
</Tip>

Справочник в удобочитаемом виде:

* [Справочник по настройкам рендера](/en/render-settings-reference)
* [CLI projects](/ru/cli/projects)
* [SDK project settings](/ru/sdk/project-settings)

## Настройки проекта vs пресеты vs переопределения экспорта

В Youka есть три уровня, где могут находиться настройки рендера:

| Layer                         | Scope           | When to use                                     |
| ----------------------------- | --------------- | ----------------------------------------------- |
| **Preset**                    | Account-wide    | Одинаковый внешний вид для многих проектов.     |
| **Project settings**          | One project     | Обрезка, фон или цвет, специфичные для проекта. |
| **Export `settingsOverride`** | One export only | Подправить один рендер, не трогая проект.       |

При экспорте эти уровни объединяются в указанном порядке.

## Что дальше

* [Справочник по настройкам рендера](/en/render-settings-reference) — все общие пути полей и значения enum
* [Presets](/ru/api/presets) — переиспользуемые конфигурации
* [Media](/ru/api/media) — данные, на которые ссылаются настройки
* [CLI projects](/ru/cli/projects) — тот же сценарий из терминала
* [SDK project settings](/ru/sdk/project-settings) — те же эндпоинты в TypeScript
