# Videotranskription API

> Wortgenaue Transkripte mit Sprecher-Diarisierung (Sprecher-Labels) aus Video- oder Audioinhalten extrahieren.

## Videotranskription API

Senden Sie eine Video- oder Audiodatei und erhalten Sie ein wortgenaues Transkript mit Sprecher-Diarisierung (jedes Segment ist mit dem erkannten Sprecher gekennzeichnet). Die API unterstützt Videos der wichtigsten Plattformen und lokal hochgeladene Video-/Audiodateien, samt Spracheinstellungen.

## Unterstützte Videoquellen

YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble und weitere.

Sie können auch [lokale Audio- oder Videodateien, die Sie hochladen](https://wayin.ai/de/api-docs/upload/), transkribieren — der lokale Upload erfordert ein **Starter**-Abonnement oder höher.

---

## Transkriptionsaufgabe einreichen

```
POST https://wayinvideo-api.wayin.ai/api/v2/transcripts
```

### Anfragekörper

| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|-----|--------------|----------|--------------|
| `video_url` | string | Ja | — | Quellvideo/-audio-URL oder hochgeladene Dateikennung |
| `source_lang` | string | Nein | `null` | Quellsprache des Videos. Wenn `null`, automatische Erkennung. |
| `target_lang` | string | Nein | `null` | Zielsprache für das Transkript. Wenn `null`, keine Übersetzung. Wenn von der Quellsprache abweichend, wird das Transkript automatisch übersetzt. |

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{"video_url": "https://www.youtube.com/watch?v=example", "target_lang": "en"}'
```

```python
import requests

requests.post(
    "https://wayinvideo-api.wayin.ai/api/v2/transcripts",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "x-wayinvideo-api-version": "v2",
    },
    json={
        "video_url": "https://www.youtube.com/watch?v=example",
        "target_lang": "en",
    },
)
```

```javascript
await fetch("https://wayinvideo-api.wayin.ai/api/v2/transcripts", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "x-wayinvideo-api-version": "v2",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    video_url: "https://www.youtube.com/watch?v=example",
    target_lang: "en",
  }),
});
```

### Antwort

```json
{"data": {"id": "trans_proj_001", "name": "sample project name", "status": "CREATED"}}
```

---

## Beispiele

Gängige Transkriptionsszenarien. Ersetzen Sie `YOUR_API_KEY` durch einen Schlüssel aus dem [API-Dashboard](https://wayin.ai/wayinvideo/api-dashboard).

### Ein YouTube-Video transkribieren

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'
```

### Einen Podcast mit mehreren Sprechern transkribieren

Übergeben Sie eine beliebige Podcast-Audio-URL (oder eine [Kennung einer hochgeladenen Datei](https://wayin.ai/de/api-docs/upload/)) — die Sprecher-Diarisierung erfolgt automatisch; jedes Segment in der Antwort enthält ein `speaker`-Label.

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://www.youtube.com/watch?v=EXAMPLE"}'
```

### Ein nicht-englisches Transkript ins Englische übersetzen

Setzen Sie `target_lang`, um die Übersetzung sofort durchzuführen. Kombinieren Sie dies mit `source_lang`, wenn Sie die Quelle bereits kennen.

```bash
curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=EXAMPLE",
    "source_lang": "ja",
    "target_lang": "en"
  }'
```

---

## Transkriptionsergebnisse abrufen

```
GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}
```

### Antwort

```json
{
  "data": {
    "status": "SUCCEEDED", "cost_usage": 27.0,
    "transcript": [
      {"text": "Welcome to today's presentation", "language": null, "start": 200, "end": 4500, "speaker": "Speaker 1"},
      {"text": "Thanks for coming", "language": null, "start": 5000, "end": 8200, "speaker": "Speaker 2"}
    ]
  }
}
```

### Antwortfelder

| Feld | Typ | Beschreibung |
|------|-----|--------------|
| `status` | string | `CREATED`, `QUEUED`, `ONGOING`, `SUCCEEDED`, `FAILED` |
| `error_message` | string | Fehlerursache (nur wenn `FAILED`) |
| `cost_usage` | number | Verbrauchte API-Einheiten |
| `transcript` | array | Liste der Transkript-Segmente |

### Transkript-Segment

| Feld | Typ | Beschreibung |
|------|-----|--------------|
| `text` | string | Transkribierter Text |
| `language` | string \| null | Erkannter Sprachcode oder `null` |
| `start` | integer | Startzeit in Millisekunden |
| `end` | integer | Endzeit in Millisekunden |
| `speaker` | string | Sprecher-Label (z.B. `"Speaker 1"`) |


---

## FAQ

### Wie lang darf das Video maximal sein?

Es gibt keine feste Längenbegrenzung. Die API unterstützt sowohl kurze Clips als auch lange Video- oder Audioinhalte auf den unterstützten Quellplattformen.

### Liefert die API wortgenaue Zeitstempel?

Ja. Jedes Transkript-Segment enthält `start`- und `end`-Zeitstempel in Millisekunden, den transkribierten `text`, die erkannte `language` sowie das durch die Sprecher-Diarisierung zugewiesene `speaker`-Label.

### Wie funktioniert die Sprecher-Diarisierung?

Sprecher werden automatisch erkannt und pro Segment beschriftet (`Speaker 1`, `Speaker 2`, …). Keine Konfiguration erforderlich — die Diarisierung läuft bei jeder Transkriptionsaufgabe.

### Welche Audio- und Videoformate werden unterstützt?

Quell-URLs werden von YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble und mehr unterstützt. Für lokale Uploads senden Sie `mp4`, `mov`, `webm` oder `avi` (reine Audiodateien können in einen dieser Container gemuxt werden).

### Kann ich das Transkript in eine andere Sprache übersetzen?

Ja — übergeben Sie den Parameter `target_lang`. Das Transkript wird übersetzt, wenn `target_lang` von der Quellsprache abweicht. Die vollständige Liste der Sprachcodes finden Sie unter [Unterstützte Sprachen](https://wayin.ai/de/api-docs/supported-languages/).
