openvidu/backend/openapi/paths/recordings.yaml

248 lines
10 KiB
YAML

/recordings:
get:
operationId: getRecordings
summary: Get all recordings
description: >
Retrieves a paginated list of all recordings available in the system.
You can apply filters to narrow down the results based on specific criteria.
> **Note:** If this endpoint is called using the `recordingTokenCookie` authentication method,
the `roomId` filter will be ignored and only recordings associated with the room included in the token will be returned.
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- recordingTokenCookie: []
parameters:
# - name: status
# in: query
# required: false
# description: |
# Filter recordings by their status.
# Possible values:
# - `STARTING`
# - `ACTIVE`
# - `ENDING`
# - `COMPLETE`
# - `FAILED`
# - `ABORTED`
# - `LIMITED_REACHED`
# You can provide multiple statuses as a comma-separated list (e.g., `status=ACTIVE,FAILED`).
# If not specified, recordings with any status will be returned.
# > ⚠️ **Note:** Using this filter may impact performance for large datasets.
# schema:
# type: string
- $ref: '../components/parameters/recording-fields.yaml'
- $ref: '../components/parameters/room-id-query.yaml'
- $ref: '../components/parameters/max-items.yaml'
- $ref: '../components/parameters/next-page-token.yaml'
responses:
'200':
$ref: '../components/responses/success-get-recordings.yaml'
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'
delete:
operationId: bulkDeleteRecordings
summary: Bulk delete recordings
description: >
Deletes multiple recordings at once with the specified recording IDs.
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- $ref: '../components/parameters/recording-ids.yaml'
responses:
'200':
$ref: '../components/responses/success-bulk-delete-recordings.yaml'
description: >
**Mixed results**. Some recordings were deleted successfully while others
could not be deleted (e.g., due to being in progress or not found).
'204':
description: >
All specified recordings were deleted successfully.
No content is returned.
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'
/recordings/{recordingId}:
get:
operationId: getRecording
summary: Get a recording
description: >
Retrieves the details of a recording with the specified recording ID.
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- recordingTokenCookie: []
parameters:
- $ref: '../components/parameters/recording-id.yaml'
responses:
'200':
$ref: '../components/responses/success-get-recording.yaml'
'400':
$ref: '../components/responses/error-invalid-recording-secret.yaml'
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'404':
$ref: '../components/responses/error-recording-not-found.yaml'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'
delete:
operationId: deleteRecording
summary: Delete a recording
description: >
Deletes a recording with the specified recording.
The recording will only be deleted if it exists and is not in progress (i.e., not in a state such as `ACTIVE`, `STARTING`, or `ENDING`).
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- recordingTokenCookie: []
parameters:
- $ref: '../components/parameters/recording-id.yaml'
responses:
'204':
description: Recording successfully deleted. No content is returned.
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'404':
$ref: '../components/responses/error-recording-not-found.yaml'
'409':
$ref: '../components/responses/error-recording-in-progress.yaml'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'
/recordings/{recordingId}/media:
get:
operationId: getRecordingMedia
summary: Get recording media
description: >
Retrieves the media of a recording with the specified recording ID.
The media is returned in a binary format suitable for video playback.
This endpoint supports range requests, allowing partial content retrieval
for video playback without downloading the entire file.
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- recordingTokenCookie: []
parameters:
- $ref: '../components/parameters/recording-id.yaml'
- $ref: '../components/parameters/recording-secret.yaml'
- $ref: '../components/parameters/recording-range.yaml'
responses:
'200':
description: Successfully streaming the full recording
headers:
Accept-Ranges:
$ref: '../components/headers/accept-ranges.yaml'
Content-Length:
$ref: '../components/headers/content-length.yaml'
Cache-Control:
$ref: '../components/headers/cache-control.yaml'
content:
video/mp4:
schema:
type: string
format: binary
'206':
description: Partial content streaming based on byte range
headers:
Accept-Ranges:
$ref: '../components/headers/accept-ranges.yaml'
Content-Length:
$ref: '../components/headers/content-length.yaml'
Cache-Control:
$ref: '../components/headers/cache-control.yaml'
Content-Range:
$ref: '../components/headers/content-range.yaml'
content:
video/mp4:
schema:
type: string
format: binary
'400':
$ref: '../components/responses/error-invalid-recording-secret.yaml'
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'404':
$ref: '../components/responses/error-recording-not-found.yaml'
'409':
$ref: '../components/responses/error-recording-in-progress.yaml'
'416':
description: Requested range not satisfiable
content:
application/json:
schema:
$ref: '../components/schemas/error.yaml'
example:
code: 416
message: 'Requested range not satisfiable'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'
/recordings/{recordingId}/url:
get:
operationId: getRecordingUrl
summary: Get recording URL
description: >
Retrieves the URL of a recording with the specified recording ID.
This URL is intended to be shared with people who do not have direct access to the recording.
It can be configured to be accessible by anyone (public access) or restricted to authenticated users only,
depending on the `privateAccess` query parameter.
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- recordingTokenCookie: []
parameters:
- $ref: '../components/parameters/recording-id.yaml'
- $ref: '../components/parameters/private-access.yaml'
responses:
'200':
$ref: '../components/responses/success-get-recording-url.yaml'
'401':
$ref: '../components/responses/unauthorized-error.yaml'
'403':
$ref: '../components/responses/forbidden-error.yaml'
'404':
$ref: '../components/responses/error-recording-not-found.yaml'
'422':
$ref: '../components/responses/validation-error.yaml'
'500':
$ref: '../components/responses/internal-server-error.yaml'