API reference

更新时间:
复制 MD 格式

AUI Kits AppServer for interactive streaming provides backend features such as logon management and live channel management. You can integrate AUI Kits AppServer for interactive streaming and AUI Kits SDK for interactive streaming to accelerate the development and launch of an interactive streaming application.

Workflow of AppServer

image

To establish services such as interactive streaming and e-commerce live streaming based on the AUI Kits framework, the scenario-based SDKs need to be integrated with ApsaraVideo Live for regular live streams and co-streaming, and the interactive messaging (IM) service. You can also integrate the SDKs with ApsaraVideo VOD (VOD) for live stream recording based on your business requirements. AppServer encapsulates the capabilities of the preceding services and provides a set of standardized API operations over HTTP for scenario-based SDKs. This reduces the development costs.

Note

You need to deploy and maintain AppServer by yourself.

In addition to the preceding services, AppServer also provides the management service for live channels. For example, you can create or delete a live channel, or modify its information. You can also start or end a live stream.

AppServer does not directly rely on the operations provided by ApsaraVideo Live. You must construct ingest and streaming URLs based on the concatenation rules over the protocols supported by ApsaraVideo Live. AppServer also allows you to configure the callback for the stream ingest status. This way, you can troubleshoot issues related to live channel status caused by unexpected exits on the streamer side.

Note

The IM service provides the old and new IM systems. The new IM system provides more powerful and stable IM service capabilities. The old IM system will be gradually replaced with the new one and then discontinued. If you use AppServer for the first time, we recommend that you directly integrate AppServer with the new IM system. If you have integrated AppServer with the old IM system, a migration solution will be provided to help you migrate data to the new IM system in the future.

Implementation of AppServer

AppServer uses database tables to manage live channels. The following code provides an example on how to create a database table:

