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

# Medien

> Wiederverwendbare Hintergründe, Logos sowie Intro-/Outro-Videos

Medien sind wiederverwendbare Dateien — Video-Hintergründe, statische Bilder, Logos sowie Intro-/Outro-Clips — die du einmal hochlädst und dann aus Presets oder Projekteinstellungen referenzierst. So musst du dieselbe Datei nicht jedes Mal erneut hochladen, wenn du einen neuen Track renderst.

## Medientypen

| Typ           | Beschreibung                                |
| ------------- | ------------------------------------------- |
| `video`       | Loopendes Hintergrundvideo.                 |
| `image`       | Statisches Hintergrundbild.                 |
| `logo`        | Logo-Overlay.                               |
| `intro-video` | Wird abgespielt, bevor das Karaoke beginnt. |
| `outro-video` | Wird abgespielt, nachdem das Karaoke endet. |

## Endpoints

| Methode  | Pfad               | Zweck                                                                     |
| -------- | ------------------ | ------------------------------------------------------------------------- |
| `GET`    | `/media`           | Medien für das authentifizierte Konto auflisten.                          |
| `POST`   | `/media`           | Eine zuvor hochgeladene Datei als wiederverwendbares Medium registrieren. |
| `GET`    | `/media/{mediaId}` | Ein einzelnes Medienobjekt abrufen.                                       |
| `DELETE` | `/media/{mediaId}` | Ein Medienobjekt löschen.                                                 |

Vollständige Request- und Response-Schemas findest du in der **API reference**.

## Upload-Ablauf

Das Erstellen eines Medienobjekts ist ein zweistufiger Prozess. Lade zuerst die Datei-Bytes hoch und registriere dann die hochgeladene Datei als wiederverwendbares Medium.

<Steps>
  <Step title="Ein Upload-Ziel erstellen">
    ```bash theme={null}
    curl -X POST https://api.youka.io/de/api/v1/uploads \
      -H "Authorization: Bearer yk_..." \
      -H "Content-Type: application/json" \
      -d '{
        "filename": "background.mp4",
        "contentType": "video/mp4",
        "contentLength": 8421120
      }'
    ```

    Die Antwort enthält `inputFileId` und `uploadUrl`.
  </Step>

  <Step title="Die Datei-Bytes per PUT hochladen">
    ```bash theme={null}
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: video/mp4" \
      --data-binary "@./background.mp4"
    ```
  </Step>

  <Step title="Das Medienobjekt registrieren">
    ```bash theme={null}
    curl -X POST https://api.youka.io/de/api/v1/media \
      -H "Authorization: Bearer yk_..." \
      -H "Idempotency-Key: bg-loop-v1" \
      -H "Content-Type: application/json" \
      -d '{
        "inputFileId": "file_abc123",
        "type": "video"
      }'
    ```

    Die Antwort enthält die neue `mediaId` und die Medien-`url`. Verwende die
    `url` in Presets oder Projekteinstellungen.
  </Step>
</Steps>

<Note>
  `POST /media` akzeptiert keine Raw-File-Uploads. Es erwartet eine `inputFileId`
  aus einem vorherigen `POST /uploads` + `PUT`-Aufruf.
</Note>

## Medien auflisten

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

Gibt ein Array mit jedem wiederverwendbaren Medienobjekt im authentifizierten Konto zurück.

## Einen Hintergrund anwenden

Referenziere hochgeladene Medien aus einem Preset oder direkt aus den Projekteinstellungen:

```bash theme={null}
curl -X PATCH https://api.youka.io/de/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"
        }
      }
    }
  }'
```

## Medien löschen

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

<Warning>
  Das Löschen von Medien hat keine Auswirkungen auf Projekte oder Exporte, die zuvor damit gerendert wurden.
  Zukünftige Renders, die auf die gelöschten Medien verweisen, fallen auf den
  Standardhintergrund zurück.
</Warning>

## Was als Nächstes

* [Render settings reference](/en/render-settings-reference) — alle gemeinsamen Field-Paths und Enum-Werte
* [Presets](/de/api/presets) — Medien zusammen mit anderen Render-Einstellungen bündeln
* [Project settings](/de/api/project-settings) — Hintergründe auf ein Projekt anwenden
* [SDK media](/de/sdk/media) — derselbe Ablauf in TypeScript
