diff --git a/backend/openapi/openvidu-meet-api.yaml b/backend/openapi/openvidu-meet-api.yaml index f2820f1..d888900 100644 --- a/backend/openapi/openvidu-meet-api.yaml +++ b/backend/openapi/openvidu-meet-api.yaml @@ -17,6 +17,8 @@ paths: $ref: './paths/recordings.yaml#/~1recordings' /recordings/{recordingId}: $ref: './paths/recordings.yaml#/~1recordings~1{recordingId}' + /recordings/{recordingId}/content: + $ref: './paths/recordings.yaml#/~1recordings~1{recordingId}~1content' components: securitySchemes: $ref: './components/security.yaml' diff --git a/backend/openapi/openvidu-meet-internal-api.yaml b/backend/openapi/openvidu-meet-internal-api.yaml index b6e2a4a..f9bf812 100644 --- a/backend/openapi/openvidu-meet-internal-api.yaml +++ b/backend/openapi/openvidu-meet-internal-api.yaml @@ -20,8 +20,6 @@ paths: $ref: './paths/internal/rooms.yaml#/~1rooms~1{roomId}' /rooms/{roomId}/participant-role: $ref: './paths/internal/rooms.yaml#/~1rooms~1{roomId}~1participant-role' - /recordings/{recordingId}/stream: - $ref: './paths/internal/recordings.yaml#/~1recordings~1{recordingId}~1stream' /participants/token: $ref: './paths/internal/participants.yaml#/~1participants~1token' /participants/token/refresh: diff --git a/backend/openapi/paths/internal/recordings.yaml b/backend/openapi/paths/internal/recordings.yaml index c90ed1c..e69de29 100644 --- a/backend/openapi/paths/internal/recordings.yaml +++ b/backend/openapi/paths/internal/recordings.yaml @@ -1,78 +0,0 @@ -/recordings/{recordingId}/stream: - get: - operationId: getRecordingStream - summary: Stream an OpenVidu Meet recording - description: > - Streams the OpenVidu Meet recording with the specified recording ID. - This endpoint supports range requests, allowing partial content retrieval - for video playback without downloading the entire file. - tags: - - Internal API - Recordings - security: - - accessTokenCookie: [] - parameters: - - $ref: '../../components/parameters/recording-id.yaml' - - $ref: '../../components/parameters/recording-range.yaml' - responses: - '200': - description: Successfully streaming the full recording - headers: - Accept-Ranges: - description: Indicates that byte-range requests are supported - schema: - type: string - Content-Length: - description: The total file size in bytes - schema: - type: integer - content: - video/mp4: - schema: - type: string - format: binary - '206': - description: Partial content streaming based on byte range - headers: - Accept-Ranges: - description: Indicates that byte-range requests are supported - schema: - type: string - Content-Range: - description: Specifies the range of bytes being sent - schema: - type: string - Content-Length: - description: The length of the partial content in bytes - schema: - type: integer - content: - video/mp4: - schema: - type: string - format: binary - '400': - description: Bad Request — Invalid range header format - content: - application/json: - schema: - $ref: '../../components/schemas/error.yaml' - example: - code: 400 - message: 'Invalid Range header' - '401': - $ref: '../../components/responses/unauthorized-error.yaml' - '403': - $ref: '../../components/responses/forbidden-error.yaml' - '404': - $ref: '../../components/responses/error-room-not-found.yaml' - '416': - description: Requested range not satisfiable - content: - application/json: - schema: - $ref: '../../components/schemas/error.yaml' - example: - code: 416 - message: 'Requested range not satisfiable' - '500': - $ref: '../../components/responses/internal-server-error.yaml' diff --git a/backend/openapi/paths/recordings.yaml b/backend/openapi/paths/recordings.yaml index 5d9137d..e398685 100644 --- a/backend/openapi/paths/recordings.yaml +++ b/backend/openapi/paths/recordings.yaml @@ -178,3 +178,83 @@ $ref: '../components/responses/error-recording-in-progress.yaml' '500': $ref: '../components/responses/internal-server-error.yaml' +/recordings/{recordingId}/content: + get: + operationId: getRecordingContent + summary: Get recording content + description: > + Retrieves the content of a recording with the specified recording ID. + The content 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: [] + parameters: + - $ref: '../components/parameters/recording-id.yaml' + - $ref: '../components/parameters/recording-range.yaml' + responses: + '200': + description: Successfully streaming the full recording + headers: + Accept-Ranges: + description: Indicates that byte-range requests are supported + schema: + type: string + Content-Length: + description: The total file size in bytes + schema: + type: integer + content: + video/mp4: + schema: + type: string + format: binary + '206': + description: Partial content streaming based on byte range + headers: + Accept-Ranges: + description: Indicates that byte-range requests are supported + schema: + type: string + Content-Range: + description: Specifies the range of bytes being sent + schema: + type: string + Content-Length: + description: The length of the partial content in bytes + schema: + type: integer + content: + video/mp4: + schema: + type: string + format: binary + '400': + description: Bad Request — Invalid range header format + content: + application/json: + schema: + $ref: '../components/schemas/error.yaml' + example: + code: 400 + message: 'Invalid Range header' + '401': + $ref: '../components/responses/unauthorized-error.yaml' + '403': + $ref: '../components/responses/forbidden-error.yaml' + '404': + $ref: '../components/responses/error-room-not-found.yaml' + '416': + description: Requested range not satisfiable + content: + application/json: + schema: + $ref: '../components/schemas/error.yaml' + example: + code: 416 + message: 'Requested range not satisfiable' + '500': + $ref: '../components/responses/internal-server-error.yaml'