CREATE TABLE `room_infos` (
  `id` varchar(256) NOT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `title` varchar(256) DEFAULT NULL,
  `anchor` varchar(256) DEFAULT NULL,
  `extends` mediumtext,
  `status` bigint DEFAULT NULL,
  `mode` bigint DEFAULT NULL,
  `chat_id` varchar(256) DEFAULT NULL,
  `pk_id` varchar(256) DEFAULT NULL,
  `notice` varchar(256) DEFAULT NULL,
  `meeting_id` varchar(256) DEFAULT NULL,
  `cover_url` varchar(256) DEFAULT NULL,
  `anchor_id` varchar(256) DEFAULT NULL,
  `anchor_nick` varchar(256) DEFAULT NULL,
  `vod_id` varchar(256) DEFAULT NULL,
  `meeting_info` mediumtext,
  `started_at` datetime DEFAULT NULL,
  `stopped_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_create_at` (`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Usage notes

This service may be used by web clients. To prevent cross-domain access issues, configure cross-origin resource sharing (CORS) rules for the service.

References

API operations of AppServer

API operations

API operation

Authentication required

Required

Description

/api/v1/live/login

No

No

Initiates a logon request.

If the logon is successful, a token is returned. This token is required to access the authorized API operations.

/api/v1/live/token

Yes

Yes

Obtains the token that is used to create a connection to the IM server.

/api/v1/live/create

Yes

Yes

Creates a live channel.

/api/v1/live/list

Yes

Yes

Queries live channels by page.

/api/v1/live/get

Yes

Yes

Queries a single live channel.

/api/v1/live/start

Yes

Yes

Starts a live stream.

/api/v1/live/stop

Yes

Yes

Ends a live stream.

/api/v1/live/update

Yes

No

Updates information such as live channel announcements.

/api/v1/live/getMeetingInfo

Yes

No

This operation is available only to co-streaming scenarios.

Queries the co-streaming information.

/api/v1/live/updateMeetingInfo

Yes

No

This operation is available only to co-streaming scenarios.

Updates the co-streaming information.

/api/v2/live/token

Yes

Yes

Obtains the token that is used to create a connection to the IM server. This operation is compatible with the old and new IM systems.

/api/v2/live/create

Yes

Yes

Creates a single live channel. This operation is compatible with the old and new IM systems.

Authentication method

The authentication method provided by the demo is only for reference. You can modify the authentication policy based on your business requirements.

You must call the /login operation to obtain an authentication token and specify the token in the request header before you call other operations.

image

Operation definitions

/api/v1/live/login

You can implement this operation based on your business requirements. For example, you can specify the algorithm that is used to generate the token. In this case, make sure that the token is generated and verified by using the same algorithm.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /login

  • Authorization required: No

  • Request method: POST

  • Request Content-Type: application/json

Request parameters

Parameter

Type

Required

Example

Description

username

String

Yes

usernamexxx

The username.

password

String

Yes

passwordxxxx

The password.

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

expire

String

2023-02-28T14:38:06+08:00

The time when the token expires. The time is displayed in UTC.

token

String

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9***

The authorization token. By default, the token is generated by using a JSON Web Token (JWT) application.

Examples

Sample requests

{
 "username":"usernamexxx",
 "password":"passwordxxxx"
}

Sample success responses

{
 "code": 200,
 "expire": "2023-02-28T14:38:06+08:00",
 "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzc1NjYyODYsImlkIjoieXl5eSIsIm9yaWdfaWF0IjoxNjc3NDc5ODg2fQ.xxxxxx"
}

/api/v1/live/token

In essence, the GetMessageToken operation of the IM server is called to create the connection. For more information, see GetMessageToken.

image

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/token

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxxx

The user ID. Each user has a unique ID in the application.

device_id

String

Yes

deviceidxxx

The device ID. Each device has a unique ID.

device_type

String

Yes

The type of the device. Valid values:

  • ios

  • android

  • web

  • pc

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

access_token

String

oauth_cloud_key:***-b0YY5Gy6Q

The token that is used to create a persistent connection.

refresh_token

String

oauth_cloud_key:***-b0YY5Gy6Q

The refresh token that is used to obtain a new token if the returned token expires.

Examples

Sample requests

{
 "user_id": "useridxxxx",
 "device_id": "deviceidxxxxx",
 "device_type":"android"
}

Sample success responses

{
 "code": 200,
 "access_token": "yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOxxxxxxx",
 "refresh_token": "yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOxxxxxxx"
}

/api/v1/live/create

Implementation

image

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/create

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

title

String

Yes

titlexxxx

The title of the live channel.

notice

String

No

noticexxx

The announcement of the live channel.

anchor

String

Yes

anchorxxxx

The user ID of the streamer.

anchor_nick

String

No

anchornickxxxx

The nickname of the streamer.

mode

Integer

No

0

The live stream mode. Default value: 0. Valid values:

  • 0: regular live stream

  • 1: co-streaming

extends

String

No

{"xx":"xxx"}

The extension field. The value is a JSON string.

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

id

String

ee487235-5f9b-4cb3-82ce-45c91c3xxxx

The ID of the live channel.

created_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel was created.

updated_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel information was modified.

title

String

titlexxx

The title of the live channel.

notice

String

noticexxx

The announcement of the live channel.

cover_url

String

The thumbnail of the live channel. This is a reserved field.

anchor_id

String

anchor_idxxx

The user ID of the streamer.

anchor_nick

String

anchor_nickxxx

The nickname of the streamer.

extends

String

{"xx":"xxx"}

The extended field.

status

Integer

0

The status of the live channel. Valid values:

0: The live stream is being prepared.

1: The live stream has started.

2: The live stream has ended.

mode

Integer

0

The live stream mode. Valid values:

  • 0: regular live stream

  • 1: co-streaming

chat_id

String

ee487235-5f9b-4cb3-82ce-45c91c3xxxx

The ID of the IM group.

meeting_id

String

0a7656c4-c01b-424d-9882-xxxxxx

The co-streaming ID.

meeting_info

String

{"members":[{"user_id":"xxx","user_nick":"xxx","user_avatar":"http://xxx"}]}

The information about the viewer that is returned in a JSON string.

push_url_info

JSON

The stream ingest URLs.

push_url_info.rtmp_url

String

rtmp://pushxxxx

The URL of stream ingest over Real-Time Messaging Protocol (RTMP).

push_url_info.rts_url

String

artc://pushxxxx

The URL of stream ingest over real-time streaming (RTS).

push_url_info.srt_url

String

srt://pushxxxx

The URL of stream ingest over Secure Reliable Transport (SRT).

pull_url_info

JSON

The streaming URLs.

pull_url_info.rtmp_url

String

rtmp://pullxxxx

The URL of stream pulling over RTMP.

pull_url_info.rts_url

String

artc://pullxxxx

The URL of stream pulling over RTS.

pull_url_info.hls_url

String

http://pullxxxx.m3u8?xxxx

The URL of stream pulling over HTTP Live Streaming (HLS).

pull_url_info.flv_url

String

http://pullxxxx.flv?xxxx

The URL of stream pulling over Flash Video (FLV).

link_info

JSON

The co-streaming URLs.

link_info.rtc_push_url

String

artc://live.aliyun.com/push/xxxx

The URL of stream ingest over Real-Time Communication (RTC).

link_info.rtc_pull_url

String

artc://live.aliyun.com/play/xxxx

The URL of stream pulling over RTC.

link_info.cdn_pull_info

JSON

The streaming URLs of the viewer.

link_info.cdn_pull_info.rtmp_url

String

rtmp://pullxxxx

The URL of stream pulling over RTMP.

link_info.cdn_pull_info.rts_url

String

artc://pullxxxx

The URL of stream pulling over RTS.

link_info.cdn_pull_info.hls_url

String

http://pullxxxx.m3u8?xxxx

The URL of stream pulling over HLS.

link_info.cdn_pull_info.flv_url

String

http://pullxxxx.flv?xxxx

The URL of stream pulling over FLV.

Examples

Sample requests

{
 "title": "titlexxx",
 "notice": "noticexxx",
 "anchor":"Streamer user ID",
 "anchor_nick":"Streamer nickname",
 "mode":0,
 "extends":"{\"xx\":\"xxx\"}"
}

Sample success responses

{
 "id": "ee487235-5f9b-4cb3-82ce-45c91c365d06",
 "created_at": "2023-02-27T17:34:00.592750182+08:00",
 "updated_at": "2023-02-27T17:34:00.592750314+08:00",
 "title": "Title of the live channel",
 "notice": "23232",
 "anchor_id": "Streamer user ID",
 "anchor_nick": "",
 "extends": "{\"xx\":\"xxx\"}",
 "status": 0,
 "mode": 0,
 "chat_id": "ee487235-5f9b-4cb3-82ce-45c91c365d06",
 "meeting_id": "0a7656c4-c01b-424d-9882-a8bf44bd3a4b",
 "meeting_info": "",
 "push_url_info": {
 "rtmp_url": "rtmp://push.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06?auth_key=167809x",
 "rts_url": "artc://push.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06?auth_key=1678095xc",
 "srt_url": "srt://push.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06?auth_key=167809524x"
 },
 "pull_url_info": {
 "rtmp_url": "rtmp://pull.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06?auth_key=167809524x",
 "rts_url": "artc://pull.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06?auth_key=167809524x",
 "flv_url": "http://pull.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06.flv?auth_key=167809524x",
 "hls_url": "http://pull.h5video.vip/live/ee487235-5f9b-4cb3-82ce-45c91c365d06.m3u8?auth_key=167809524x"
 },
 "link_info": {
 "rtc_push_url": "artc://live.aliyun.com/push/0a7656c4-c01b-424d-9882-a8bf44bd3a4b?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f5b53&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b449e9a5f3f854c32fd4x",
 "rtc_pull_url": "artc://live.aliyun.com/play/0a7656c4-c01b-424d-9882-a8bf44bd3a4b?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f5b53&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b449ex",
 "cdn_pull_info": {
 "rtmp_url": "rtmp://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_0a7656c4-c01b-424d-9882-a8bf44bd3a4b_Streamer user ID_camera?auth_key=167757684x",
 "rts_url": "artc://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_0a7656c4-c01b-424d-9882-a8bf44bd3a4b_Streamer user ID_camera?auth_key=16775768x",
 "flv_url": "http://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_0a7656c4-c01b-424d-9882-a8bf44bd3a4b_Streamer user ID_camera.flv?auth_key=167757684x",
 "hls_url": "http://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_0a7656c4-c01b-424d-9882-a8bf44bd3a4b_Streamer user ID_camera.m3u8?auth_key=167757684x"
 }
 }
}

/api/v1/live/list

Implementation

image

  • The documentation of the GetGroupStatistics operation is coming soon.

  • For more information about the ListMessageGroupUserById operation, see ListMessageGroupUserById.

  • For more information about the SearchMedia operation, see SearchMedia.

  • For more information about the GetPlayInfo operation, see GetPlayInfo.

Important

The streaming URL is returned only if the user ID of the IM group owner is specified in the request.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/list

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxx

The user ID.

page_num

Integer

Yes

1

The page number. Pages start from page 1. Default value: 1.

page_size

Integer

Yes

10

The number of entries per page. Default value: 10.

im_server

JSON array

Yes

["aliyun_old","aliyun_new"]

Specifies the IM services to be used. You can specify multiple services. Default value: aliyun_old. Valid values:

  • aliyun_old

  • aliyun_new

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

id

String

ee487235-5f9b-4cb3-82ce-45c91c3xxxx

The ID of the live channel.

created_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel was created.

updated_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel information was modified.

started_at

String

2023-02-27T18:54:37+08:00

The time when the live stream started.

stopped_at

String

2023-02-27T19:25:37+08:00

The time when the live stream ended.

title

String

titlexxx

The title of the live channel.

notice

String

noticexxx

The announcement of the live channel.

cover_url

String

The thumbnail of the live channel. This is a reserved field.

anchor_id

String

anchor_idxxx

The user ID of the streamer.

anchor_nick

String

anchor_nickxxx

The nickname of the streamer.

extends

String

{"xx":"xxx"}

The extended field.

status

Integer

0

The status of the live channel. Valid values:

0: The live stream is being prepared.

1: The live stream has started.

2: The live stream has ended.

mode

Integer

0

The live stream mode. Valid values:

  • 0: regular live stream

  • 1: co-streaming

chat_id

String

ee487235-5f9b-4cb3-82ce-45c91c3xxxx

The ID of the IM group.

meeting_id

String

0a7656c4-c01b-424d-9882-xxxxxx

The co-streaming ID.

meeting_info

String

{"members":[{"user_id":"xxx","user_nick":"xxx","user_avatar":"http://xxx"}]}

The information about the viewer that is returned in a JSON string.

metrics

JSON

The group statistics.

metrics.online_count

Long

20

The number of online users.

metrics.like_count

Long

0

The number of likes.

metrics.pv

Long

30

The page views (PVs) of the IM group.

metrics.uv

Long

20

The unique visitors (UVs) of the IM group.

vod_info

JSON

The information about the recording.

vod_info.status

Integer

1

The status of the recording. Valid values:

  • 0: The recording is being prepared.

  • 1: The recording is successful.

  • 2: The recording fails.

vod_info.playlist

Array

The information about the recorded live stream.

vod_info.playlist[].bit_rate

String

858.198

The bitrate of the media stream.

vod_info.playlist[].creation_time

String

2017-06-26T06:38:48Z

The time when the audio or video file was created. The time is in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.

vod_info.playlist[].definition

String

OD

The definition of the video stream.

  • FD: low definition

  • LD: standard definition

  • SD: high definition

  • HD: ultra-high definition

  • OD: original definition

  • 2K: 2K

  • 4K: 4K

  • SQ: standard sound quality

  • HQ: high sound quality

  • AUTO: adaptive bitrate

vod_info.playlist[].duration

String

67.685

The duration of the media stream. Unit: seconds.

vod_info.playlist[].format

String

m3u8

The format of the media stream.

  • If the media file is a video, the valid values are mp4 and m3u8.

  • If the media file is an audio-only file, the value is mp3.

vod_info.playlist[].fps

String

90000.0

The frame rate of the media stream.

vod_info.playlist[].height

Long

720

The height of the media stream. Unit: pixels.

vod_info.playlist[].width

Long

1280

The width of the media stream. Unit: pixels.

vod_info.playlist[].play_url

String

https://vod.h5vxxx/Record/VOD_NO_TRANSCODE/live/b92ed0ce-e29f-4df3-984a-dbxxxx.m3u8

The playback URL of the media stream.

vod_info.playlist[].size

Long

3034884

The size of the media stream. Unit: bytes.

vod_info.playlist[].status

String

Normal

The status of the media stream. Valid values:

  • Normal: The latest transcoded stream in each quality and format is in the Normal state.

  • Invisible: If multiple streams are transcoded in the same quality and format, the latest transcoded stream is in the Normal state and other streams are in the Invisible state.

vod_info.playlist[].stream_type

String

The type of the media stream. If the media stream is a video stream, the value is video. If the media stream is an audio-only stream, the value is audio.

user_status

JSON

The status of the user.

user_status.mute

Boolean

false

Indicates whether the user is muted. Valid values:

  • true

  • false

user_status.mute_source

String

The pending parameter. No value is returned.

link_info

JSON

The co-streaming URLs.

link_info.rtc_push_url

String

artc://live.aliyun.com/push/xxxx

The URL of stream ingest over RTC.

link_info.rtc_pull_url

String

artc://live.aliyun.com/play/xxxx

The URL of stream pulling over RTC.

link_info.cdn_pull_info

JSON

The streaming URLs of the viewer.

link_info.cdn_pull_info.rtmp_url

String

rtmp://pullxxxx

The URL of stream pulling over RTMP.

link_info.cdn_pull_info.rts_url

String

artc://pullxxxx

The URL of stream pulling over RTS.

link_info.cdn_pull_info.hls_url

String

http://pullxxxx.m3u8?xxxx

The URL of stream pulling over HLS.

link_info.cdn_pull_info.flv_url

String

http://pullxxxx.flv?xxxx

The URL of stream pulling over FLV.

Examples

Sample requests

{
 "page_size": 10,
 "page_num":1,
 "user_id": "useridxxxx"
  "im_server":["aliyun_old","aliyun_new"]
}

Sample success responses

[
 {
 "id": "c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3",
 "created_at": "2023-02-27T20:45:28+08:00",
 "updated_at": "2023-02-27T20:45:28+08:00",
 "started_at": "2023-02-27T20:52:01+08:00",
 "stopped_at": "0001-01-01T00:00:00Z",
 "title": "Title of the live channel",
 "notice": "Announcement of the live channel",
 "cover_url": "",
 "anchor_id": "AUILivePusher",
 "anchor_nick": "",
 "extends": "",
 "status": 1,
 "mode": 0,
 "chat_id": "c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3",
 "meeting_id": "",
 "vod_id": "",
 "meeting_info": "",
 "metrics": {
 "online_count": 2,
 "like_count": 0,
 "pv": 12,
 "uv": 2
 },
 "vod_info": {
 "status": 1,
 "playlist": [
 {
 "bit_rate": "858.198",
 "creation_time": "2023-02-27T11:28:39Z",
 "definition": "OD",
 "duration": "67.685",
 "format": "m3u8",
 "fps": "90000.0",
 "height": 720,
 "width": 1280,
 "play_url": "https://vod.h5video.vip/liveRecord/VOD_NO_TRANSCODE/live/b92ed0ce-e29f-4df3-984a-dbdb314d7e4e/2023-02-27-19-24-38_2023-02-27-19-25-36.m3u8",
 "size": 3034884,
 "status": "Normal",
 "stream_type": "video"
 }
 ]
 },
 "user_status": {
 "mute": false,
 "mute_source": null
 },
 "pull_url_info": {
 "rtmp_url": "rtmp://pull.h5video.vip/live/c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3?auth_key=167810730x",
 "rts_url": "artc://pull.h5video.vip/live/c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3?auth_key=167810730x",
 "flv_url": "http://pull.h5video.vip/live/c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3.flv?auth_key=167810730x",
 "hls_url": "http://pull.h5video.vip/live/c8d619e2-e7ec-445d-b8a1-e1ebf967d6c3.m3u8?auth_key=167810730x"
 }
 }
]

/api/v1/live/get

This operation is implemented in the same way as the /api/v1/live/list operation. For more information, see the "/api/v1/live/list" section of this topic.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/get

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

id

String

Yes

liveIdxxxx

The ID of the live channel.

user_id

String

Yes

useridxxx

UserId

im_server

JSON array

Yes

["aliyun_old","aliyun_new"]

Specifies the IM services to be used. You can specify multiple services. Default value: aliyun_old. Valid values:

  • aliyun_old

  • aliyun_new

Response parameters

The response parameters of this operation are similar to those of the /api/v1/live/list operation. The difference is that the object of this operation is a single live channel.

Examples

Sample requests

{
 "id": "675e6783-0bac-4990-b6da-5aa890535029",
 "user_id": "Cedric8"
  "im_server":["aliyun_old","aliyun_new"]
}

Sample success responses

{
 "id": "675e6783-0bac-4990-b6da-5aa890535029",
 "created_at": "2023-02-14T14:34:14+08:00",
 "updated_at": "2023-02-14T14:34:19+08:00",
 "started_at": "2023-02-14T14:34:19+08:00",
 "stopped_at": "2023-02-14T14:34:26+08:00",
 "title": "Title of the live channel",
 "notice": "fgg",
 "cover_url": "",
 "anchor_id": "Cedric8",
 "anchor_nick": "",
 "extends": "{\"userNick\":\"Cedric8\",\"userAvatar\":\"https:\/\/img.alicdn.com\/imgextra\/i1\/O1CN01chynzk1uKkiHiQIvE_!!6000000006019-2-tps-80-80.png\"}",
 "status": 2,
 "mode": 1,
 "chat_id": "675e6783-0bac-4990-b6da-5aa890535029",
 "meeting_id": "66584c06-347f-47c6-8a18-fa2860c563ba",
 "vod_id": "",
 "meeting_info":"{\"members\":[{\"user_id\":\"Cedric8\",\"user_nick\":\"Cedric8\",\"user_avatar\":\"\",\"camera_opened\":true,\"mic_opened\":true,\"rtc_pull_url\":\"artc://live.aliyun.com/play/66584c06-347f-47c6-8a18-fa2860c563ba?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f5b53\&userId=Cedric8\&timestamp=1676442853\&token=079116a1c721ac219814d513190be48fcb324800b0b482467ddd04a178e9bf2c\"}]}",
 "metrics": {
 "online_count": 0,
 "like_count": 0,
 "pv": 18,
 "uv": 6
 },
 "vod_info": {
 "status": 0
 },
 "user_status": {
 "mute": false,
 "mute_source": []
 },
 "push_url_info": {
 "rtmp_url": "rtmp://push.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029?auth_key=1678109226-0-0-fed270f2c9d79d3216ba7cfb842b811c",
 "rts_url": "artc://push.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029?auth_key=1678109226-0-0-fed270f2c9d79d3216ba7cfb842b811c",
 "srt_url": "srt://push.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029?auth_key=1678109226-0-0-fed270f2c9d79d3216ba7cfb842b811c"
 },
 "pull_url_info": {
 "rtmp_url": "rtmp://pull.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029?auth_key=1678109226-0-0-f935f515baa272bb83c5bcc44597a3fa",
 "rts_url": "artc://pull.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029?auth_key=1678109226-0-0-f935f515baa272bb83c5bcc44597a3fa",
 "flv_url": "http://pull.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029.flv?auth_key=1678109226-0-0-059cf974a2dc12919f92b3be70a99fef",
 "hls_url": "http://pull.h5video.vip/live/675e6783-0bac-4990-b6da-5aa890535029.m3u8?auth_key=1678109226-0-0-b31e749bbead2fa86d061c3767e31401",
 },
 "link_info": {
 "rtc_push_url": "artc://live.aliyun.com/push/66584c06-347f-47c6-8a18-fa2860c563ba?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f5b53&userId=Cedric8&timestamp=1677590826&token=3833146f33fa914e3b4c25373d780f54fb3a81371fec0884ee062f25d9522566",
 "rtc_pull_url": "artc://live.aliyun.com/play/66584c06-347f-47c6-8a18-fa2860c563ba?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f5b53&userId=Cedric8&timestamp=1677590826&token=3833146f33fa914e3b4c25373d780f54fb3a81371fec0884ee062f25d9522566",
 "cdn_pull_info": {
 "rtmp_url": "rtmp://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_66584c06-347f-47c6-8a18-fa2860c563ba_Cedric8_camera?auth_key=1677590826-0-0-22af27f1cc1c9ea2362d6bb8d49dd077",
 "rts_url": "artc://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_66584c06-347f-47c6-8a18-fa2860c563ba_Cedric8_camera?auth_key=1677590826-0-0-22af27f1cc1c9ea2362d6bb8d49dd077",
 "flv_url": "http://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_66584c06-347f-47c6-8a18-fa2860c563ba_Cedric8_camera.flv?auth_key=1677590826-0-0-384a33ab3857a556d576af0f5d7563e5",
 "hls_url": "http://pull.h5video.vip/live/7c61616e-480b-4de6-b3fc-95cef48f5b53_66584c06-347f-47c6-8a18-fa2860c563ba_Cedric8_camera.m3u8?auth_key=1677590826-0-0-3ab7aeede3dcd589252c2282428f1a22"
 }
 }
}

/api/v1/live/start

This operation is implemented by modifying the status of the live channel in databases. Take note of the data consistency between the cache and the database.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/start

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxxx

The user ID. Each user has a unique ID in the application.

id

String

Yes

liveIdxxxx

The ID of the live channel.

Response parameters

For more information, see the response parameters described in the "/api/v1/live/get" section of this topic.

Examples

Sample requests

{
 "id": "675e6783-0bac-4990-b6da-5aa890535029",
 "user_id": "useridxxxx"
}

Sample success responses

For more information, see the example provided in the "/api/v1/live/get" section of this topic.

/api/v1/live/stop

This operation is implemented by modifying the status of the live channel in databases. Take note of the data consistency between the cache and the database.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/stop

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxxx

The user ID. Each user has a unique ID in the application.

id

String

Yes

liveIdxxxx

The ID of the live channel.

Response parameters

For more information, see the response parameters described in the "/api/v1/live/get" section of this topic.

Examples

Sample requests

{
 "id": "675e6783-0bac-4990-b6da-5aa890535029",
 "user_id": "useridxxxx"
}

Sample success responses

For more information, see the example provided in the "/api/v1/live/get" section of this topic.

/api/v1/live/update

This operation is implemented by modifying information about the live channel in databases.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/update

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxxx

The user ID. Each user has a unique ID in the application.

id

String

Yes

liveIdxxxx

The ID of the live channel.

title

String

No

titlexxx

The title of the live channel.

Response parameters

For more information, see the response parameters described in the "/api/v1/live/get" section of this topic.

Examples

Sample requests

{
    "id": "675e6783-0bac-4990-b6da-5aa890535029",
    "user_id": "useridxxx"
    "title": "Test title",
    "notice":"Test announcement",
    "extends":"{}"
}

Sample success responses

For more information, see the example provided in the "/api/v1/live/get" section of this topic.

/api/v1/live/getMeetingInfo

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/getMeetingInfo

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

id

String

Yes

liveIdxxxx

The ID of the live channel.

Response parameters

For more information, see the response parameters described in the "/api/v1/live/get" section of this topic.

Examples

Sample requests

{
    "id": "675e6783-0bac-4990-b6da-5aa890535029"
}

Sample success responses

For more information, see the example provided in the "/api/v1/live/get" section of this topic.

/api/v1/live/updateMeetingInfo

Modifies the co-streaming information. In most cases, this operation is triggered by the streamer.

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v1/live/updateMeetingInfo

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

id

String

Yes

liveIdxxxx

The ID of the live channel.

members

Array

Yes

The information about co-streamers.

members[].user_id

String

Yes

useridxxx

The user ID of the co-streamer.

members[].user_nick

String

Yes

usernickxxx

The nickname of the co-streamer.

members[].user_avatar

String

Yes

http://xxx.jpg

The profile picture of the co-streamer.

members[].camera_opened

Boolean

Yes

true

The camera status of the co-streamer.

members[].mic_opened

Boolean

Yes

true

The microphone status of the co-streamer.

members[].rtc_pull_url

String

Yes

The streaming URL of the co-streaming.

Response parameters

For more information, see the response parameters described in the "/api/v1/live/get" section of this topic.

Examples

Sample requests

{
  "id": "675e6783-0bac-4990-b6da-5aa890535029",
  "members": [
    {
      "user_id": "user_idxxx",
      "user_nick": "user_idxxx",
      "user_avatar": "user_idxxx",
      "camera_opened": true,
      "mic_opened": true,
      "rtc_pull_url": "artc://live.alixxx"
    }
  ]
}

Sample success responses

For more information, see the example provided in the "/api/v1/live/get" section of this topic.

/api/v1/live/getLiveJumpUrl

Generates a redirection URL to invoke the live stream assistant for streamers to enter their live channel and start a live stream.

Usage notes

  • Request path: /api/v1/live/getLiveJumpUrl

  • Request method: Post

  • Authorization required: Yes

  • Request Content-Type: application/json; charset=utf-8

Request parameters

Parameter

Type

Required

Example

Description

user_name

String

No

test***

The nickname of the user.

user_id

String

Yes

a494caec-***-695ef345db77

The user ID.

live_id

String

Yes

de1**a0,hu**9

The ID of the live stream.

Response parameters

Parameter

Type

Example

Description

code

int

200

The HTTP status code that is returned.

liveJumpUrl

String

auipusher://page/live-room?app_server=http%3A%2F%2Flive-example.live.1569899459811379.cn-hangzhou.fc.devsapp.net&token=fdasdasafdfadasd&user_id=131312414&user_name=%E7%BE%8E%E5%A5%B3%E4%B8%BB%E6%92%AD&live_id=e3141312312321

The redirection URL that is returned. The URL contains the following parameters:

  • user_name: the nickname of the user.

  • user_id: the user ID.

  • live_id: the ID of the live stream.

  • token: the signature verification parameter.

  • app_server: the endpoint.

image

/api/v1/live/verifyAuthToken

Usage notes

  • Request path: /api/v1/live/verifyAuthToken

  • Request method: Post

  • Request Content-Type: application/json; charset=utf-8

Request parameters

Parameter

Type

Required

Example

Description

user_name

String

No

BatchGetOnlineUsers

The nickname of the user. The nickname is encoded in UTF-8.

user_id

String

Yes

a494caec-***-695ef345db77

The user ID.

live_id

String

Yes

de1**a0

The ID of the live stream.

app_server

String

Yes

http://xxx

The endpoint.

token

String

Yes

7da3c10e-ce85-498a-a0ca-03d6e2297955

The signature verification parameter.

Response parameters

Parameter

Type

Example

Description

code

int

200

The HTTP status code that is returned.

loginToken

String

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxxxxxxxxxx.jIsjbRRO1B0xV2iVkshcrykz2Lj-6WcloZ9o0HkT3O0

The logon token, which is used to call the service URL.

/api/v2/live/token

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v2/live/token

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

user_id

String

Yes

useridxxxx

The user ID. Each user has a unique ID in the application.

device_id

String

Yes

deviceidxxx

The device ID. Each device has a unique ID.

Note

This parameter only applies to the aliyun_old service.

device_type

String

Yes

android

The type of the device. Valid values:

  • ios

  • android

  • web

  • pc

Note

This parameter only applies to the aliyun_old service.

im_server

JSON array

Yes

["aliyun_old","aliyun_new"]

Specifies the IM services to be used. You can specify multiple services.

  • aliyun_old

  • aliyun_new

role

String

No

admin

The role of the user. By default, this parameter is left empty. If you set this parameter to admin, the user can call management operations.

Note

This parameter only applies to the aliyun_old service.

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

aliyun_old_im

access_token

String

yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKO*******

The token of the aliyun_old service.

refresh_token

String

yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKO*******

The refresh token of the aliyun_old service.

aliyun_new_im

app_id

String

exampleapp

The App ID of the user.

app_sign

String

examplesign

The encrypted string generated by the server, which contains information such as the access domain name.

app_token

String

exampletoken

The authentication token for logon.

auth.user_id

String

123

The user ID.

auth.nonce

String

exampleAK

The nonce for authentication. The nonce is returned in the String-AK format and can be up to 64 bytes in length.

auth.timestamp

Long

1677576840

The expiration time of the token. This value is a UNIX timestamp representing the number of seconds that have elapsed since January 1, 1970, 00:00:00 UTC.

auth.role

String

admin

The role of the user. If the value is admin, the user can call management operations.

Examples

Sample requests

{
 "user_id": "useridxxxx",
 "device_id": "deviceidxxxxx",
 "device_type":"android",
 "im_server":["aliyun_old","aliyun_new"]
 "role":"admin"
}

Sample success responses

{
 "code": 200,
  "aliyun_old_im":{
     "access_token": "yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOxxxxxxx",
	 	"refresh_token": "yJlbmRwb2ludHMiOlsid3NzOi8vbWV0YXBhdGguYWxpeXVuY3MuY29tL3dzIl0sImFwcElkIjoiVFkzSTJZWDAiLCJ0b2tlbiI6Im1wLmV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSklVekkxTmlKOxxxxxxx"
  },
  "aliyun_new_im":{
    	"appid":"exampleapp",
      "appsign":"examplesign",
   		"apptoken":"exampletoken",
   		"auth":{
         "userid":"123",
         "nonce":"exampleAK", // This field can be empty.
          "timestamp":1677576840,
          "role":"admin"
    	}
  }
}

/api/v2/live/create

Usage notes

  • Request protocol: HTTP or HTTPS

  • Request path: /api/v2/live/create

  • Authorization required: Yes

  • Request method: POST

  • Request Content-Type: JSON

Request parameters

Parameter

Type

Required

Example

Description

title

String

Yes

title****

The title of the live stream. It can be up to 64 characters in length.

notice

String

No

notice****

The announcement of the live channel.

Note

This parameter only applies to the aliyun_old service.

anchor

String

Yes

anchor****

The user ID of the streamer.

anchor_nick

String

No

anchornick****

The nickname of the streamer.

Note

This parameter only applies to the aliyun_old service.

mode

Integer

No

0

The live stream mode. Default value: 0. Valid values:

  • 0: regular live stream

  • 1: co-streaming

extends

String

No

{"xx":"xxx"}

The extended field. The value is a JSON string that can be up to 512 characters in length.

im_server

JSON array

Yes

["aliyun_old","aliyun_new"]

Specifies the IM services to be used. You can specify multiple services.

  • aliyun_old

  • aliyun_new

Response parameters

Parameter

Type

Example

Description

code

Integer

200

The HTTP status code that is returned.

id

String

ee487235-5f9b-4cb3-82ce-45c91c365****

The ID of the live channel.

created_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel was created.

updated_at

String

2023-02-27T17:34:00.592750182+08:00

The time when the live channel information was modified.

title

String

title****

The title of the live channel.

notice

String

notice****

The announcement of the live channel.

cover_url

String

The thumbnail of the live channel. This is a reserved field.

anchor_id

String

anchor_id****

The user ID of the streamer.

anchor_nick

String

anchor_nick****

The nickname of the streamer.

extends

String

{"xx":"xxx"}

The extended field.

status

Integer

0

The status of the live channel. Valid values:

0: The live stream is being prepared.

1: The live stream has started.

2: The live stream has ended.

mode

Integer

0

The live stream mode. Valid values:

  • 0: regular live stream

  • 1: co-streaming

chat_id

String

ee487235-5f9b-4cb3-82ce-45c91c36****

The ID of the IM group.

meeting_id

String

0a7656c4-c01b-424d-9882-a8bf44bd****

The co-streaming ID.

meeting_info

String

{"members":[{"user_id":"xxx","user_nick":"xxx","user_avatar":"http://xxx"}]}

The information about the viewer that is returned in a JSON string.

push_url_info

JSON

The stream ingest URLs.

push_url_info.rtmp_url

String

rtmp://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167****

The URL of stream ingest over RTMP.

push_url_info.rts_url

String

artc://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=16780****

The URL of stream ingest over RTS.

push_url_info.srt_url

String

srt://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****

The URL of stream ingest over SRT.

pull_url_info

JSON

The streaming URLs.

pull_url_info.rtmp_url

String

rtmp://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****

The URL of stream pulling over RTMP.

pull_url_info.rts_url

String

artc://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****

The URL of stream pulling over RTS.

pull_url_info.hls_url

String

http://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****.flv?auth_key=167809****

The URL of stream pulling over HLS.

pull_url_info.flv_url

String

http://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****.m3u8?auth_key=167809****

The URL of stream pulling over FLV.

link_info

JSON

The co-streaming URLs.

link_info.rtc_push_url

String

artc://live****.aliyun.com/push/0a7656c4-c01b-424d-9882-a8bf44bd****?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f****&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b449e9a5f3f854c32****

The URL of stream ingest over RTC.

link_info.rtc_pull_url

String

artc://live****.aliyun.com/play/0a7656c4-c01b-424d-9882-a8bf44bd****?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f*****&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b****

The URL of stream pulling over RTC.

link_info.cdn_pull_info

JSON

The streaming URLs of the viewer.

link_info.cdn_pull_info.rtmp_url

String

rtmp://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera?auth_key=167757****

The URL of stream pulling over RTMP.

link_info.cdn_pull_info.rts_url

String

artc://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera?auth_key=16775****

The URL of stream pulling over RTS.

link_info.cdn_pull_info.hls_url

String

http://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera.flv?auth_key=167757****

The URL of stream pulling over HLS.

link_info.cdn_pull_info.flv_url

String

http://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera.m3u8?auth_key=167757****

The URL of stream pulling over FLV.

Examples

Sample requests

{
 "title": "title****",
 "notice": "notice****",
 "anchor":"anchor****",
 "anchor_nick":"anchornick****",
 "mode":0,
 "extends":"{\"xx\":\"xxx\"}",
 "im_server":["aliyun_old","aliyun_new"]
}

Sample success responses

{
 "id": "ee487235-5f9b-4cb3-82ce-45c91c36****",
 "created_at": "2023-02-27T17:34:00.592750182+08:00",
 "updated_at": "2023-02-27T17:34:00.592750314+08:00",
 "title": "title****",
 "notice": "notice****",
 "anchor_id": "anchor_id****",
 "anchor_nick": "anchor_nick****",
 "extends": "{\"xx\":\"xxx\"}",
 "status": 0,
 "mode": 0,
 "chat_id": "ee487235-5f9b-4cb3-82ce-45c91c36****",
 "meeting_id": "0a7656c4-c01b-424d-9882-a8bf44bd****",
 "meeting_info": "",
 "push_url_info": {
 "rtmp_url": "rtmp://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167****",
 "rts_url": "artc://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=16780****",
 "srt_url": "srt://push.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****"
 },
 "pull_url_info": {
 "rtmp_url": "rtmp://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****",
 "rts_url": "artc://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****?auth_key=167809****",
 "flv_url": "http://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****.flv?auth_key=167809****",
 "hls_url": "http://pull.h5v****.vip/live/ee487235-5f9b-4cb3-82ce-45c91c36****.m3u8?auth_key=167809****"
 },
 "link_info": {
 "rtc_push_url": "artc://live****.aliyun.com/push/0a7656c4-c01b-424d-9882-a8bf44bd****?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f****&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b449e9a5f3f854c32anchor****",
 "rtc_pull_url": "artc://live****.aliyun.com/play/0a7656c4-c01b-424d-9882-a8bf44bd****?sdkAppId=7c61616e-480b-4de6-b3fc-95cef48f****&userId=Streamer user ID&timestamp=1677576840&token=95e014264c0b937b4anchor****",
 "cdn_pull_info": {
 "rtmp_url": "rtmp://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera?auth_key=167757****",
 "rts_url": "artc://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera?auth_key=16775****",
 "flv_url": "http://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera.flv?auth_key=167757****",
 "hls_url": "http://pull.h5v****.vip/live/7c61616e-480b-4de6-b3fc-95cef48f****_0a7656c4-c01b-424d-9882-a8bf44bd****_Streamer user ID_camera.m3u8?auth_key=167757****"
 }
 }
}