Bis 95 MB genügt ein Multipart-Request
Die Aufnahme gehört in den Multipart-Teil file. Als weitere Formularfelder kannst du language, diarize, source und webhook_url senden. Der Upload-Guide zeigt den Request. Mit einem Webhook erfährst du, wann die Verarbeitung endet.
Für eine kleinere Aufnahme, die bereits auf deinem Server liegt, ist Multipart ein guter Einstieg. Lass deinen HTTP-Client die Multipart-Boundary setzen. Sende die Dateidaten selbst, keinen lokalen Pfad als String in JSON. Eine leere Datei oder ein nicht unterstütztes Format wird auch durch wiederholte Requests nicht gültig.
Prüfe Größe und Laufzeit getrennt. Eine stark komprimierte Aufnahme kann unter 95 MB bleiben und trotzdem länger als 5 Stunden sein. Ein kurzes hochauflösendes Video kann dagegen schon für Multipart zu groß sein. Die Bytes entscheiden über den Upload-Weg, die Laufzeit über das Verarbeitungslimit.
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected] \
-F language=autoReserviere den Upload, bevor du Chunks sendest
Für Dateien bis 2 GB reservierst du zunächst einen Upload mit Dateiname und Größe. Du bekommst den Chunk-Plan und einen X-Upload-Token für genau diesen Upload. Die komplette Abfolge steht im Guide für Chunk-Uploads.
Halte dich an den zurückgegebenen Plan. Jeder Eintrag nennt Index, Byte-Offset und Größe. Lies jeweils genau diesen Bereich aus der Datei; der letzte Chunk kann kleiner sein. Mit dem Upload-Token autorisierst du die binären PUT-Requests. Er gilt 1 Stunde und ersetzt nicht deinen allgemeinen API-Schlüssel.
Nutze für die Reservierung einen festen Idempotency-Key. Ist der Token abgelaufen, wiederhole die Reservierung mit demselben Schlüssel und denselben Parametern. So bekommst du einen frischen Token für den bestehenden Upload. Eine neue Reservierung nach jeder Unterbrechung hinterlässt unnötig offene Aufträge.
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Idempotency-Key: interview-2026-10-13" \
-H "Content-Type: application/json" \
-d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'Fehlende Chunks nachreichen, dann die Verarbeitung starten
Sende jeden Chunk per PUT mit dem Upload-Token an seine URL. Danach schließt du den Upload ab. Erst wenn alle Teile geprüft sind, kommt die Transkription in die Warteschlange. Die Routen für Status und Abschluss stehen in der Upload-Referenz.
Nach einer Unterbrechung liest du mit GET /v1/transcriptions/:id/upload den Fortschritt. Vergleiche received_chunks mit deinem Plan und sende nur die fehlenden Teile. Ein erneut gesendeter Chunk ersetzt den bisherigen; seine Größe muss weiter dem Plan entsprechen. Ein 401 kann auf einen abgelaufenen Token hinweisen.
Meldet der Abschluss 409 upload_incomplete, nennt die Antwort die fehlenden Indizes. Reiche diese Chunks nach. Sobald der Auftrag eingereiht ist, fragst du den Transkriptionsstatus ab oder wartest auf den Webhook. Zeige Upload-Fortschritt und Verarbeitung in deiner Oberfläche getrennt an.
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
-H "X-Upload-Token: t1u_..." \
-H "Content-Type: application/octet-stream" \
--data-binary @chunk-0.bin
curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Ein vollständiger Upload ist noch kein fertiges Transkript
awaiting_upload bedeutet, dass die API auf Dateidaten wartet. Die Transkription läuft zu diesem Zeitpunkt noch nicht. Erst nach dem erfolgreichen Abschluss folgen Warteschlange und Verarbeitung. Bricht die Verbindung direkt nach dem Abschluss ab, frage zuerst den Status des Auftrags ab, bevor du etwas wiederholst.
Pro Team können bis zu 20 Upload-Reservierungen offen sein. Nach 24 Stunden brechen wir unvollständige Uploads ab und löschen ihre Chunks. Nach dem endgültigen Transkriptionsstatus gilt eine eigene Frist: Dann löschen wir die Medien nach 24 Stunden. Soll deine Anwendung später noch Audio abspielen, musst du die Originaldatei selbst aufbewahren.
Für die Arbeit mit dem fertigen Text helfen der Audio-zu-Text-Guide und der Leitfaden für Forschungsinterviews. Dort geht es um die Prüfung der Aufnahme, die Zuordnung von Beteiligten und nachvollziehbare Zitate.