本文介绍视频直播服务端Python SDK的使用方法和示例代码。以查询导播台列表接口为例,帮助您快速掌握视频直播接口的使用方法。
前提条件
已安装Python 2.7或以上版本。
已下载服务端Python SDK,详细信息,请参见SDK下载。
操作步骤
安装SDK。
安装阿里云核心SDK。
sudo pip install aliyun-python-sdk-core
安装阿里云视频直播SDK。
sudo pip install aliyun-python-sdk-live
更新SDK。
更新阿里云核心SDK。
sudo pip install aliyun-python-sdk-core --upgrade
更新阿里云视频直播SDK。
sudo pip install aliyun-python-sdk-live --upgrade
使用SDK。
文件说明。本文以SDK中的
DescribeCastersRequest.py
文件为例介绍。# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # # http://www.apache.org/licenses/LICENSE-2.0 # # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. from aliyunsdkcore.request import RpcRequest from aliyunsdklive.endpoint import endpoint_data class DescribeCastersRequest(RpcRequest): def __init__(self): RpcRequest.__init__(self, 'live', '2016-11-01', 'DescribeCasters','live') self.set_method('POST') if hasattr(self, "endpoint_map"): setattr(self, "endpoint_map", endpoint_data.getEndpointMap()) if hasattr(self, "endpoint_regional"): setattr(self, "endpoint_regional", endpoint_data.getEndpointRegional()) def get_StartTime(self): # String return self.get_query_params().get('StartTime') def set_StartTime(self, StartTime): # String self.add_query_param('StartTime', StartTime) def get_PageNum(self): # Integer return self.get_query_params().get('PageNum') def set_PageNum(self, PageNum): # Integer self.add_query_param('PageNum', PageNum) def get_CasterName(self): # String return self.get_query_params().get('CasterName') def set_CasterName(self, CasterName): # String self.add_query_param('CasterName', CasterName) def get_PageSize(self): # Integer return self.get_query_params().get('PageSize') def set_PageSize(self, PageSize): # Integer self.add_query_param('PageSize', PageSize) def get_NormType(self): # String return self.get_query_params().get('NormType') def set_NormType(self, NormType): # String self.add_query_param('NormType', NormType) def get_CasterId(self): # String return self.get_query_params().get('CasterId') def set_CasterId(self, CasterId): # String self.add_query_param('CasterId', CasterId) def get_EndTime(self): # String return self.get_query_params().get('EndTime') def set_EndTime(self, EndTime): # String self.add_query_param('EndTime', EndTime) def get_OwnerId(self): # Long return self.get_query_params().get('OwnerId') def set_OwnerId(self, OwnerId): # Long self.add_query_param('OwnerId', OwnerId) def get_OrderByModifyAsc(self): # String return self.get_query_params().get('OrderByModifyAsc') def set_OrderByModifyAsc(self, OrderByModifyAsc): # String self.add_query_param('OrderByModifyAsc', OrderByModifyAsc) def get_ChargeType(self): # Integer return self.get_query_params().get('ChargeType') def set_ChargeType(self, ChargeType): # Integer self.add_query_param('ChargeType', ChargeType) def get_Status(self): # Integer return self.get_query_params().get('Status') def set_Status(self, Status): # Integer self.add_query_param('Status', Status)
该文件中对于DescribeCastersRequest这个类,有若干组一一对应的
get_X
和set_X
方法,分别用于获取和设定该API请求的参数。创建一个名为 config.ini 的配置文件放在建议目录conf中,其中包含 AK/SK 信息。配置文件的内容如下:
[default] access_key_id = YOUR_ACCESS_KEY_ID access_key_secret = YOUR_ACCESS_KEY_SECRET
请将 YOUR_ACCESS_KEY_ID 和 YOUR_ACCESS_KEY_SECRET 替换为您的实际 AK/SK 值。
然后,可以使用以下 Python 代码读取配置文件并调用阿里云 SDK。
此处以v20161101版本为例,调用DescribeCasters接口:
#!/usr/bin/env python #coding=utf-8 from configparser import ConfigParser from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkcore.auth.credentials import AccessKeyCredential from aliyunsdkcore.auth.credentials import StsTokenCredential from aliyunsdklive.request.v20161101.DescribeCastersRequest import DescribeCastersRequest config = ConfigParser() config.read('conf/config.ini') # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。 # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。 # 本示例通过从配置文件中读取AccessKey,来实现API访问的身份验证。 access_key_id = config.get('default', 'access_key_id') access_key_secret = config.get('default', 'access_key_secret') #初始化client #AK和Secrect需要自己提供(可以在阿里云控制台中找到) #以访问cn-hangzhou region为例 credentials = AccessKeyCredential(access_key_id, access_key_secret) # use STS Token # credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>') client = AcsClient(region_id='cn-hangzhou', credential=credentials) #构造需发起的API请求调用 request = DescribeCastersRequest() request.set_accept_format('json') request.set_CasterId("testCase") request.set_CasterName("testName") request.set_StartTime("2020-01-01T12:00:01") #发起请求 response = client.do_action_with_exception(request) # python2: print(response) #请求结果 print(str(response, encoding='utf-8'))
后续步骤
如果您需要移除SDK,请执行以下命令:
sudo pip uninstall aliyun-python-sdk-core
sudo pip uninstall aliyun-python-sdk-live