Ga naar inhoud

Opnames

GET /api/v1/recordings

Geeft een gepagineerde lijst terug van opnames die toegankelijk zijn voor de geauthenticeerde gebruiker.

ParameterTypeStandaardBeschrijving
limitnumber20Aantal resultaten (1–100)
offsetnumber0Paginatie offset
searchstring-Filteren op titel (gedeeltelijke overeenkomst)
statusstring-Filteren op status (zie Opname statussen)
date_fromstring-ISO 8601 datum - retourneer alleen opnames die op of na deze datum zijn gemaakt
date_tostring-ISO 8601 datum - retourneer alleen opnames die op of voor deze datum zijn gemaakt
organization_idstring-Toepassingsgebied voor een organisatie
folder_idstring-Toepassingsgebied voor een map (vereist organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Wekelijkse 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

Retourneert volledige details voor één opname.

Organisatieopnames zijn beschikbaar voor elk organisatielid dat gemachtigd is om ze te bekijken. Eigenaars en beheerders kunnen elke opname in hun organisatie openen; editors en kijkers zien de opnames die hun rol en maptoegang toestaan. Voor een organisatieopname weerspiegelen is_locked, download_url en capabilities het abonnement van de organisatie en de functie-flags van het lid, niet het persoonlijke abonnement van de beller.

Retourneert 402 ORGANIZATION_SUBSCRIPTION_EXPIRED wanneer het Enterprise-abonnement van de organisatie niet langer actief is.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Wekelijkse 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": ["Spreker 1", "Spreker 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Belangrijkste onderwerpen\n...",
"topics": [
{
"title": "Projecttijdlijn",
"keyPoints": [
{ "point": "Lanceerdatum bevestigd", "details": ["Vastgesteld voor 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

Retourneert gepagineerde transcriptsegmenten voor een opname.

Organisatieopnames volgen dezelfde toegangsregels als Opname ophalen. Retourneert 403 RECORDING_LOCKED wanneer de opname is vergrendeld en 403 TRANSCRIPT_NOT_AVAILABLE wanneer transcriptie is uitgeschakeld voor de organisatie of het lid. Een opname die nog niet is getranscribeerd, retourneert nog steeds 200 met "status": "not_started" en een lege segments array.

ParameterTypeStandaardBeschrijving
start_chunknumber0Chunk-index om vanaf te starten
limitnumber50Aantal chunks (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Spreker 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Goedemorgen allemaal.",
"speaker": "Alice",
"confidence": 0.97
}
],
"pagination": {
"total_chunks": 184,
"has_more": true
}
}
}

PATCH /api/v1/recordings/:id

Update de titel of notities van een opname. Minimaal één veld is vereist.

{
"title": "Nieuwe titel (1–500 tekens)",
"notes": "Optionele notities (max 100.000 tekens)"
}
{
"data": { "success": true }
}

DELETE /api/v1/recordings/:id

Verwijdert permanent een opname en alle bijbehorende gegevens (transcript, samenvatting, shares).

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

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

Genereert een openbare deellink voor de opname.

Voor een organisatieopname kan elk lid dat de opname kan bekijken de link aanmaken. De link wordt aangemaakt namens de eigenaar van de opname en gebruikt het plan van de organisatie, dus download links werken voor organisatieopnames, zelfs als het persoonlijke plan van de beller gratis is. Retourneert 403 RECORDING_LOCKED wanneer de opname is vergrendeld en 403 SHARING_DISABLED wanneer delen is uitgeschakeld voor de organisatie of het lid.

{
"permission": "view"
}
WaardeBeschrijving
viewOntvangers kunnen de video bekijken en toegang krijgen tot het transcript/de samenvatting
downloadOntvangers kunnen ook het videobestand downloaden
{
"data": {
"share_url": "https://recordmeeting.com/app/shared/abc123",
"share_token": "abc123",
"permission": "view"
}
}

StatusBeschrijving
STARTINGOpnameverzoek ontvangen, instelling bezig
CONNECTINGVerbinding maken met de Google Meet-sessie
WAIT_APPROVALWachten op goedkeuring in de oproep om op te nemen
RECORDINGActief aan het opnemen
UPLOADINGClient-side upload bezig (chunks naar opslag weggeschreven)
PROCESSINGCloudflare Stream HLS/DASH-verpakking - nog niet afspeelbaar
MIGRATINGVideo volledig afspeelbaar; HLS wordt gemigreerd naar langetermijnopslag
COMPLETEDOpname volledig verwerkt en opgeslagen
ERROROpname mislukt

API-gebruikers moeten MIGRATING identiek behandelen aan COMPLETED voor afspeel-, download- en deeloperaties; het onderscheid is intern.