Aller au contenu

Enregistrements

GET /api/v1/recordings

Renvoie une liste paginée des enregistrements accessibles à l’utilisateur authentifié.

ParamètreTypePar défautDescription
limitnombre20Nombre de résultats (1–100)
offsetnombre0Décalage de pagination
searchchaîne de caractères-Filtrer par titre (correspondance partielle)
statuschaîne de caractères-Filtrer par statut (voir Statuts des enregistrements)
date_fromchaîne de caractères-Date ISO 8601 - ne renvoyer que les enregistrements créés à partir du ou après le
date_tochaîne de caractères-Date ISO 8601 - ne renvoyer que les enregistrements créés avant ou à la date du
organization_idchaîne de caractères-Restreindre à une organisation
folder_idchaîne de caractères-Restreindre à un dossier (nécessite organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Synchronisation hebdomadaire",
"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

Renvoie les détails complets d’un seul enregistrement.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Synchronisation hebdomadaire",
"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 null",
"transcription": {
"status": "completed",
"language": "en",
"speakers": ["Interlocuteur 1", "Interlocuteur 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Sujets clés\n...",
"topics": [
{
"title": "Calendrier du projet",
"keyPoints": [
{ "point": "Date de lancement confirmée", "details": ["Fixée au 1er trimestre"] }
]
}
]
},
"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

Renvoie les segments de transcription paginés d’un enregistrement.

ParamètreTypePar défautDescription
start_chunknombre0Index du fragment à partir duquel commencer
limitnombre50Nombre de fragments (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Interlocuteur 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Bonjour tout le monde.",
"speaker": "Alice",
"confidence": 0.97
}
],
"pagination": {
"total_chunks": 184,
"has_more": true
}
}
}

PATCH /api/v1/recordings/:id

Met à jour le titre ou les notes d’un enregistrement. Au moins un champ est requis.

{
"title": "Nouveau titre (1 à 500 caractères)",
"notes": "Notes facultatives (max 100 000 caractères)"
}
{
"data": { "success": true }
}

DELETE /api/v1/recordings/:id

Supprime définitivement un enregistrement et toutes les données associées (transcription, résumé, partages).

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

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

Génère un lien de partage public pour l’enregistrement.

{
"permission": "view"
}
ValeurDescription
viewLes destinataires peuvent regarder la vidéo et accéder à la transcription/au résumé
downloadLes destinataires peuvent également télécharger le fichier vidéo
{
"data": {
"share_url": "https://recordmeeting.com/app/shared/abc123",
"share_token": "abc123",
"permission": "view"
}
}

StatutDescription
STARTINGRequête d’enregistrement reçue, configuration en cours
CONNECTINGConnexion à la session Google Meet
WAIT_APPROVALEn attente d’approbation d’enregistrement en cours d’appel
RECORDINGEnregistrement actif
UPLOADINGTéléchargement côté client en cours (les extraits sont drainés vers le stockage)
PROCESSINGEmpaquetage Cloudflare Stream HLS/DASH - pas encore lisible
MIGRATINGVidéo entièrement lisible ; HLS en cours de migration vers un stockage à long terme
COMPLETEDEnregistrement entièrement traité et stocké
ERRORÉchec de l’enregistrement

Les consommateurs d’API doivent traiter MIGRATING de manière identique à COMPLETED pour les opérations de lecture, de téléchargement et de partage - la distinction est interne.