Stop a cloud recording task
Updated
Stops an active cloud recording task.
https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/stopCall this endpoint to leave the channel and stop cloud recording. To start recording again after stopping, call acquire to get a new resource ID.
Note
- This endpoint is only valid within an active recording session. If the recording was not started successfully or has already ended, the request returns
404. - In non-web page recording modes, if the channel is idle for longer than the
maxIdleTimevalue set instart(default 30 seconds), cloud recording automatically leaves the channel and stops.
Path Parameters
The App ID of your project.
- For web page recording mode, enter the App ID for which the cloud recording service is enabled.
- For individual and composite recording modes, use the same App ID as the channel to be recorded. Ensure that the cloud recording service has been enabled for this App ID.
The resource ID obtained from the acquire endpoint.
The recording ID obtained from the start endpoint.
The recording mode:
individual: Individual recording mode.mix: Composite recording mode.web: Web page recording mode.
individual | mix | webHeader Parameters
Request Body
application/json
The name of the channel to record. Must match the cname used in the acquire request.
The name of the channel being recorded.
The UID used by the cloud recording service in the channel. Must match the uid used in the acquire request.
The UID used by the cloud recording service in the RTC channel.
The response mechanism for the stop request:
true: Asynchronous. Returns a response immediately after the request is received, without waiting for the recording files to finish uploading.false: Synchronous. Returns a response only after all recorded files have been uploaded to third-party cloud storage. Agora expects the upload to complete within 20 seconds. If it exceeds this limit, the response returns error code50.
falseResponse
-
If the returned status code is
200, the request was successful. -
If the returned status code is not
200, the request failed. See Response status codes for troubleshooting.
Response Body
application/json
Response schema
200The request succeeded.
The recording stop status. The fields returned vary depending on the recording mode and whether screenshot capture is enabled.
State of each extension service at the time of stopping. Only returned in web page recording mode.
Service-specific state at the time of stopping.
Upload status of the recording files. Only returned by upload_service.
"uploaded": All recording files have been uploaded to the specified third-party cloud storage."backuped": All files have been uploaded, but at least one TS file was uploaded to Agora backup cloud. The Agora server will automatically continue uploading to the designated third-party cloud storage."unknown": Unknown status.
Files generated during recording. Only returned by web_recorder_service.
Name of the M3U8 or MP4 file.
Recording start time of the file, Unix timestamp in seconds.
Whether recording was paused at the time of stopping. true if paused, false if running. Only returned by web_recorder_service.
Upload status of the extension service. Only returned by web_recorder_service.
"init": Initializing."inProgress": Running."exit": Stopped.
Extension service name:
"upload_service": Upload service."web_recorder_service": Web page recording service.
Upload status of the recording files. Only returned in individual recording mode when screenshot capture is enabled, and in individual and composite recording modes when screenshot capture is not enabled.
"uploaded": All recording files have been uploaded to the specified third-party cloud storage."backuped": All files have been uploaded, but at least one TS file was uploaded to Agora backup cloud. The Agora server will automatically continue uploading to the designated third-party cloud storage."unknown": Unknown status.
Data format of fileList. Only returned in individual and composite recording modes when screenshot capture is not enabled.
"string": In composite recording mode whenavFileTypeis["hls"]."json": WhenavFileTypeis["hls","mp4"]in individual or composite recording mode.
The recorded files. Only returned in individual and composite recording modes when screenshot capture is not enabled. When fileListMode is "string", this is the filename of the M3U8 file. When fileListMode is "json", this is an array of objects with the following fields:
Name of the M3U8 or MP4 file.
File type:
"audio": Audio only."video": Video only."audio_and_video": Audio and video.
The UID whose stream is recorded. In composite recording mode, this is "0".
true if all users are recorded in a single file; false if each user is recorded separately.
true if the file can be played online; false if it cannot.
Recording start time of the file, Unix timestamp in seconds.
The cloud recording resource ID. Valid for five minutes; re-request from acquire if expired.
The resource ID used by cloud recording.
The recording ID. Uniquely identifies a recording session. Generated after the cloud recording service starts successfully.
The recording ID, identifying the current recording session.
The name of the channel to be recorded.
The name of the channel being recorded.
The UID used by the cloud recording service in the RTC channel.
defaultThe request failed. If the HTTP status code is not 200, see the Cloud Recording response status codes for troubleshooting.
Response example
{
"resourceId": "JyvK8nXHuV1BE.....",
"sid": "38f8e3cfdc474cd56fc1ceba380d7e1a",
"serverResponse": {
"extensionServiceState": [
{
"payload": {
"uploadingStatus": "uploaded"
},
"serviceName": "upload_service"
}
]
},
"cname": "httpClient463224",
"uid": "527841"
}
{
"code": 62,
"reason": "request timeout"
}
Request examples
curl --request POST \
--url https://api.sd-rtn.com/v1/apps/{appid}/cloud_recording/resourceid/{resourceid}/sid/{sid}/mode/{mode}/stop \
--header 'Authorization: Basic <credentials>' \
--header 'Content-Type: application/json' \
--data '{
"cname": "httpClient463224",
"uid": "527841",
"clientRequest": {
"async_stop": false
}
}'
Response example
{ "resourceId": "string", "sid": "string", "serverResponse": { "extensionServiceState": [ { "payload": { "uploadingStatus": "string" }, "serviceName": "string" } ] }, "cname": "string", "uid": "string"}