# Quellen und Einstellungen

> Welche Links funktionieren, wann transcript1 Untertitel nutzt und wie du Sprecherzuordnung und Sprache einstellst.

Canonical: https://transcript1.com/de/docs/sources-and-options
Language: de
Last updated: 2026-10-20

Für eine Transkription übergibst du einen Video-Link oder lädst eine Datei hoch. Die Tabelle zeigt, welche öffentlichen Aufnahmen und Linkformate transcript1 akzeptiert. Mit `source` wählst du Untertitel oder KI-Transkription, mit `diarize` die Sprecherzuordnung und mit `language` die Sprache. Diese drei Felder sind im Request-Body von `POST /v1/transcriptions` optional.

## Von diesen Plattformen kannst du Videos einreichen

Setze den Link in `url`. Die API erkennt daran die Plattform. Du kannst `platform` zusätzlich angeben, der Wert muss dann aber zum Link passen.

| Plattform | Diese Links funktionieren |
|---|---|
| YouTube (`youtube`) | Die unten aufgeführten Video-URLs. |
| X (`x`) | Links zu Video-Posts auf `x.com` oder `twitter.com`, zum Beispiel `https://x.com/user/status/1234567890`. |
| TikTok (`tiktok`) | Links zu Video-Posts auf `tiktok.com`. Auch Kurzlinks über `vm.tiktok.com`, `vt.tiktok.com` und `www.tiktok.com/t/` funktionieren. |
| Instagram (`instagram`) | Reels und Video-Posts auf `instagram.com` mit `/reel/`, `/reels/`, `/p/` oder `/tv/`. Vor dem Reel- oder Post-Pfad darf auch der Nutzername stehen. |
| Facebook (`facebook`) | Videos und Reels auf `facebook.com`, auch über Watch-Links. Dazu kommen `fb.watch` und die Kurzlinks `/share/v/` und `/share/r/`. |
| Bluesky (`bluesky`) | Links zu Video-Posts auf `bsky.app`, zum Beispiel `https://bsky.app/profile/user.example/post/3l3w4b5c6d7e2`. |
| [Twitch](https://transcript1.com/de/features/twitch-vod-transkribieren) (`twitch`) | VODs nach Ende der Übertragung unter `twitch.tv/videos/<id>` oder `/<channel>/v/<id>`; statt `v` geht auch `video`. Clips unter `clips.twitch.tv/<slug>`, `twitch.tv/<channel>/clip/<slug>` oder `/clip/<slug>`. Erlaubte Hosts: `twitch.tv`, `www`, `m`, `go` und `clips.twitch.tv`. |
| [Dailymotion](https://transcript1.com/de/features/dailymotion-video-transkribieren) (`dailymotion`) | Videos unter `dailymotion.com/video/<id>`, auch mit angehängtem `_title`, sowie `/embed/video/<id>` und `dai.ly/<id>`. Die Hosts `www.dailymotion.com` und `touch.dailymotion.com` funktionieren ebenfalls. |
| [Pinterest](https://transcript1.com/de/features/pinterest-video-transkribieren) (`pinterest`) | Direkt auf Pinterest hochgeladene Video-Pins unter `pinterest.com` oder `www.pinterest.com`, mit `/pin/<id>/` oder `/pin/<slug>--<id>/`. transcript1 nimmt den ersten nativen Videoblock. Extern eingebettete Videos, Bilder, Boards, `pin.it` und regionale Domains funktionieren nicht. |
| [LinkedIn](https://transcript1.com/de/features/linkedin-video-transkribieren) (`linkedin`) | Öffentliche Video-Posts auf `linkedin.com` oder `www.linkedin.com` unter `/posts/<slug>-<activity-id>-<four-character-suffix>` oder `/feed/update/urn:li:activity:<id>/`. Profile, LinkedIn Learning, Events und `lnkd.in` funktionieren nicht. |
| [Snapchat Spotlight](https://transcript1.com/de/features/snapchat-spotlight-transkript) (`snapchat`) | Videos unter `/spotlight/<id>` auf `snapchat.com` oder `www.snapchat.com`. Stories und Profile funktionieren nicht. |

Für Twitch, Dailymotion, Pinterest, LinkedIn und Snapchat Spotlight muss der Link HTTPS verwenden. Er darf weder Zugangsdaten noch einen eigenen Port enthalten. Reiche einzelne, öffentliche Aufnahmen ein. Private Posts, Posts hinter einem Login, laufende oder noch verarbeitete Streams, Profile, Feeds und Sammlungen funktionieren nicht. transcript1 sendet keine Account-Cookies mit. Zeitangaben in der URL schneiden die Aufnahme nicht zu.

Twitch-Clips und Snapchat Spotlight können einen `media_id`-String liefern, dessen Aufbau du nicht interpretieren solltest. Übernimm ihn unverändert, statt eine ID aus der URL abzuleiten.

Auf X, TikTok, Instagram, Facebook und Bluesky muss der Post öffentlich sein. Enthält er mehrere Videos, nimmt transcript1 nur das erste. Profile, Stories, Live-Seiten und TikTok-Fotoposts funktionieren nicht. Verlangt die Plattform eine Anmeldung, bekommst du `login_required`. Fehlt dem Video die Tonspur, bekommst du `no_audio`. In beiden Fällen berechnen wir nichts.

Untertitel lassen sich auf YouTube, X, TikTok, Bluesky, Dailymotion und LinkedIn nutzen, sofern das Video eine passende Spur in der Originalsprache hat. Für Instagram, Facebook, Twitch, Pinterest und Snapchat läuft die Transkription mit `auto` oder `stt` immer über KI-Speech-to-Text. `captions` ist dort nicht erlaubt. Der Minutenpreis ist für alle Plattformen und Uploads gleich; abgerechnet wird die gemessene Länge.

Kurzlinks funktionieren nur in den oben genannten Formen. Willst du eine frühere Transkription wiederverwenden, nimm den vollständigen Post-Link. Share-Links ohne Post-ID können wir beim Absenden keiner früheren Transkription zuordnen.

| Plattform mit Untertiteln | Verfügbare Spuren und Zeitangaben |
|---|---|
| YouTube und X | transcript1 ruft vorhandene Untertitelspuren ab. Wort-Zeitstempel gibt es dabei nur für automatisch erzeugte YouTube-Untertitel. |
| TikTok | Native Untertitel in VTT oder SRT, sofern vorhanden. Zeitstempel gibt es nur für ganze Segmente. |
| Bluesky | Native Video-Untertitel auf dem unterstützten, vertrauenswürdigen PDS. Beliebige föderierte Hosts sowie zitierte und externe Videos funktionieren nicht. Zeitstempel gibt es nur pro Segment. |
| Dailymotion | Direkt abrufbare SRT-Dateien, keine Untertitel-Playlists. Zeitstempel gibt es nur pro Segment. Bei erkannten en-auto/fr-auto-Spuren lautet der Wert auto_generated. |
| LinkedIn | Verfügbare VTT-Spuren öffentlicher, direkt auf LinkedIn hochgeladener Video-Posts. LinkedIn Learning gehört nicht dazu. Zeitstempel gibt es nur pro Segment. |

## Diese YouTube-Links funktionieren

Für YouTube setzt du den Video-Link in `url` und lässt `platform` weg oder wählst `youtube`. Die folgenden Formate funktionieren jeweils mit und ohne `www.`:

| Linktyp | Beispiel |
|---|---|
| Normale Videoseite | `https://www.youtube.com/watch?v=dQw4w9WgXcQ` |
| Kurzlink | `https://youtu.be/dQw4w9WgXcQ` |
| Shorts | `https://www.youtube.com/shorts/dQw4w9WgXcQ` |
| Embed-Link | `https://www.youtube.com/embed/dQw4w9WgXcQ` |
| Live | `https://www.youtube.com/live/dQw4w9WgXcQ` |
| Mobile Website und YouTube Music | `https://m.youtube.com/watch?v=dQw4w9WgXcQ`, `https://music.youtube.com/watch?v=dQw4w9WgXcQ` |

Zusätzliche Query-Parameter wie `t`, `list` und `si` haben keinen Einfluss. Unterschiedliche Links zum selben Video erkennt transcript1 als dasselbe Video. Gib immer die vollständige URL an; die 11 Zeichen lange Video-ID allein reicht nicht.

Für Kanalseiten, reine Playlist-Links und andere nicht unterstützte Links antwortet die API mit `422 invalid_url`. Kennt sie den Wert von `platform` nicht, bekommst du `422 unsupported_platform` samt der Liste `supported_platforms`.

Das Video muss öffentlich oder nicht gelistet sein. Bei privaten Videos bekommst du `media_private`, bei Altersbeschränkungen `age_restricted` und bei Livestreams `live_stream`. Gehört dir die Datei, kannst du sie stattdessen [hochladen](https://transcript1.com/de/docs/uploads).

## source

Mit `source` entscheidest du, ob transcript1 vorhandene Untertitel abruft oder den Ton transkribiert.

| Wert | Was transcript1 macht |
|---|---|
| `auto` (Standard) | Prüft auf YouTube, X, TikTok, Bluesky, Dailymotion und LinkedIn zuerst die Untertitel in der Originalsprache. Lässt sich keine Spur nutzen, übernimmt KI-Speech-to-Text. |
| `captions` | Ruft ausschließlich Untertitel von Plattformen ab, die das unterstützen. transcript1 lädt dabei kein Audio herunter und nutzt kein KI-Speech-to-Text. Ohne passende Spur endet die Transkription mit `no_captions` und kostet nichts. Scheitert der Abruf des Untertiteltexts, lautet der Fehler `fetch_failed`. Für andere Link-Plattformen bekommst du `422 invalid_request`. |
| `stt` | Nutzt immer KI-Speech-to-Text für die Audiospur. |

Bei hochgeladenen Dateien läuft immer Speech-to-Text. Erlaubt sind dafür `auto` und `stt`. Mit `captions` bekommst du `422 invalid_request`.

Die Untertitelspur muss zur gewählten Sprache passen. Steht `language` auf `auto`, zählt die Originalsprache des Videos. Auf YouTube kommen vom Creator hochgeladene Untertitel und von YouTube in dieser Sprache erzeugte Untertitel infrage. Automatisch übersetzte Spuren nutzt transcript1 nie.

Zuerst kommen vom Creator hochgeladene Untertitel, dann Spuren unbekannter Herkunft und zuletzt automatisch erzeugte Untertitel. Eine unbekannte Herkunft bedeutet nicht, dass die Spur vom Creator stammt. Auf X nutzt transcript1 verfügbare VTT-Spuren mit Zeitstempeln pro Segment. Wort-Zeitstempel gibt es dort auch bei automatisch erzeugten Untertiteln nicht.

Im Modus `auto` kann STT übernehmen, wenn der Untertiteltext fehlt oder sich nicht parsen lässt. Bei Routing-, Speicher- oder Programmierfehlern passiert das nicht. Mit `stt` überspringst du die Untertitel immer.

## diarize

Aktiviere `diarize`, wenn du wissen willst, wer welchen Abschnitt spricht. Ohne Angabe gilt `false`.

- Sprecherzuordnung funktioniert nur mit Speech-to-Text. Wenn `source` auf `auto` steht und du `diarize: true` setzt, nutzt transcript1 deshalb direkt Speech-to-Text, auch wenn Untertitel vorhanden sind.
- `source: "captions"` lässt sich nicht mit `diarize: true` kombinieren. Die API antwortet dann mit `422 invalid_request`.
- Du bekommst Bezeichnungen wie `Speaker 1` und `Speaker 2`. Sie stehen in `transcript.speakers` und im Feld `speaker` des jeweiligen Segments. Bei `text` und `srt` steht `Speaker 1: ` vor dem Text; bei `vtt` kommt das Voice-Tag `<v Speaker 1>` zum Einsatz.

```json
{ "platform": "youtube", "url": "https://youtu.be/dQw4w9WgXcQ", "source": "stt", "diarize": true }
```

## language

Lass `language` auf dem Standardwert `auto` oder gib einen zweistelligen ISO-639-1-Code an, zum Beispiel `en`, `de` oder `es`.

- Für Untertitel legst du damit fest, welche Sprachspur transcript1 abruft. `auto` wählt die Originalsprache des Videos.
- Bei Speech-to-Text bekommt der Anbieter den Wert als Hinweis auf die Sprache der Aufnahme. Mit `auto` läuft die Sprachenerkennung automatisch. Jedes Segment hat sein eigenes Feld `language`.

Im Feld `language` des Transkriptionsobjekts steht die Sprache, die in der Aufnahme überwiegt.

## Was im Transkript steht

An `transcript_source` erkennst du, woher der Text stammt. Mögliche Werte sind `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` und `speech_to_text`.

Bei Untertiteln beschreibt `caption_kind` die Herkunft: `manual`, `auto_generated` oder `null` für eine unbekannte Herkunft. Stelle `null` in deiner Anwendung nicht als „vom Creator hochgeladen“ dar.

| | `youtube_captions`, `caption_kind` `manual` | `youtube_captions`, `caption_kind` `auto_generated` | `speech_to_text` |
|---|---|---|---|
| Segmente | Ein Segment pro Untertiteleintrag | Ein Segment pro Untertiteleintrag | Ein neues Segment bei Sprecherwechsel, Sprachwechsel oder Satzende, spätestens nach 15 Sekunden |
| Wort-Zeitstempel mit `include=words` | Keine; `words` ist `null` | Startzeit je Wort. Als Ende gilt der Beginn des nächsten Worts | Anfang und Ende jedes Worts sowie `confidence` |
| Sprecherzuordnung | Nein | Nein | Ja, wenn `diarize` auf `true` steht |
| Sprache | Sprache der Untertitelspur | Sprache der Untertitelspur | Eigene Sprachangabe pro Segment |

YouTube-Untertitel bleiben unverändert, auch mit Tags wie `[Music]`. Für Speech-to-Text darf die Aufnahme höchstens 5 Stunden lang sein. Dauert sie länger, bekommst du `media_too_long`.

Bei X-Untertiteln (`x_captions`) und Untertiteln von TikTok, Bluesky, Dailymotion und LinkedIn gibt es nur Zeitstempel pro Segment. Mit `include=words` bleibt `words: null` in jedem Segment, auch bei automatisch erzeugten Spuren. Diese Untertitel enthalten keine Sprecherzuordnung. Für Wort-Zeitstempel aus der KI-Transkription wählst du `source: "stt"`. Für die Sprecherzuordnung setzt du `diarize: true` zusammen mit `auto` oder `stt`.

## So wird abgerechnet

Jede angefangene Audiominute kostet einen Credit, egal ob transcript1 Untertitel abruft oder Speech-to-Text nutzt. Du wählst also nur die Quelle des Texts; der Preis bleibt gleich. Mehr dazu unter [Abrechnung und Limits](https://transcript1.com/de/docs/billing-and-limits).
