Listar Gravações e Transcrições
Os endpoints GET /api/calls/{id}/recordings e GET /api/calls/{id}/transcriptions permitem listar os arquivos de gravação de uma chamada e, quando disponíveis, suas transcrições.
Como as gravações são organizadas
Cada chamada com gravação habilitada possui uma única gravação, que contém múltiplos arquivos:
fileType |
Descrição | Formato |
|---|---|---|
video |
Gravação individual — um arquivo por participante | WebM (VP8/VP9 + Opus) |
composite |
Gravação composta — uma grade única com todos os participantes | MP4 |
transcription |
Entrada somente de transcrição (sem vídeo) — aparece apenas no endpoint de transcrições, quando o projeto transcreve sem manter as gravações individuais | — (url e signed_url nulos) |
Quais tipos aparecem na listagem depende da configuração do projeto: gravação individual e/ou gravação composta podem ser habilitadas ou desabilitadas de forma independente. O endpoint de gravações nunca retorna entradas transcription; o de transcrições retorna qualquer arquivo que possua transcrição, incluindo essas entradas sem vídeo.
Processamento assíncrono
Os arquivos são processados pelo nosso pipeline de processamento após o término da chamada (quando os participantes saem). Gravações individuais normalmente ficam disponíveis em poucos minutos; a gravação composta pode demorar mais, pois reprocessa a chamada inteira. A transcrição (se habilitada no projeto) chega depois da gravação, também de forma assíncrona.
Hoje não existe um webhook de "gravação pronta". Recomendamos consultar os endpoints de listagem periodicamente (polling) após receber o evento de fim da chamada via webhook.
Listar apenas transcrições de uma chamada
O endpoint GET /api/calls/{id}/transcriptions retorna somente os arquivos que já possuem transcrição disponível. A resposta tem exatamente o mesmo formato da listagem de gravações.
Requisição
Cabeçalhos:
Parâmetros:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id |
string (path) | Sim | ID da chamada |
page |
number (query) | Não | Página da listagem. Padrão: 1 |
limit |
number (query) | Não | Itens por página (máximo 100). Padrão: 10 |
Exemplos
curl -X GET "https://api.videochamada.com.br/api/calls/{id}/transcriptions?page=1&limit=20" \
-H "Authorization: Bearer {API_TOKEN}"
import requests
response = requests.get(
"https://api.videochamada.com.br/api/calls/{id}/transcriptions",
headers={"Authorization": "Bearer {API_TOKEN}"},
params={"page": 1, "limit": 20},
)
print(response.json())
const response = await fetch(
'https://api.videochamada.com.br/api/calls/{id}/transcriptions?page=1&limit=20',
{ headers: { Authorization: 'Bearer {API_TOKEN}' } },
);
const transcriptions = await response.json();
Resposta
Mesmo formato da listagem de gravações ({data: [...], pagination: {...}}), incluindo apenas os arquivos com transcription ou transcriptionData preenchidos.
Erros
| Status | Mensagem | Quando |
|---|---|---|
| 404 | Call not found |
A chamada não existe |
| 403 | Recording does not belong to this project |
A chamada pertence a outro projeto (API key incorreta) |
| 404 | Call does not have recording enabled |
A chamada não está com gravação habilitada |
Diferenças entre os endpoints
| Endpoint | Retorna |
|---|---|
/api/calls/{id}/recordings |
Todos os arquivos de gravação da chamada |
/api/calls/{id}/transcriptions |
Apenas arquivos com transcrição disponível |
Diálogo consolidado
Se você precisa da conversa inteira em ordem cronológica, com os participantes intercalados, use o endpoint de diálogo da transcrição — ele consolida as transcrições de todos os participantes em uma única linha do tempo.
Boas práticas
- Polling após o fim da chamada: os arquivos aparecem na listagem alguns minutos após o término. Consulte periodicamente (por exemplo, a cada 1–2 minutos) até que os arquivos esperados estejam presentes.
- Use
signed_urlpara download: o campourlé interno e não é acessível diretamente. Para baixar, use asigned_urlda listagem ou o endpoint de download. - Paginação: para chamadas com muitos participantes, percorra as páginas usando
totalPages. - Transcrições chegam depois: um arquivo pode aparecer na listagem de gravações antes de ter transcrição. Use o endpoint de transcrições quando precisar apenas dos arquivos já transcritos.