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 devuelve grabaciones creadas en o después de
date_tostring-Fecha ISO 8601 - solo devuelve grabaciones creadas en o antes de
organization_idstring-Alcance a una organización
folder_idstring-Alcance a una carpeta (requiere organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Weekly sync",
"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 sola grabación.

Las grabaciones de la organización están disponibles para cualquier miembro de la organización al que se le permita verlas. Los propietarios y administradores pueden abrir todas las grabaciones de su organización; los editores y espectadores ven las grabaciones que su rol y acceso a la carpeta les permiten. Para una grabación de la organización, is_locked, download_url y capabilities reflejan el plan de la organización y las banderas de características del miembro, no el plan personal de quien realiza la llamada.

Devuelve 402 ORGANIZATION_SUBSCRIPTION_EXPIRED cuando la suscripción Enterprise de la organización ya no está activa.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Weekly sync",
"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": ["Speaker 1", "Speaker 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Key topics\n...",
"topics": [
{
"title": "Project timeline",
"keyPoints": [
{ "point": "Launch date confirmed", "details": ["Set for 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

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

Las grabaciones de la organización siguen las mismas reglas de acceso que Obtener grabación. Devuelve 403 RECORDING_LOCKED cuando la grabación está bloqueada y 403 TRANSCRIPT_NOT_AVAILABLE cuando la transcripción está deshabilitada para la organización o el miembro. Una grabación que aún no ha sido transcrita devuelve 200 con "status": "not_started" y una matriz segments vacía.

ParámetroTipoPredeterminadoDescripción
start_chunknumber0Índice del fragmento desde el que empezar
limitnumber50Número de fragmentos (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Speaker 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Good morning everyone.",
"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": "New title (1–500 characters)",
"notes": "Optional notes (max 100,000 characters)"
}
{
"data": { "success": true }
}

DELETE /api/v1/recordings/:id

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

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

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

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

Para una grabación de la organización, cualquier miembro que pueda ver la grabación puede crear el enlace. El enlace se crea en nombre del propietario de la grabación y utiliza el plan de la organización, por lo que los enlaces de download funcionan para las grabaciones de la organización incluso cuando el plan personal de quien realiza la llamada es gratuito. Devuelve 403 RECORDING_LOCKED cuando la grabación está bloqueada y 403 SHARING_DISABLED cuando el uso compartido está deshabilitado para la organización o el miembro.

{
"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
UPLOADINGSubida en curso del lado del cliente (fragmentos drenándose al almacenamiento)
PROCESSINGEmpaquetado HLS/DASH de Cloudflare Stream - aún no reproducible
MIGRATINGVideo completamente reproducible; HLS siendo migrado 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 uso compartido; la distinción es interna.