> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# API-Referenz Videos

> Videos über die Admin Interface API in den Shop hochladen, ihre URLs abfragen und konfigurierbare Format- und Größenbeschränkungen nutzen.

Der Endpunkt `videos/` stellt eine Schnittstelle zur Verwaltung von Videos im Shop-System bereit. Über die API können Videos hochgeladen und die zugehörigen URLs abgefragt werden.

Unterstützt werden verschiedene Videoformate sowie individuelle Einschränkungen wie maximale Dateigröße und erlaubte Formate, die über die Shop-Konfiguration `content.videoSettings` gesteuert werden.

***

## Unterstützte Methoden

Angabe aller unterstützten Methoden.

| **Befehl/Info** | **Endpunkte**         | **GET**             | **PUT**             | **POST**              | **DELETE**          |
| --------------- | --------------------- | ------------------- | ------------------- | --------------------- | ------------------- |
| **Video URL**   | <Icon icon="check" /> | <Icon icon="ban" /> | <Icon icon="ban" /> | <Icon icon="ban" />   |                     |
|                 | **Video Upload**      | <Icon icon="ban" /> | <Icon icon="ban" /> | <Icon icon="check" /> | <Icon icon="ban" /> |

## Allgemein

* **Unterstützte Videoformate:**
  * `mp4`
  * `avi`
  * `mov`
  * `wmv`
  * `flv`
  * `mkv`
  * `webm`
  * `mpeg`
  * `3gp`
  * `ogg/ogv`
* **Maximale Dateigröße**\
  Wird über die Konfiguration `content.videoSettings` festgelegt.
* **Erlaubte Formate**\
  Die zulässigen Videoformate können ebenfalls über `content.videoSettings` konfiguriert werden.

## Methoden für Video Upload

### GET videos/url/\{typeId}

Dieser Endpunkt liefert die URL, unter der Videos des angegebenen Typs (z. B. Kategorie- oder Produktvideos) gespeichert werden. Der Pfadparameter `typeId` muss den Wert `categories` oder `products` haben.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
http://www.<ihr-shop>.de/admin/api/v1/videos/url/categories
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "url": "//content.myshop.localhost/categories/video"
}
```

#### Fehlercodes

| **Fehler**       | **Typ**        | **Grund**                                                                                                                                    |
| ---------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized |                | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Kategorie- oder Produkt-Daten. |
| 400 Bad Request  | "invalidValue" |                                                                                                                                              |
| 400 Bad Request  | "missing"      | `subshopId` wurde nicht übergeben.                                                                                                           |

### POST videos/upload/\{typeId}

Dieser Endpunkt ermöglicht das Hochladen eines Videos für einen angegebenen Typ (z. B. Kategorien oder Produkte). Der Pfadparameter `typeId` muss den Wert `categories` oder `products` haben.

Der Request-Body muss den Dateinamen (`fileName`) sowie die Binärdaten des Videos (`videoData`) enthalten. Nach einem erfolgreichen Upload wird der Name der hochgeladenen Datei zurückgegeben.

Schreibberechtigungen für Kategorie- oder Produktdaten sind erforderlich.

#### Beispiel

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
http://www.<ihr-shop>.de/admin/api/v1/videos/upload/categories?subshopId=deutsch
```

#### Request Body

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Content-Type: multipart/form-data

fileName: myVideo.mp4
videoData: <Binärdaten der Videodatei>
```

#### Antwort

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "newFile": "myVideo.mp4"
}
```

#### Fehlercodes

| **Fehler**              | **Typ**             | **Grund**                                                                                                                                    |
| ----------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 401 Unauthorized        |                     | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben Kategorie- oder Produkt-Daten. |
| 400 Bad Request         | "missing"           | `subshopId` wurde nicht übergeben.<br />`video` wurde nicht übergeben (wenn `fileName` oder `videoData` fehlen oder leer sind).              |
| 400 Bad Request         | "invalidValue"      |                                                                                                                                              |
| 400 Bad Request         | "invalidFileFormat" | Das Video hat ein ungültiges Format.                                                                                                         |
| 503 Service Unavailable | "internalError"     | Das Hochladen ist fehlgeschlagen.                                                                                                            |

## Support

Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: [Zum Kundenportal](https://websale.atlassian.net/servicedesk/customer/portal/6)

Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten, damit wir Ihre Anfrage zeitnah und zielführend beantworten können.
