场景案例

本文以Python SDK为例介绍基本接口的使用案例。

初始化client

import os
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_vs20181212 import models as vs_20181212_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_vs20181212.client import Client as vs20181212Client

config = open_api_models.Config(
    # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。,
    access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
    # 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。,
    access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
)
# Endpoint 请参考 https://api.aliyun.com/product/vs
config.endpoint = f'vs.cn-qingdao.aliyuncs.com'
c = vs20181212Client(config)

获取空间列表

describe_groups_request = vs_20181212_models.DescribeGroupsRequest(
    page_num=1    # 可选,指定查询第几页
)
runtime = util_models.RuntimeOptions()
resp = c.describe_groups_with_options(describe_groups_request, runtime)
print(resp)

获取设备列表

  • 可按照空间ID查询空间内的设备列表。若空间ID未知,请先参考获取空间列表选取目标空间。

describe_devices_request = vs_20181212_models.DescribeDevicesRequest(
    id='id'    # 可选,指定空间ID查询
)
runtime = util_models.RuntimeOptions()
resp = c.describe_devices_with_options(describe_devices_request, runtime)
print(resp)

获取流列表

  • 可按照空间ID查询空间内的流列表。若空间ID未知,请先参考获取空间列表选取目标空间。

  • 亦可按照设备ID查询设备上的流列表。若设备ID未知,请先参考获取设备列表选取目标设备。

describe_streams_request = vs_20181212_models.DescribeStreamsRequest(
    group_id='GroupId',      # 可选,指定空间ID查询
    device_id='DeviceId'     # 可选,指定设备ID查询
)
runtime = util_models.RuntimeOptions()
resp = c.describe_streams_with_options(describe_streams_request, runtime)
print(resp)

获取流的播放地址

  • 可根据流ID获取播放地址。若流ID未知,请先参考获取流列表选取目标流。

describe_stream_urlrequest = vs_20181212_models.DescribeStreamURLRequest(
    id='id',                # 必选,流ID
    out_protocol='rtmp',    # 必选,播放协议。取值:rtmp、flv、hls
    auth_key='AuthKey',     # 必选,播放域名关联的主key,用于生成鉴权URL
    type='live'             # 可选,流类型。取值:live、vod
)
runtime = util_models.RuntimeOptions()
resp = c.describe_stream_urlwith_options(describe_stream_urlrequest, runtime)
print(resp)

获取录制列表

  • 可根据流ID获取录制列表。若流ID未知,请先参考获取流列表选取目标流。

describe_records_request = vs_20181212_models.DescribeRecordsRequest(
    type='record',         # 必选,按存储记录类型查询。取值:record(录制),snapshot(截图)
    stream_id='StreamId',  # 必选,流ID
    start_time='StreamTime',  # 必选,查询的开始时间。格式:2019-10-08T14:02:00Z
    end_time='EndTime',   # 必选,查询的结束时间。格式:2019-10-09T14:02:00Z
    page_num=1,           # 可选,第几个分页,默认为1
    page_size=20          # 可选,分页大小,默认为20
)
runtime = util_models.RuntimeOptions()
resp = c.describe_records_with_options(describe_records_request, runtime)
print(resp)