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

# Медиа

> Фоны, логотипы и видео для интро/аутро, доступные для повторного использования

Медиа — это файлы для повторного использования: видеофоны, статические изображения, логотипы и клипы для интро/аутро — которые вы загружаете один раз и затем ссылаетесь на них из пресетов или настроек проекта. Это избавляет от необходимости повторно загружать один и тот же файл каждый раз при рендеринге нового трека.

## Типы медиа

| Тип           | Описание                                  |
| ------------- | ----------------------------------------- |
| `video`       | Зацикленное видео фона.                   |
| `image`       | Статическое фоновое изображение.          |
| `logo`        | Оверлей с логотипом.                      |
| `intro-video` | Воспроизводится перед началом караоке.    |
| `outro-video` | Воспроизводится после завершения караоке. |

## Эндпоинты

| Method   | Path               | Purpose                                                                  |
| -------- | ------------------ | ------------------------------------------------------------------------ |
| `GET`    | `/media`           | Список медиа для аутентифицированного аккаунта.                          |
| `POST`   | `/media`           | Зарегистрировать ранее загруженный файл как повторно используемое медиа. |
| `GET`    | `/media/{mediaId}` | Получить один медиа-объект.                                              |
| `DELETE` | `/media/{mediaId}` | Удалить медиа-объект.                                                    |

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

## Процесс загрузки

Создание медиа-объекта — это процесс из двух шагов. Сначала загрузите байты файла, затем зарегистрируйте загруженный файл как повторно используемое медиа.

<Steps>
  <Step title="Создайте цель для загрузки">
    ```bash theme={null}
    curl -X POST https://api.youka.io/ru/api/v1/uploads \
      -H "Authorization: Bearer yk_..." \
      -H "Content-Type: application/json" \
      -d '{
        "filename": "background.mp4",
        "contentType": "video/mp4",
        "contentLength": 8421120
      }'
    ```

    Ответ содержит `inputFileId` и `uploadUrl`.
  </Step>

  <Step title="Отправьте байты файла через PUT">
    ```bash theme={null}
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: video/mp4" \
      --data-binary "@./background.mp4"
    ```
  </Step>

  <Step title="Зарегистрируйте медиа-объект">
    ```bash theme={null}
    curl -X POST https://api.youka.io/ru/api/v1/media \
      -H "Authorization: Bearer yk_..." \
      -H "Idempotency-Key: bg-loop-v1" \
      -H "Content-Type: application/json" \
      -d '{
        "inputFileId": "file_abc123",
        "type": "video"
      }'
    ```

    Ответ включает новый `mediaId` и медиа-`url`. Используйте
    `url` внутри пресетов или настроек проекта.
  </Step>
</Steps>

<Note>
  `POST /media` не принимает загрузку «сырых» файлов. Он ожидает `inputFileId`
  из предыдущих вызовов `POST /uploads` + `PUT`.
</Note>

## Получить список медиа

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

Возвращает массив всех повторно используемых медиа-объектов в аутентифицированном аккаунте.

## Применить фон

Ссылайтесь на загруженные медиа из пресета или напрямую из настроек проекта:

```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": {
      "style": {
        "background": {
          "type": "image",
          "url": "https://cdn.youka.io/backgrounds/bg_abc123.jpg",
          "objectFit": "cover"
        }
      }
    }
  }'
```

## Удалить медиа

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

<Warning>
  Удаление медиа не влияет на проекты или экспорты, которые уже были отрендерены с
  ним. Будущие рендеры, которые ссылаются на удалённое медиа, вернутся к фону
  по умолчанию.
</Warning>

## Что дальше

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