Gravações
Listar gravações
Seção intitulada “Listar gravações”GET /api/v1/recordingsRetorna uma lista paginada de gravações acessíveis ao usuário autenticado.
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
limit | número | 20 | Número de resultados (1–100) |
offset | número | 0 | Deslocamento da paginação |
search | string | - | Filtrar por título (correspondência parcial) |
status | string | - | Filtrar por status (consulte Status das gravações) |
date_from | string | - | Data ISO 8601 - retornar apenas gravações criadas em ou após |
date_to | string | - | Data ISO 8601 - retornar apenas gravações criadas em ou antes |
organization_id | string | - | Escopo para uma organização |
folder_id | string | - | Escopo para uma pasta (requer organization_id) |
Resposta
Seção intitulada “Resposta”{ "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 }}Obter gravação
Seção intitulada “Obter gravação”GET /api/v1/recordings/:idRetorna todos os detalhes de uma única gravação.
Resposta
Seção intitulada “Resposta”{ "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 ou nulo", "transcription": { "status": "completed", "language": "en", "speakers": ["Palestrante 1", "Palestrante 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": ["Definido para o Q1"] } ] } ] }, "isLocked": false, "capabilities": { "canDownload": true, "canShare": true, "canViewTranscription": true, "canStartTranscription": true, "canRegenerateTranscription": false, "canRenameSpeaker": true, "canViewSummary": true, "canGenerateSummary": true, "canAskQuestions": true } }}Obter segmentos de transcrição
Seção intitulada “Obter segmentos de transcrição”GET /api/v1/recordings/:id/transcriptRetorna segmentos de transcrição paginados para uma gravação.
Parâmetros de consulta
Seção intitulada “Parâmetros de consulta”| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
start_chunk | número | 0 | Índice do bloco para iniciar |
limit | número | 50 | Número de blocos (1–100) |
Resposta
Seção intitulada “Resposta”{ "data": { "status": "completed", "language": "en", "speakers": ["Palestrante 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 } }}Atualizar gravação
Seção intitulada “Atualizar gravação”PATCH /api/v1/recordings/:idAtualize o título ou as notas de uma gravação. Pelo menos um campo é obrigatório.
Corpo da requisição
Seção intitulada “Corpo da requisição”{ "title": "Novo título (1–500 caracteres)", "notes": "Notas opcionais (máximo 100.000 caracteres)"}Resposta
Seção intitulada “Resposta”{ "data": { "success": true }}Excluir gravação
Seção intitulada “Excluir gravação”DELETE /api/v1/recordings/:idExclui permanentemente uma gravação e todos os dados associados (transcrição, resumo, compartilhamentos).
Resposta
Seção intitulada “Resposta”{ "data": { "success": true }}Criar link de compartilhamento
Seção intitulada “Criar link de compartilhamento”POST /api/v1/recordings/:id/share-linkGera um link de compartilhamento público para a gravação.
Corpo da requisição
Seção intitulada “Corpo da requisição”{ "permission": "view"}| Valor | Descrição |
|---|---|
view | Os destinatários podem assistir ao vídeo e acessar a transcrição/resumo |
download | Os destinatários também podem baixar o arquivo de vídeo |
Resposta
Seção intitulada “Resposta”{ "data": { "share_url": "https://recordmeeting.com/app/shared/abc123", "share_token": "abc123", "permission": "view" }}Status das gravações
Seção intitulada “Status das gravações”| Status | Descrição |
|---|---|
STARTING | Solicitação de gravação recebida, configuração em andamento |
CONNECTING | Conectando-se à sessão do Google Meet |
WAIT_APPROVAL | Aguardando aprovação na chamada para gravar |
RECORDING | Gravando ativamente |
UPLOADING | Upload do lado do cliente em andamento (blocos sendo esvaziados para armazenamento) |
PROCESSING | Empacotamento HLS/DASH do Cloudflare Stream - ainda não reproduzível |
MIGRATING | Vídeo totalmente reproduzível; HLS sendo migrado para armazenamento de longo prazo |
COMPLETED | Gravação totalmente processada e armazenada |
ERROR | A gravação falhou |
Os consumidores da API devem tratar
MIGRATINGde forma idêntica aCOMPLETEDpara operações de reprodução, download e compartilhamento - a distinção é interna.