Grabaciones
Listar grabaciones
Sección titulada «Listar grabaciones»GET /api/v1/recordingsDevuelve una lista paginada de grabaciones accesibles para el usuario autenticado.
Parámetros de consulta
Sección titulada «Parámetros de consulta»| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
limit | number | 20 | Número de resultados (1–100) |
offset | number | 0 | Desplazamiento de paginación |
search | string | - | Filtrar por título (coincidencia parcial) |
status | string | - | Filtrar por estado (ver Estados de grabación) |
date_from | string | - | Fecha ISO 8601 - solo devolver grabaciones creadas en o después de |
date_to | string | - | Fecha ISO 8601 - solo devolver grabaciones creadas en o antes de |
organization_id | string | - | Limitar al ámbito de una organización |
folder_id | string | - | Limitar al ámbito de una carpeta (requiere organization_id) |
Respuesta
Sección titulada «Respuesta»{ "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 }}Obtener grabación
Sección titulada «Obtener grabación»GET /api/v1/recordings/:idDevuelve los detalles completos de una única grabación.
Respuesta
Sección titulada «Respuesta»{ "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 } }}Obtener segmentos de transcripción
Sección titulada «Obtener segmentos de transcripción»GET /api/v1/recordings/:id/transcriptDevuelve segmentos de transcripción paginados para una grabación.
Parámetros de consulta
Sección titulada «Parámetros de consulta»| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
start_chunk | number | 0 | Índice del fragmento desde el que empezar |
limit | number | 50 | Número de fragmentos (1–100) |
Respuesta
Sección titulada «Respuesta»{ "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 } }}Actualizar grabación
Sección titulada «Actualizar grabación»PATCH /api/v1/recordings/:idActualiza el título o las notas de una grabación. Se requiere al menos un campo.
Cuerpo de la solicitud
Sección titulada «Cuerpo de la solicitud»{ "title": "Nuevo título (1–500 caracteres)", "notes": "Notas opcionales (máx. 100.000 caracteres)"}Respuesta
Sección titulada «Respuesta»{ "data": { "success": true }}Eliminar grabación
Sección titulada «Eliminar grabación»DELETE /api/v1/recordings/:idElimina permanentemente una grabación y todos los datos asociados (transcripción, resumen, comparticiones).
Respuesta
Sección titulada «Respuesta»{ "data": { "success": true }}Crear enlace para compartir
Sección titulada «Crear enlace para compartir»POST /api/v1/recordings/:id/share-linkGenera un enlace público para compartir la grabación.
Cuerpo de la solicitud
Sección titulada «Cuerpo de la solicitud»{ "permission": "view"}| Valor | Descripción |
|---|---|
view | Los destinatarios pueden ver el video y acceder a la transcripción/resumen |
download | Los destinatarios también pueden descargar el archivo de video |
Respuesta
Sección titulada «Respuesta»{ "data": { "share_url": "https://recordmeeting.com/app/shared/abc123", "share_token": "abc123", "permission": "view" }}Estados de grabación
Sección titulada «Estados de grabación»| Estado | Descripción |
|---|---|
STARTING | Solicitud de grabación recibida, configuración en curso |
CONNECTING | Conectando a la sesión de Google Meet |
WAIT_APPROVAL | Esperando aprobación en la llamada para grabar |
RECORDING | Grabando activamente |
UPLOADING | Carga del lado del cliente en curso (fragmentos drenándose al almacenamiento) |
PROCESSING | Empaquetado HLS/DASH de Cloudflare Stream - aún no reproducible |
MIGRATING | Video completamente reproducible; HLS migrándose a almacenamiento a largo plazo |
COMPLETED | Grabación completamente procesada y almacenada |
ERROR | La grabación falló |
Los consumidores de la API deben tratar
MIGRATINGde forma idéntica aCOMPLETEDpara las operaciones de reproducción, descarga y compartición; la distinción es interna.