getCloudRecords (getCloudRecords: Query device cloud video clips in reverse order)
getCloudRecords: getCloudRecords: Query device cloud video clips in reverse order
Function details
Query all video records according to conditions (display in reverse order).
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/getCloudRecords
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Minimum permissions required for sub-account token request
"Permission":"RecordReplay" "Resource":"cam:serial number:channel number"
Incoming parameter description
| Parameter name | Parameter type | Required or not | Default value | Legal value | Parameter description |
|---|---|---|---|---|---|
| token | String | Yes | Administrator or sub-account accessToken | ||
| deviceId | String | Yes | Device serial number | ||
| channelId | String | Yes | Channel ID | ||
| beginTime | String | Yes | Start time, yyyy-MM-dd HH:mm:ss | ||
| endTime | String | Yes | End time, yyyy-MM-dd HH:mm:ss | ||
| count | Long | Yes | 1–100 | Number of records per page (max 100). | |
| recordId | String | No | -1 | Cursor start recording ID; omit on the first page (equivalent to -1). | |
| nextRecordId | String | No | Last recordId from the previous page; use with nextRecordRegionId for cursor paging instead of changing endTime. | ||
| nextRecordRegionId | String | No | recordRegionId that pairs with nextRecordId for cursor paging. | ||
| cloudType | String | no | video: video recording; snapshot: snapshot recording. | recording type to query. Default value is video |
Query Strategy:
Sort the cloud video clips in descending order according to the begin and end time, and return the cloud video clip information of the previous count.
Time-window paging: In the next query, continue forward with the minimum
beginTimeof the previous batch as the newendTime(orbeginTimeminus one second).Cursor paging: Pass
recordId(default-1) and the previous page'snextRecordId/nextRecordRegionIdto fetch the next page without changingbeginTime/endTime.Example:Traverse and query the video clip information from 10:00:00 of 2021-12-01 to 11:00:00 of 2021-12-01.
step 1: Set beginTime = 2021-12-01 10:00:00, endTime = 2021-12-01 11:00:00, count = 30, call getCloudRecords, and the platform returns 30 video clips.
step 2: Take the minimum beginTime(2021-12-01 10:30:00) of the video clip as the endTime input parameter for the next query, continue to call getCloudRecords, and cycle this operation.
step 3: When the minimum beginTime of video clips is less than or equal to the query begin time, or the number of video clips returned by getCloudRecords is less than the count value, the traversal can be considered to be completed.
Sample input
{
"id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1599031074,
"nonce":"8ec8a7bd1d1c95420de20d92422d457d"
},
"params":{
"token":"At_12345678901234567890123456789012",
"deviceId":"TESTQWERXXXX",
"channelId":"0",
"beginTime":"2016-05-19 00:00:00",
"endTime":"2016-05-19 23:59:59",
"count":30
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| records.recordId | String | Recording Id |
| records.deviceId | String | Device serial number |
| records.channelId | String | Channel number |
| records.beginTime | String | Start time |
| records.endTime | String | End time |
| records.size | String | The size of cloud video (unit byte) |
| records.thumbUrl | String | Thumbnail Url |
| records.encryptMode | Integer | Encryption mode (0: default encryption mode; 1: user encryption mode) |
| records.recordRegionId | String | Recording partition id |
| records.type | String | Recording type: 1000 event cloud recording, 2000 continuous cloud recording, 10001 humanoid detection cloud recording |
Sample output
{
"id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result":{
"data":{
"records":[{
"recordId":"1234567890",
"deviceId":"TESTQWERXXXX",
"channelId":"0",
"beginTime":"2016-05-19 00:30:59",
"endTime":"2016-05-19 00:31:36",
"size":"123456",
"thumbUrl":"http://lechangecloud/20160519",
"encryptMode":0,
"recordRegionId":"XXXXXXXXX",
"type":"2000"
}]
},
"code":"0",
"msg":"The operation was successful"
}
}
Error codes
This method may return the codes below. See Return codes and Capability errors for the full catalog.
Gateway and auth (SN / TK / OP)
| Code | Meaning | Next step |
|---|---|---|
SN1001 | Signature error | Check sign per Development specification |
TK1002 | Token invalid or expired | Refresh accessToken |
OP1002 | Missing required parameter | Add required fields |
OP1003 | Invalid parameter | Match this page’s parameter table |
OP1009 | Permission denied | Check token and device bind/share grants |
OP1013 | Total call limit exceeded | Reduce call rate |
OP1014 | Daily per-interface limit exceeded | See Interface call limits |
DV1007 | Device offline | Wait until the device is online |
See Return codes · OP/SN/TK for the full catalog.
Sub-accounts (SUB)
| Code | Meaning | Next step |
|---|---|---|
SUB1001–SUB1002 | Sub-account lacks API permission | Update policy via addPolicy |
SUB1005 | Sub-account token expired | Refresh subAccountToken |
SUB1006 | No device grant for sub-account | Check Resource and device serial |
SUB1008 | Sub-account not bound to app | Create and bind the sub-account first |
See Return codes · SUB.
Device access and channels (DV10xx)
| Code | Meaning | Next step |
|---|---|---|
DV1007 | Device offline or timeout | Wait for the device to come online |
DV1009 | Device busy | Retry later |
DV1012 | Insufficient share/grant permission | Check sub-account Permission / Resource |
DV1019 | Capability not supported | Confirm model and capability list |
DV1020 | Channel offline | Check channel status |
DV1026 | Function not supported | Use another API or upgrade firmware |
DV1028 | Not bound or channel missing | Verify deviceId / channelId |
See Return codes · DV.
Cloud storage plans (ST)
| Code | Meaning | Next step |
|---|---|---|
ST1004 | Cloud storage not enabled | openCloudRecord |
ST1005 | Cloud storage expired | Renew or change plan |
ST1006 | Plan does not exist | Verify strategyId |
ST1009 | Paid plan still active | Handle existing plan first |
ST1010 | Device does not support plan | Choose a supported plan |
See Return codes · ST.
