Transcribe un archivo con un request multipart
Pon la grabación en la parte file. Puedes añadir language, diarize, source y webhook_url como campos del formulario. Consulta el request multipart completo y configura un webhook si quieres recibir el aviso al terminar.
Envía los bytes del archivo, no una ruta local dentro de un JSON. Deja que tu cliente HTTP genere el boundary de multipart. Un archivo vacío o con una extensión no admitida necesita una corrección, no una cadena de reintentos.
Elige cómo subirlo según su tamaño y comprueba la duración por separado. Un audio muy comprimido puede pesar menos de 95 MB y superar las 5 horas. Un video corto en alta resolución puede exceder el límite de multipart aunque tenga poco audio.
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected] \
-F language=autoReserva la subida de archivos grandes
Para archivos de hasta 2 GB, envía primero el nombre y el tamaño. Recibirás la lista de partes y un X-Upload-Token exclusivo de esa subida. La guía de subida por partes muestra toda la secuencia.
Sigue el plan que devuelve la API: cada parte tiene un índice, una posición en bytes y un tamaño. Lee ese rango exacto; la última parte puede ser más pequeña. El token autoriza los requests PUT binarios, vence después de 1 hora y no sustituye a tu clave de API.
Usa la misma Idempotency-Key si tienes que repetir la reserva. Con la misma clave y los mismos parámetros obtienes un token nuevo para la subida existente. Así puedes continuar cuando venza el anterior, sin abrir otra reserva cada vez que se interrumpe la conexión.
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"}}'Completa la subida antes de esperar la transcripción
Envía cada parte por PUT a su URL con el token de subida. Después confirma que terminaste. transcript1 comprueba las partes y pone la transcripción en cola. Los endpoints para consultar y completar la subida están en la referencia de uploads.
Para retomar una transferencia, consulta GET /v1/transcriptions/:id/upload y compara received_chunks con el plan inicial. Envía solo lo que falta. Si repites una parte, reemplazas la anterior y debes respetar su tamaño. Un 401 puede indicar que venció el token; no necesitas volver a generar el archivo.
Si falta alguna parte, la confirmación devuelve 409 upload_incomplete con sus índices. Corrige la subida y vuelve a completarla. Una vez en cola, consulta el estado o espera el webhook. En tu interfaz, distingue el progreso de la subida del progreso de la transcripción.
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"Qué ocurre después de enviar los bytes
awaiting_upload significa que hay una reserva, no que ya estemos transcribiendo. Primero recibimos los bytes, después verificamos la subida y finalmente procesamos el audio. Si se corta la conexión tras confirmar, consulta la transcripción antes de repetir esa operación.
Cada equipo puede tener hasta 20 reservas abiertas. Si no completas una en 24 horas, la cancelamos y borramos sus partes. Cuando una transcripción llega a un estado final, el archivo se borra 24 horas después. Guarda tu original si tu aplicación necesita reproducirlo en el futuro; conservamos el texto, no un archivo de audio permanente.
Para una herramienta que usarán otras personas, consulta la guía de audio a texto: incluye preparación y revisión. Si integras entrevistas, la guía de investigación explica cómo conservar participantes y referencias al audio junto con la transcripción.