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
appidstringThe 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.
resourceidstringThe resource ID obtained from the acquire endpoint.
sidstringThe recording ID obtained from the start endpoint.
modestringThe recording mode:
individual: Individual recording mode.mix: Composite recording mode.web: Web page recording mode.
Header Parameters
Content-Typestringapplication/json.
Request Body
application/json
cnamestringThe name of the channel to record. Must match the cname used in the acquire request.
The name of the channel being recorded.
uidstringThe 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.
clientRequestobjectasync_stopbooleanThe 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.
Response
-
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
The request succeeded.
cnamestringThe name of the channel to be recorded.
The name of the channel being recorded.
uidstringThe UID used by the cloud recording service in the RTC channel.
resourceIdstringThe cloud recording resource ID. Valid for five minutes; re-request from acquire if expired.
The resource ID used by cloud recording.
sidstringThe recording ID. Uniquely identifies a recording session. Generated after the cloud recording service starts successfully.
The recording ID, identifying the current recording session.
serverResponseobjectThe recording stop status. The fields returned vary depending on the recording mode and whether screenshot capture is enabled.
extensionServiceStatearray<object>State of each extension service at the time of stopping. Only returned in web page recording mode.
payloadobjectService-specific state at the time of stopping.
uploadingStatusstringUpload 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.
fileListarray<object>Files generated during recording. Only returned by web_recorder_service.
filenamestringName of the M3U8 or MP4 file.
sliceStartTimeintegerRecording start time of the file, Unix timestamp in seconds.
onholdbooleanWhether recording was paused at the time of stopping. true if paused, false if running. Only returned by web_recorder_service.
statestringUpload status of the extension service. Only returned by web_recorder_service.
"init": Initializing."inProgress": Running."exit": Stopped.
serviceNamestringExtension service name:
"upload_service": Upload service."web_recorder_service": Web page recording service.
uploadingStatusstringUpload 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.
fileListModestringData 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.
fileListstring | array<object>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:
fileNamestring(array<object>)Name of the M3U8 or MP4 file.
trackTypestring(array<object>)File type:
"audio": Audio only."video": Video only."audio_and_video": Audio and video.
uidstring(array<object>)The UID whose stream is recorded. In composite recording mode, this is "0".
mixedAllUserboolean(array<object>)true if all users are recorded in a single file; false if each user is recorded separately.
isPlayableboolean(array<object>)true if the file can be played online; false if it cannot.
sliceStartTimeinteger(array<object>)Recording start time of the file, Unix timestamp in seconds.
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"}