Pular para o conteúdo

Gravações

GET /api/v1/recordings

Retorna uma lista paginada de gravações acessíveis ao usuário autenticado.

ParâmetroTipoPadrãoDescrição
limitnúmero20Número de resultados (1–100)
offsetnúmero0Deslocamento de paginação
searchstring-Filtrar por título (correspondência parcial)
statusstring-Filtrar por status (ver Status de gravação)
date_fromstring-Data ISO 8601 - retornar apenas gravações criadas em ou após
date_tostring-Data ISO 8601 - retornar apenas gravações criadas em ou antes
organization_idstring-Escopo para uma organização
folder_idstring-Escopo para uma pasta (requer organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Sincronização semanal",
"createdAt": "2025-09-19T15:00:00.000Z",
"thumbnailUrl": "https://...",
"progress": 1.0,
"capabilities": {
"canDownload": true,
"canShare": true,
"canViewTranscription": true,
"canGenerateSummary": true,
"canAskQuestions": true
}
}
],
"pagination": {
"total": 42,
"limit": 20,
"offset": 0,
"has_more": true
}
}

GET /api/v1/recordings/:id

Retorna todos os detalhes de uma única gravação.

Gravações da organização estão disponíveis para qualquer membro da organização que tenha permissão para visualizá-las. Proprietários e administradores podem abrir todas as gravações em sua organização; editores e visualizadores veem as gravações que seu papel e acesso à pasta permitem. Para uma gravação da organização, is_locked, download_url e capabilities refletem o plano da organização e as sinalizações de recursos do membro, não o plano pessoal do chamador.

Retorna 402 ORGANIZATION_SUBSCRIPTION_EXPIRED quando a assinatura Enterprise da organização não está mais ativa.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Sincronização semanal",
"createdAt": "2025-09-19T15:00:00.000Z",
"updatedAt": "2025-09-19T15:30:00.000Z",
"startedAt": "2025-09-19T15:01:00.000Z",
"endedAt": "2025-09-19T15:30:00.000Z",
"videoUrl": "https://...",
"hlsUrl": "https://...",
"downloadUrl": "https://...",
"downloadUrlExpiresAt": "2025-09-19T21:00:00.000Z",
"thumbnailUrl": "https://...",
"organizationId": "org_uuid or null",
"transcription": {
"status": "completed",
"language": "en",
"speakers": ["Orador 1", "Orador 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Tópicos principais\n...",
"topics": [
{
"title": "Cronograma do projeto",
"keyPoints": [
{ "point": "Data de lançamento confirmada", "details": ["Definida para o Q1"] }
]
}
]
},
"isLocked": false,
"capabilities": {
"canDownload": true,
"canShare": true,
"canViewTranscription": true,
"canStartTranscription": true,
"canRegenerateTranscription": false,
"canRenameSpeaker": true,
"canViewSummary": true,
"canGenerateSummary": true,
"canAskQuestions": true
}
}
}

GET /api/v1/recordings/:id/transcript

Retorna segmentos de transcrição paginados para uma gravação.

As gravações da organização seguem as mesmas regras de acesso que Obter gravação. Retorna 403 RECORDING_LOCKED quando a gravação está bloqueada e 403 TRANSCRIPT_NOT_AVAILABLE quando a transcrição está desabilitada para a organização ou para o membro. Uma gravação que ainda não foi transcrita ainda retorna 200 com "status": "not_started" e um array segments vazio.

ParâmetroTipoPadrãoDescrição
start_chunknúmero0Índice do bloco para começar
limitnúmero50Número de blocos (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Orador 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Bom dia a todos.",
"speaker": "Alice",
"confidence": 0.97
}
],
"pagination": {
"total_chunks": 184,
"has_more": true
}
}
}

PATCH /api/v1/recordings/:id

Atualize o título ou as notas de uma gravação. Pelo menos um campo é obrigatório.

{
"title": "Novo título (1–500 caracteres)",
"notes": "Notas opcionais (máx. 100.000 caracteres)"
}
{
"data": { "success": true }
}

DELETE /api/v1/recordings/:id

Exclui permanentemente uma gravação e todos os dados associados (transcrição, resumo, compartilhamentos).

{
"data": { "success": true }
}

POST /api/v1/recordings/:id/share-link

Gera um link de compartilhamento público para a gravação.

Para uma gravação de organização, qualquer membro que possa visualizar a gravação pode criar o link. O link é criado em nome do proprietário da gravação e usa o plano da organização, de modo que os links de download funcionam para gravações de organização mesmo quando o plano pessoal do chamador é gratuito. Retorna 403 RECORDING_LOCKED quando a gravação está bloqueada e 403 SHARING_DISABLED quando o compartilhamento está desabilitado para a organização ou para o membro.

{
"permission": "view"
}
ValorDescrição
viewOs destinatários podem assistir ao vídeo e acessar a transcrição/resumo
downloadOs destinatários também podem baixar o arquivo de vídeo
{
"data": {
"share_url": "https://recordmeeting.com/app/shared/abc123",
"share_token": "abc123",
"permission": "view"
}
}

StatusDescrição
STARTINGSolicitação de gravação recebida, configuração em andamento
CONNECTINGConectando-se à sessão do Google Meet
WAIT_APPROVALAguardando aprovação em chamada para gravar
RECORDINGGravando ativamente
UPLOADINGUpload do lado do cliente em andamento (blocos esvaziando para armazenamento)
PROCESSINGCloudflare Stream empacotando HLS/DASH - ainda não reproduzível
MIGRATINGVídeo totalmente reproduzível; HLS sendo migrado para armazenamento de longo prazo
COMPLETEDGravação totalmente processada e armazenada
ERRORA gravação falhou

Os consumidores da API devem tratar MIGRATING identicamente a COMPLETED para operações de reprodução, download e compartilhamento - a distinção é interna.