> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.voicecheap.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Medien transkribieren

> Transkribieren Sie eine Audio- oder Videodatei als vollständiges JSON, SRT oder VTT

# Medien transkribieren

Laden Sie eine Audio- oder Videodatei hoch und erhalten Sie direkt das Transkript. Dieser eigenständige Endpunkt erstellt kein Synchronisationsprojekt.

Der Endpunkt akzeptiert Dateien bis zu **200 MB** und **2 Stunden**. Er verwendet dieselben API-Schlüssel-Zugriffsregeln wie die Übersetzungs-API.
Erfolgreiche Anfragen geben HTTP `200` zurück.

## Anfrage

Senden Sie `multipart/form-data` mit den folgenden Feldern.

<ParamField header="x-api-key" type="string" required>
  Ihr VoiceCheap API-Schlüssel.
</ParamField>

<ParamField body="file" type="file" required>
  Die zu transkribierende Audio- oder Videodatei. Unterstützte Formate sind MP4, MOV, MKV, WebM, MPEG, MP3, WAV, M4A, FLAC, OGG und AAC.
</ParamField>

<ParamField body="outputFormat" type="string" default="json">
  Antwortformat: `json`, `srt` oder `vtt`.
</ParamField>

<ParamField body="originalLanguage" type="string" default="auto-detect">
  Unterstützter ISO-Code der Quellsprache. Lassen Sie dies als `auto-detect`, es sei denn, Sie kennen die Quellsprache. Nicht unterstützte explizite Sprachen führen vor Beginn der Verarbeitung zu einem Validierungsfehler.
</ParamField>

<ParamField body="numberOfSpeakers" type="string" default="auto-detect">
  `auto-detect` oder eine Ganzzahl von `1` bis `32`.
</ParamField>

<ParamField body="brandVocabulary" type="string">
  Ein JSON-String-Array von Namen, Marken, Akronymen oder Fachbegriffen zur Erkennung. Anfrageterme werden mit dem gespeicherten Konto- oder Team-Glossar zusammengeführt.

  ```json theme={null}
  ["VoiceCheap", "SmartSync", "ITC Global"]
  ```
</ParamField>

<ParamField body="removeFillerWords" type="boolean" default="true">
  Entfernen Sie häufige Füllwörter aus dem Transkript.
</ParamField>

<ParamField body="includeSpeakerLabels" type="boolean" default="false">
  Stellen Sie SRT-Cues `Speaker N:` voran oder fügen Sie VTT-Sprach-Tags hinzu. JSON enthält immer den numerischen Sprecher für jedes Segment und jedes Wort.
</ParamField>

## JSON-Antwort

JSON ist die vollständigste Ausgabe. Sie enthält den vollständigen Text, die Sprachkonfidenz, die Mediendauer, Sprecher, zeitgestempelte Segmente und zeitgestempelte Wörter.

```json theme={null}
{
  "source": "standalone",
  "language": "en",
  "languageConfidence": 0.99,
  "duration": 12.4,
  "text": "Welcome to VoiceCheap.",
  "speakers": [{ "id": 0, "label": "Speaker 1" }],
  "segments": [
    {
      "index": 0,
      "text": "Welcome to VoiceCheap.",
      "begin": 0.18,
      "end": 1.74,
      "duration": 1.56,
      "speaker": 0,
      "language": "en",
      "confidence": 0.94,
      "words": [
        {
          "index": 0,
          "text": "Welcome",
          "speaker": 0,
          "confidence": 0.96,
          "begin": 0.18,
          "end": 0.62,
          "duration": 0.44
        }
      ]
    }
  ],
  "words": [
    {
      "index": 0,
      "text": "Welcome",
      "speaker": 0,
      "confidence": 0.96,
      "begin": 0.18,
      "end": 0.62,
      "duration": 0.44
    }
  ]
}
```

## Beispiele

<CodeGroup>
  ```bash cURL — JSON theme={null}
  curl -X POST "https://api.voicecheap.ai/v1/transcribe" \
    -H "x-api-key: vc_your-api-key" \
    -F "file=@interview.mp4" \
    -F "outputFormat=json" \
    -F "numberOfSpeakers=2" \
    -F 'brandVocabulary=["VoiceCheap","SmartSync"]'
  ```

  ```bash cURL — SRT theme={null}
  curl -X POST "https://api.voicecheap.ai/v1/transcribe" \
    -H "x-api-key: vc_your-api-key" \
    -F "file=@interview.mp4" \
    -F "outputFormat=srt" \
    -F "includeSpeakerLabels=true" \
    --output interview.srt
  ```

  ```bash cURL — VTT theme={null}
  curl -X POST "https://api.voicecheap.ai/v1/transcribe" \
    -H "x-api-key: vc_your-api-key" \
    -F "file=@interview.mp4" \
    -F "outputFormat=vtt" \
    --output interview.vtt
  ```
</CodeGroup>

## Fehler

| Status | Code                        | Beschreibung                                                 |
| ------ | --------------------------- | ------------------------------------------------------------ |
| 400    | `FILE_REQUIRED`             | Es wurde keine Datei hochgeladen                             |
| 400    | `INVALID_FILE_TYPE`         | Dateityp wird nicht unterstützt                              |
| 400    | `INVALID_MEDIA_STREAM`      | Datei hat keinen Audiostream                                 |
| 400    | `DURATION_DETECTION_FAILED` | Mediendauer konnte nicht gelesen werden                      |
| 400    | `DURATION_TOO_LONG`         | Medien sind länger als zwei Stunden                          |
| 400    | `INVALID_BRAND_VOCABULARY`  | Ein oder mehrere Glossareinträge sind ungültig               |
| 400    | `INVALID_BOOLEAN_VALUE`     | Ein Multipart-Boolean ist nicht `true` oder `false`          |
| 400    | `INVALID_JSON_FORMAT`       | Ein JSON-kodiertes Multipart-Feld ist fehlerhaft             |
| 400    | `INVALID_MULTIPART_REQUEST` | Multipart-Formulardaten sind fehlerhaft oder zu groß         |
| 413    | `FILE_TOO_LARGE`            | Datei überschreitet 200 MB                                   |
| 502    | `TRANSCRIPTION_EMPTY`       | Die Transkription ergab keine verwertbare Sprache            |
| 502    | `TRANSCRIPTION_FAILED`      | Die Transkriptions-Engine konnte nicht fertiggestellt werden |
