Resumen
Convierta archivos de audio y vídeo en transcripciones y subtítulos con una sencilla API REST.
Envíe una URL multimedia, siga el progreso de la transcripción y obtenga JSON estructurado o un archivo de subtítulos listo para usar.
Su primera transcripción
La transcripción se realiza en segundo plano. Al crear un trabajo, la respuesta es inmediata; consulte su estado hasta que el resultado esté listo.
Crear un trabajo
Envíe
POST /transcriptscon una URL multimedia directa y pública. Guarde eliddevuelto.Consultar el progreso
Consulte
GET /transcripts/{id}cada 15–30 segundos hasta questatusseacompleteoerror.Usar la transcripción
Lea el JSON de
datao descargue el archivo deexport_urlsi solicita SRT o VTT.
Estado del trabajo
initializingEn cola, a la espera de comenzar. Siga consultando.
transcribingSe está transcribiendo su archivo. Siga consultando.
completeListo. Lea el resultado o descargue el archivo.
errorEl trabajo ha fallado. Lea message y deje de consultar.
Considere cualquier otro estado como «en curso». Pueden añadirse nuevos estados intermedios.
Autenticación
Envíe su clave API en la cabecera Authorization de cada solicitud, exactamente como se mostró al crearla.
Authorization: <your api key>No añada el prefijo Bearer.
Las claves nuevas empiezan por tp_live_. La clave completa solo se muestra una vez, al crearla. Si la pierde, revóquela y cree una nueva; una clave revocada deja de funcionar de inmediato.
Se requiere una suscripción activa y una clave de API con los permisos necesarios.
Guarde su clave en el servidor. Da acceso a las transcripciones y al uso de su cuenta. Nunca la exponga en el código del navegador ni en un repositorio público.
Crear una transcripción
/transcriptsInicie un trabajo de transcripción para un archivo multimedia en una URL pública. La respuesta se devuelve cuando el trabajo entra en la cola, con status: "initializing".
Taption descarga el archivo directamente. Los enlaces a páginas compartidas, como una vista previa de Google Drive o Dropbox, no funcionan.
Cuerpo de la solicitud
application/jsonmedia_urlstringobligatorioEnlace de descarga directa del archivo multimedia.
Máximo 2048 caracteresextensionstringobligatorioFormato del archivo multimedia.
mp3wavm4aaacflacwmaopusmp4languagestringobligatorioIdioma hablado en el archivo, como etiqueta de idioma. Consulte la referencia de idiomas.
Ver etiquetas de idiomanamestringNombre de la transcripción. De forma predeterminada se usa el nombre del archivo de `media_url`. Los nombres más largos se recortan a 200 caracteres.
Máximo 200 caracteresexport_typestringFormato de salida. El valor predeterminado es json, que devuelve el contenido de la transcripción analizado en data. srt y vtt devuelven un enlace al archivo en export_url.
Predeterminado: jsonjsonsrtvttmax_charintegerMáximo de caracteres por segmento de subtítulo. El valor predeterminado es `16` para chino, japonés, coreano y cantonés, y `65` para otros idiomas. Los valores fuera de 1–200 se ignoran y se usa el predeterminado.
1–200
Respuestas
200Se ha creado el trabajo y se ha puesto en cola. Guarde el `id` para consultar su estado.
400El cuerpo de la solicitud no es válido. Corríjalo antes de reintentar. Solo se informa del primer problema encontrado.
401La clave API falta, no es válida o no está configurada para acceder a la API.
403Se requiere una suscripción activa y una clave de API con los permisos necesarios.
429Límite de la cuenta alcanzado; no se creó ningún trabajo. Valores predeterminados: Premium 10 envíos/minuto y 2 trabajos sin terminar; Corp 30/minuto y 10 trabajos sin terminar, compartidos entre todas las claves. Los límites pueden cambiar. Las consultas de estado no cuentan.
500Error inesperado del servidor. Reintente aumentando la espera exponencialmente.
503Los límites de envío no están disponibles temporalmente (`api_limits_unavailable`; no se creó ninguna transcripción), o el envío a la cola falló o no se pudo confirmar. Respeta Retry-After si está presente. Si se devuelve un `id`, comprueba su estado antes de reintentar: puede ser `error` o estar ya en proceso. Un reintento crea una transcripción nueva.
Obtener una transcripción
/transcripts/{id}Obtenga el estado actual y el resultado de una transcripción. Consulte cada 15–30 segundos mientras el trabajo esté en curso.
Con json o sin especificar el tipo de exportación, el resultado final aparece en data. Con srt o vtt, descargue el archivo de export_url.
Parámetro de ruta
idstringobligatorio- El ID de transcripción devuelto por
POST /transcripts.Máximo 256 caracteres
Una transcripción fallida también devuelve HTTP 200 con status: "error". Compruebe el estado del trabajo además del código HTTP.
Respuestas
200El estado actual de la transcripción. Esto no significa que el trabajo haya finalizado correctamente; lea `status`.
401La clave API falta, no es válida o no está configurada para acceder a la API.
403Se requiere una suscripción activa y una clave de API con los permisos necesarios.
404No existe una transcripción con este ID en su cuenta. Una transcripción que pertenece a otra cuenta devuelve la misma respuesta.
500Error inesperado del servidor. Reintente aumentando la espera exponencialmente.
El objeto de transcripción
Las solicitudes de creación y consulta de estado devuelven un objeto JSON. Sus campos describen el trabajo y, cuando está listo, su resultado.
idstring- El ID de transcripción. Úselo con `GET /transcripts/{id}`.
statusstring- Estado del trabajo: `initializing`, `transcribing`, `complete` o `error`. Considere cualquier otro valor como «en curso».
dataJSON- Exportación JSON analizada cuando está lista, para json o si se omite export_type; en caso contrario, una cadena vacía.
export_urlstring- Enlace de descarga para una exportación srt o vtt. Vacío hasta que esté lista. Se omite en las respuestas de estado para json o si se omite export_type.
messagestring- Detalles adicionales del estado actual. Durante `transcribing`, puede indicar una fase como `ANALYZING` o `FINALIZING`. Cuando `status` es `error`, describe el fallo. Está dirigido a personas; no lo analice mediante código.
error_codestring- Código opcional legible por máquina para un error de límite de envío.
limitinteger- Límite aplicable a la cuenta, incluido en las respuestas HTTP 429.
Errores y reintentos
Use el código de estado HTTP para decidir el siguiente paso. El campo message está dirigido a personas; su redacción puede cambiar.
Las respuestas de la API incluyen la cabecera X-Request-Id. Inclúyala cuando contacte con soporte sobre una solicitud.
Códigos de error HTTP9 códigos
| HTTP | Qué ocurrió | Siguiente paso |
|---|---|---|
400 | Cuerpo de solicitud no válido. | Corrija primero la solicitud. |
401 | Clave API ausente, no válida o revocada. | Compruebe su clave API. |
403 | Se requiere una suscripción activa y una clave de API con los permisos necesarios. | Comprueba tu suscripción y los permisos de la clave de API. |
404 | No se encontró la transcripción en su cuenta. | Compruebe el ID de transcripción. |
405 | Método HTTP incorrecto. | Use el método documentado. |
429 | Se alcanzó el límite de envíos o de trabajos sin terminar. | Respeta Retry-After y espera a que quede un espacio disponible. |
500 | Error inesperado del servidor. | Aumente la espera exponencialmente. |
503 | Límites de envío no disponibles, o el envío a la cola falló o no se pudo confirmar. | Comprueba el ID de trabajo devuelto antes de reintentar; respeta Retry-After. |
504 | Se agotó el tiempo de espera de la solicitud. | Aumente la espera y evite trabajos duplicados. |
Los errores de límite de la API devuelven HTTP 429 con JSON y Retry-After en segundos. El alojamiento también puede devolver 429, 504 o 400 sin JSON. Comprueba el estado HTTP antes de leer el cuerpo.
Las solicitudes de creación no son idempotentes. Reintentar un POST /transcripts que agotó el tiempo puede crear otra transcripción. Si una respuesta 503 incluye un ID de trabajo, comprueba ese trabajo antes de volver a enviarlo: puede haber fallado o estar ya en proceso.
Idiomas
Establezca language en el idioma hablado en su archivo. Use la etiqueta exacta de la lista, incluido cualquier sufijo de región o sistema de escritura de salida.
Idiomas disponibles74 idiomas
| Idioma | Etiqueta |
|---|---|
| Afrikaans (South Africa) | af-ZA |
| Arabic (Egypt) | ar-EG |
| Armenian (Armenia) | hy-AM |
| Assamese (India) | as-IN |
| Azerbaijani (Azerbaijan) | az-AZ |
| Bengali (India) | bn-IN |
| Bosnian (Bosnia and Herzegovina) | bs-BA |
| Bulgarian (Bulgaria) | bg-BG |
| Burmese (Myanmar) | my-MM |
| Cantonese, Simplified Chinese output (Hong Kong) | yue-Hant-HK-zh |
| Cantonese, Traditional Chinese output (Hong Kong) | yue-Hant-HK-TW-zh |
| Cantonese, Simplified Cantonese output (Hong Kong) | yue-Hant-HK |
| Cantonese, Traditional Cantonese output (Hong Kong) | yue-Hant-HK-TW |
| Catalan (Spain) | ca-ES |
| Chinese (China) | zh |
| Chinese (Taiwan) | zh-TW |
| Chinese & English (Simplified) | zh-EN |
| Chinese & English (Traditional) | zh-EN-TW |
| Croatian (Croatia) | hr-HR |
| Czech (Czech Republic) | cs-CZ |
| Danish (Denmark) | da-DK |
| Dutch (Belgium) | nl-BE |
| English (Australia) | en-AU |
| English (United Kingdom) | en-GB |
| English (United States) | en-US |
| Estonian (Estonia) | et-EE |
| Filipino (Philippines) | tl-PH |
| Finnish (Finland) | fi-FI |
| French (France) | fr-FR |
| Galician (Spain) | gl-ES |
| German (Germany) | de-DE |
| Greek (Greece) | el-GR |
| Gujarati (India) | gu-IN |
| Hebrew (Israel) | iw-IL |
| Hindi (India) | hi-IN |
| Hungarian (Hungary) | hu-HU |
| Icelandic (Iceland) | is-IS |
| Indonesian (Indonesia) | id-ID |
| Italian (Italy) | it-IT |
| Japanese (Japan) | ja-JP |
| Kannada (India) | kn-IN |
| Kazakh (Kazakhstan) | kk-KZ |
| Khmer (Cambodia) | km-KH |
| Korean (South Korea) | ko-KR |
| Latvian (Latvia) | lv-LV |
| Lithuanian (Lithuania) | lt-LT |
| Macedonian (North Macedonia) | mk-MK |
| Malay (Malaysia) | ms-MY |
| Malayalam (India) | ml-IN |
| Marathi (India) | mr-IN |
| Nepali (Nepal) | ne-NP |
| Norwegian (Norway) | no-NO |
| Odia (India) | or-IN |
| Persian (Iran) | fa-IR |
| Polish (Poland) | pl-PL |
| Portuguese (Portugal, Brazil) | pt-PT_pt-BR |
| Punjabi, Gurmukhi (India) | pa-IN |
| Romanian (Romania) | ro-RO |
| Russian (Russia) | ru-RU |
| Serbian (Serbia) | sr-SR |
| Slovak (Slovakia) | sk-SK |
| Slovenian (Slovenia) | sl-SI |
| Spanish (Spain) | es-ES |
| Swahili (Kenya) | sw-KE |
| Swedish (Sweden) | sv-SE |
| Tamil (India) | ta-IN |
| Telugu (India) | te-IN |
| Thai (Thailand) | th-TH |
| Turkish (Turkey) | tr-TR |
| Ukrainian (Ukraine) | uk-UA |
| Urdu (Pakistan) | ur-PK |
| Uzbek (Uzbekistan) | uz-UZ |
| Vietnamese (Vietnam) | vi-VN |
| Zulu (South Africa) | zu-ZA |
Esta lista sigue la configuración de idiomas de Taption y puede cambiar. El selector de idiomas de Taption es la referencia definitiva.