Visão geral
Transforme arquivos de áudio e vídeo em transcrições e legendas com uma API REST simples.
Envie uma URL de mídia, acompanhe a transcrição e obtenha JSON estruturado ou um arquivo de legendas pronto para usar.
Sua primeira transcrição
A transcrição acontece em segundo plano. A criação de uma tarefa retorna uma resposta imediata; consulte o status até que o resultado esteja pronto.
Criar uma tarefa
Envie
POST /transcriptscom uma URL de mídia direta e pública. Guarde oidretornado.Consultar o progresso
Consulte
GET /transcripts/{id}a cada 15–30 segundos até questatussejacompleteouerror.Usar sua transcrição
Leia o JSON em
dataou baixe o arquivo deexport_urlao solicitar SRT ou VTT.
Status da tarefa
initializingNa fila, aguardando o início. Continue consultando.
transcribingSua mídia está sendo transcrita. Continue consultando.
completePronto. Leia o resultado ou baixe o arquivo.
errorA tarefa falhou. Leia message e pare de consultar.
Considere qualquer outro status como ainda em andamento. Novos estados intermediários podem ser adicionados.
Autenticação
Envie sua chave de API no cabeçalho Authorization de cada requisição, exatamente como foi exibida ao criá-la.
Authorization: <your api key>Não adicione o prefixo Bearer.
As novas chaves começam com tp_live_. A chave completa é exibida apenas uma vez, ao criá-la. Se você a perder, revogue-a e crie uma nova; uma chave revogada para de funcionar imediatamente.
É necessária uma assinatura ativa e uma chave de API com as permissões exigidas.
Mantenha sua chave no servidor. Ela dá acesso às transcrições e ao uso da sua conta. Nunca a exponha no código do navegador nem em um repositório público.
Criar uma transcrição
/transcriptsInicie uma tarefa de transcrição para um arquivo de mídia em uma URL pública. A resposta é retornada assim que a tarefa entra na fila, com status: "initializing".
O Taption baixa o arquivo diretamente. Links de páginas de compartilhamento, como uma prévia do Google Drive ou Dropbox, não funcionam.
Corpo da requisição
application/jsonmedia_urlstringobrigatórioLink de download direto do seu arquivo de mídia.
Máximo de 2048 caracteresextensionstringobrigatórioO formato do arquivo de mídia.
mp3wavm4aaacflacwmaopusmp4languagestringobrigatórioIdioma falado na mídia, como uma tag de idioma. Consulte a referência de idiomas.
Ver tags de idiomanamestringNome de exibição da transcrição. Por padrão, é usado o nome do arquivo em `media_url`. Nomes mais longos são cortados em 200 caracteres.
Máximo de 200 caracteresexport_typestringFormato de saída. O padrão é json, que retorna o conteúdo da transcrição já interpretado em data. srt e vtt retornam um link de arquivo em export_url.
Padrão: jsonjsonsrtvttmax_charintegerMáximo de caracteres por segmento de legenda. O padrão é `16` para chinês, japonês, coreano e cantonês, e `65` para outros idiomas. Valores fora de 1–200 são ignorados e o padrão é usado.
1–200
Respostas
200A tarefa foi criada e colocada na fila. Guarde o `id` para consultar o status.
400O corpo da requisição é inválido. Corrija a requisição antes de tentar novamente. Apenas o primeiro problema encontrado é informado.
401A chave de API está ausente, é inválida ou não está configurada para acesso à API.
403É necessária uma assinatura ativa e uma chave de API com as permissões exigidas.
429Limite da conta atingido; nenhuma tarefa criada. Padrões: Premium 10 envios/minuto e 2 tarefas não concluídas; Corp 30/minuto e 10 tarefas não concluídas, compartilhados entre todas as chaves. Os limites podem mudar. Consultas de status não contam.
500Erro inesperado no servidor. Tente novamente aumentando a espera exponencialmente.
503Os limites de envio estão temporariamente indisponíveis (`api_limits_unavailable`; nenhuma transcrição foi criada), ou o envio à fila falhou ou não pôde ser confirmado. Respeite Retry-After, se presente. Se um `id` for retornado, consulte seu status antes de tentar novamente: ele pode ser `error` ou a tarefa já pode estar em processamento. Uma nova tentativa cria uma nova transcrição.
Obter uma transcrição
/transcripts/{id}Obtenha o status atual e o resultado de uma transcrição. Consulte a cada 15–30 segundos enquanto a tarefa estiver em andamento.
Com json ou sem especificar o tipo de exportação, o resultado final aparece em data. Com srt ou vtt, baixe o arquivo de export_url.
Parâmetro de caminho
idstringobrigatório- O ID da transcrição retornado por
POST /transcripts.Máximo de 256 caracteres
Uma transcrição que falhou também retorna HTTP 200 com status: "error". Verifique o status da tarefa além do código HTTP.
Respostas
200O status atual da transcrição. Isso não significa que a tarefa foi concluída com sucesso; leia `status`.
401A chave de API está ausente, é inválida ou não está configurada para acesso à API.
403É necessária uma assinatura ativa e uma chave de API com as permissões exigidas.
404Não existe uma transcrição com este ID na sua conta. Uma transcrição de outra conta retorna a mesma resposta.
500Erro inesperado no servidor. Tente novamente aumentando a espera exponencialmente.
O objeto de transcrição
As requisições de criação e consulta de status retornam um objeto JSON. Seus campos descrevem a tarefa e, quando estiver pronto, seu resultado.
idstring- O ID da transcrição. Use-o com `GET /transcripts/{id}`.
statusstring- Status da tarefa: `initializing`, `transcribing`, `complete` ou `error`. Considere qualquer outro valor como ainda em andamento.
dataJSON- Exportação JSON já interpretada quando pronta para json ou se export_type for omitido; caso contrário, uma string vazia.
export_urlstring- Link de download de uma exportação srt ou vtt. Vazio até que esteja pronta. Omitido das respostas de status para json ou se export_type for omitido.
messagestring- Detalhes adicionais do status atual. Durante `transcribing`, pode indicar uma etapa como `ANALYZING` ou `FINALIZING`. Quando `status` é `error`, descreve a falha. Destinado à leitura por pessoas; não o interprete por código.
error_codestring- Código opcional legível por máquina para um erro de limite de envio.
limitinteger- Limite aplicável à conta, incluído nas respostas HTTP 429.
Erros e novas tentativas
Use o código de status HTTP para decidir o próximo passo. O campo message é destinado à leitura por pessoas; sua redação pode mudar.
As respostas da API incluem o cabeçalho X-Request-Id. Informe-o ao entrar em contato com o suporte sobre uma requisição.
Códigos de erro HTTP9 códigos
| HTTP | O que aconteceu | Próximo passo |
|---|---|---|
400 | Corpo da requisição inválido. | Corrija a requisição primeiro. |
401 | Chave de API ausente, inválida ou revogada. | Verifique sua chave de API. |
403 | É necessária uma assinatura ativa e uma chave de API com as permissões exigidas. | Verifique sua assinatura e as permissões da chave de API. |
404 | Transcrição não encontrada na sua conta. | Verifique o ID da transcrição. |
405 | Método HTTP incorreto. | Use o método documentado. |
429 | Limite de envios ou de tarefas não concluídas atingido. | Respeite Retry-After e aguarde uma vaga para a tarefa. |
500 | Erro inesperado no servidor. | Aumente a espera exponencialmente. |
503 | Limites de envio indisponíveis, ou o envio à fila falhou ou não pôde ser confirmado. | Consulte o ID de tarefa retornado antes de tentar novamente; respeite Retry-After. |
504 | O tempo limite da requisição foi excedido. | Aumente a espera e evite tarefas duplicadas. |
Erros de limite da API retornam HTTP 429 com JSON e Retry-After em segundos. A hospedagem também pode retornar 429, 504 ou 400 sem JSON. Verifique o status HTTP antes de ler o corpo.
As solicitações de criação não são idempotentes. Repetir um POST /transcripts que excedeu o tempo pode criar outra transcrição. Se uma resposta 503 incluir um ID de tarefa, consulte essa tarefa antes de enviar novamente: ela pode ter falhado ou já estar em processamento.
Idiomas
Defina language como o idioma falado na mídia. Use a tag exata abaixo, incluindo qualquer sufixo de região ou sistema de escrita de saída.
Idiomas disponíveis74 idiomas
| Idioma | Tag |
|---|---|
| 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 segue as configurações de idioma do Taption e pode mudar. O seletor de idioma do Taption é a referência oficial.