Ir al contenido

Grabaciones

GET /api/v1/recordings

Devuelve una lista paginada de grabaciones accesibles para el usuario autenticado.

ParámetroTipoPredeterminadoDescripción
limitnumber20Número de resultados (1–100)
offsetnumber0Desplazamiento de paginación
searchstring-Filtrar por título (coincidencia parcial)
statusstring-Filtrar por estado (ver Estados de grabación)
date_fromstring-Fecha ISO 8601 - solo devolver grabaciones creadas en o después de
date_tostring-Fecha ISO 8601 - solo devolver grabaciones creadas en o antes de
organization_idstring-Limitar al ámbito de una organización
folder_idstring-Limitar al ámbito de una carpeta (requiere organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Sincronización 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

Devuelve los detalles completos de una única grabación.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Sincronización 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": ["Ponente 1", "Ponente 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Temas clave\n...",
"topics": [
{
"title": "Cronograma del proyecto",
"keyPoints": [
{ "point": "Fecha de lanzamiento confirmada", "details": ["Establecida para el T1"] }
]
}
]
},
"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

Devuelve segmentos de transcripción paginados para una grabación.

ParámetroTipoPredeterminadoDescripción
start_chunknumber0Índice del fragmento desde el que empezar
limitnumber50Número de fragmentos (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Ponente 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Buenos días a todos.",
"speaker": "Alice",
"confidence": 0.97
}
],
"pagination": {
"total_chunks": 184,
"has_more": true
}
}
}

PATCH /api/v1/recordings/:id

Actualiza el título o las notas de una grabación. Se requiere al menos un campo.

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

DELETE /api/v1/recordings/:id

Elimina permanentemente una grabación y todos los datos asociados (transcripción, resumen, comparticiones).

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

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

Genera un enlace público para compartir la grabación.

{
"permission": "view"
}
ValorDescripción
viewLos destinatarios pueden ver el video y acceder a la transcripción/resumen
downloadLos destinatarios también pueden descargar el archivo de video
{
"data": {
"share_url": "https://recordmeeting.com/app/shared/abc123",
"share_token": "abc123",
"permission": "view"
}
}

EstadoDescripción
STARTINGSolicitud de grabación recibida, configuración en curso
CONNECTINGConectando a la sesión de Google Meet
WAIT_APPROVALEsperando aprobación en la llamada para grabar
RECORDINGGrabando activamente
UPLOADINGCarga del lado del cliente en curso (fragmentos drenándose al almacenamiento)
PROCESSINGEmpaquetado HLS/DASH de Cloudflare Stream - aún no reproducible
MIGRATINGVideo completamente reproducible; HLS migrándose a almacenamiento a largo plazo
COMPLETEDGrabación completamente procesada y almacenada
ERRORLa grabación falló

Los consumidores de la API deben tratar MIGRATING de forma idéntica a COMPLETED para las operaciones de reproducción, descarga y compartición; la distinción es interna.