Zum Inhalt springen

Aufnahmen

GET /api/v1/recordings

Gibt eine paginierte Liste von Aufnahmen zurück, auf die der authentifizierte Benutzer zugreifen kann.

ParameterTypStandardBeschreibung
limitZahl20Anzahl der Ergebnisse (1–100)
offsetZahl0Paginierungs-Offset
searchString-Nach Titel filtern (Teilübereinstimmung)
statusString-Nach Status filtern (siehe Aufnahmestatus)
date_fromString-ISO 8601 Datum - nur Aufnahmen zurückgeben, die am oder nach dem angegebenen Datum erstellt wurden
date_toString-ISO 8601 Datum - nur Aufnahmen zurückgeben, die am oder vor dem angegebenen Datum erstellt wurden
organization_idString-Auf eine Organisation beschränken
folder_idString-Auf einen Ordner beschränken (erfordert organization_id)
{
"data": [
{
"id": "uuid",
"status": "COMPLETED",
"title": "Wöchentliche Synchronisierung",
"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

Gibt vollständige Details für eine einzelne Aufnahme zurück.

Organisationsaufnahmen stehen jedem Organisationsmitglied zur Verfügung, das berechtigt ist, sie anzusehen. Eigentümer und Administratoren können jede Aufnahme in ihrer Organisation öffnen; Editoren und Betrachter sehen die Aufnahmen, die ihre Rolle und der Ordnerzugriff zulassen. Für eine Organisationsaufnahme spiegeln is_locked, download_url und capabilities den Plan der Organisation und die Feature-Flags des Mitglieds wider, nicht den persönlichen Plan des Aufrufers.

Gibt 402 ORGANIZATION_SUBSCRIPTION_EXPIRED zurück, wenn das Enterprise-Abonnement der Organisation nicht mehr aktiv ist.

{
"data": {
"id": "uuid",
"status": "COMPLETED",
"title": "Wöchentliche Synchronisierung",
"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 oder null",
"transcription": {
"status": "completed",
"language": "en",
"speakers": ["Sprecher 1", "Sprecher 2"],
"segmentsCount": 184,
"duration": 1740.5
},
"summary": {
"status": "completed",
"content": "## Hauptthemen\n...",
"topics": [
{
"title": "Projektzeitplan",
"keyPoints": [
{ "point": "Startdatum bestätigt", "details": ["Für Q1 festgelegt"] }
]
}
]
},
"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

Gibt paginierte Transkriptsegmente für eine Aufnahme zurück.

Organisationsaufnahmen folgen denselben Zugriffsregeln wie Aufnahme abrufen. Gibt 403 RECORDING_LOCKED zurück, wenn die Aufnahme gesperrt ist, und 403 TRANSCRIPT_NOT_AVAILABLE, wenn die Transkription für die Organisation oder das Mitglied deaktiviert ist. Eine Aufnahme, die noch nicht transkribiert wurde, gibt weiterhin 200 mit "status": "not_started" und einem leeren segments-Array zurück.

ParameterTypStandardBeschreibung
start_chunkZahl0Chunk-Index, ab dem gestartet werden soll
limitZahl50Anzahl der Chunks (1–100)
{
"data": {
"status": "completed",
"language": "en",
"speakers": ["Sprecher 1", "Alice"],
"duration": 1740.5,
"segments": [
{
"id": 1,
"start": 0.5,
"end": 3.2,
"text": "Guten Morgen zusammen.",
"speaker": "Alice",
"confidence": 0.97
}
],
"pagination": {
"total_chunks": 184,
"has_more": true
}
}
}

PATCH /api/v1/recordings/:id

Aktualisiert den Titel oder die Notizen einer Aufnahme. Mindestens ein Feld ist erforderlich.

{
"title": "Neuer Titel (1–500 Zeichen)",
"notes": "Optionale Notizen (max. 100.000 Zeichen)"
}
{
"data": { "success": true }
}

DELETE /api/v1/recordings/:id

Löscht eine Aufnahme und alle zugehörigen Daten (Transkript, Zusammenfassung, Freigaben) dauerhaft.

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

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

Generiert einen öffentlichen Freigabelink für die Aufnahme.

Für eine Organisationsaufnahme kann jedes Mitglied, das die Aufnahme ansehen kann, den Link erstellen. Der Link wird im Namen des Aufnahmeeigentümers erstellt und verwendet den Plan der Organisation, sodass download-Links für Organisationsaufnahmen funktionieren, auch wenn der persönliche Plan des Anrufers kostenlos ist. Gibt 403 RECORDING_LOCKED zurück, wenn die Aufnahme gesperrt ist, und 403 SHARING_DISABLED, wenn die Freigabe für die Organisation oder das Mitglied deaktiviert ist.

{
"permission": "view"
}
WertBeschreibung
viewEmpfänger können das Video ansehen und auf das Transkript/die Zusammenfassung zugreifen
downloadEmpfänger können auch die Videodatei herunterladen
{
"data": {
"share_url": "https://recordmeeting.com/app/shared/abc123",
"share_token": "abc123",
"permission": "view"
}
}

StatusBeschreibung
STARTINGAufnahme-Anfrage empfangen, Einrichtung läuft
CONNECTINGVerbindung zur Google Meet-Sitzung wird hergestellt
WAIT_APPROVALWartet auf In-Call-Genehmigung zur Aufnahme
RECORDINGAktiv aufnehmend
UPLOADINGClientseitiger Upload läuft (Chunks werden in den Speicher geschrieben)
PROCESSINGCloudflare Stream packt HLS/DASH - noch nicht abspielbar
MIGRATINGVideo vollständig abspielbar; HLS wird in Langzeitspeicher migriert
COMPLETEDAufnahme vollständig verarbeitet und gespeichert
ERRORAufnahme fehlgeschlagen

API-Konsumenten sollten MIGRATING für Wiedergabe-, Download- und Freigabeoperationen identisch mit COMPLETED behandeln - der Unterschied ist intern.