bindDeviceLive (bindDeviceLive: Create device source live broadcast address)
bindDeviceLive: bindDeviceLive: Create device source live broadcast address
Function details
Create device source live broadcast address. Important: After the live broadcast address is made public, others can directly view the camera video footage. Please take good care of your live broadcast address.
- The live broadcast address will be deleted automatically when the device is unbound;
- When the device channel creates a live broadcast, the platform creates HD main stream, SD secondary stream, HTTP, and HTTPS addresses by default; this API returns the HTTP live URL for the selected stream;
- You can find all live broadcast addresses through the getLiveStreamInfo interface or in the developer console interface.
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/bindDeviceLive
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Incoming parameter description
| Parameter name | Parameter type | Required or not | Default value | Legal value | Parameter description |
|---|---|---|---|---|---|
| token | String | Yes | Administrator accessToken | ||
| deviceId | String | Yes | Device serial number | ||
| channelId | String | Yes | Channel ID | ||
| streamId | Integer | Yes | Stream type, 0: HD main stream; 1: SD auxiliary stream | ||
| liveMode | String | No | cdn | cdn, proxy | Optional. Omit or pass cdn (default) for CDN pull; pass proxy for proxy pull. |
Sample input
{
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1603366491,
"nonce":"7aed0429-1a92-4a51-b8b0-cfebb60dcc85"
},
"id":"a25f887f-33f0-44ef-9ed3-f60f83193482",
"params":{
"streamId":1,
"deviceId":"TESTQWERXXXX",
"channelId":"0",
"token":"At_00000ad9e6e87f0142eb92e207aec46a"
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| liveToken | String | Live broadcast authorization token |
| liveStatus | Integer | Live broadcast status (1: open; 2: pause; 3: insufficient traffic) |
| liveType | Integer | Type of live source (1: device; 2: stream address) |
| deviceId | String | Device serial number |
| channelId | String | Channel number |
| coverUpdate | Integer | Video cover update frequency (unit: s) |
| streams.hls | String | Live stream hls access address |
| streams.coverUrl | String | Video cover image link url |
| streams.streamId | Integer | Stream type (0: HD main stream; 1: SD secondary stream) (when the live broadcast address is generated by the rtsp source, this field is not available) |
| job.status | Boolean | Live broadcast plan status (true: on; false: off) |
| job.period | String | Duty cycle |
Sample output
{
"result":{
"msg":"The operation was successful.",
"code":"0",
"data":{
"liveType":1,
"coverUpdate":90,
"streams":[
{
"coverUrl":"http://livecloudpic.lechange.com/LCO/TESTQWERXXXX/0/1/20201022T113914/dev_TESTQWERXXXX_20201022T113914.jpg",
"streamId":1,
"hls":"http://cmgw-vpc.lechange.com:8888/LCO/TESTQWERXXXX/0/1/20201022T113914/dev_TESTQWERXXXX_20201022T113914.m3u8"
}
],
"liveToken":"57877dd6774f4cbeb657568be0b7a621",
"job":[
{
"period":"always",
"status":true
}
],
"deviceId":"TESTQWERXXXX",
"liveStatus":1,
"channelId":"0"
}
},
"id":"a25f887f-33f0-44ef-9ed3-f60f83193482"
}
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.
Live binding (LV)
| Code | Meaning | Next step |
|---|---|---|
LV1001 | Live already exists | Unbind via unbindLive or use another source |
| :--- | :--- | :--- |
LV1002 | Live does not exist | Create the live plan first |
| :--- | :--- | :--- |
LV1005 | Live info does not exist | Verify live id |
| :--- | :--- | :--- |
LV1006 | Same RTSP source can bind only once per day | Retry the next day |
| :--- | :--- | :--- |
LV1008 | Real-name verification required | Complete profile in the Open Platform console |
| :--- | :--- | :--- |
LV1020 | Live is bound and cannot be deleted | Unbind first |
| :--- | :--- | :--- |
OP1021 | Failed to get playback URL | Check live status and plan |
| :--- | :--- | :--- |
OP1022 | Cloud decode authorization required | Authorize in the app as described in the response |
