# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed 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.
import json
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.common.abstract_client import AbstractClient
from tencentcloud.ame.v20190916 import models
class AmeClient(AbstractClient):
_apiVersion = '2019-09-16'
_endpoint = 'ame.tencentcloudapi.com'
_service = 'ame'
def BatchDescribeKTVMusicDetails(self, request):
"""根据 Id 列表查询歌曲的详细信息,包含基础信息及播放信息。
:param request: Request instance for BatchDescribeKTVMusicDetails.
:type request: :class:`tencentcloud.ame.v20190916.models.BatchDescribeKTVMusicDetailsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.BatchDescribeKTVMusicDetailsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("BatchDescribeKTVMusicDetails", params, headers=headers)
response = json.loads(body)
model = models.BatchDescribeKTVMusicDetailsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def CreateKTVRobot(self, request):
"""创建机器人,支持进入 RTC 房间,播放直播互动曲库歌曲。
:param request: Request instance for CreateKTVRobot.
:type request: :class:`tencentcloud.ame.v20190916.models.CreateKTVRobotRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.CreateKTVRobotResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("CreateKTVRobot", params, headers=headers)
response = json.loads(body)
model = models.CreateKTVRobotResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeAuthInfo(self, request):
"""获取授权项目信息列表
:param request: Request instance for DescribeAuthInfo.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeAuthInfoRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeAuthInfoResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeAuthInfo", params, headers=headers)
response = json.loads(body)
model = models.DescribeAuthInfoResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeCloudMusic(self, request):
"""获取云音乐播放信息接口
:param request: Request instance for DescribeCloudMusic.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeCloudMusicRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeCloudMusicResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeCloudMusic", params, headers=headers)
response = json.loads(body)
model = models.DescribeCloudMusicResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeCloudMusicPurchased(self, request):
"""获取授权项目下已购云音乐列表
:param request: Request instance for DescribeCloudMusicPurchased.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeCloudMusicPurchasedRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeCloudMusicPurchasedResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeCloudMusicPurchased", params, headers=headers)
response = json.loads(body)
model = models.DescribeCloudMusicPurchasedResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeItemById(self, request):
"""根据歌曲ID查询歌曲信息
:param request: Request instance for DescribeItemById.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeItemByIdRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeItemByIdResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeItemById", params, headers=headers)
response = json.loads(body)
model = models.DescribeItemByIdResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeItems(self, request):
"""该服务后续会停用,不再建议使用
:param request: Request instance for DescribeItems.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeItemsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeItemsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeItems", params, headers=headers)
response = json.loads(body)
model = models.DescribeItemsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVMusicDetail(self, request):
"""根据 Id 查询歌曲的详细信息,包含基础信息及播放信息。
:param request: Request instance for DescribeKTVMusicDetail.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVMusicDetailRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVMusicDetailResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVMusicDetail", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVMusicDetailResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVMusicTags(self, request):
"""获取直播互动曲库标签分组信息和标签信息
:param request: Request instance for DescribeKTVMusicTags.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVMusicTagsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVMusicTagsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVMusicTags", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVMusicTagsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVPlaylistDetail(self, request):
"""根据歌单 Id 获取歌单详情,包括歌单的基础信息以及歌曲列表。
:param request: Request instance for DescribeKTVPlaylistDetail.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVPlaylistDetailRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVPlaylistDetailResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVPlaylistDetail", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVPlaylistDetailResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVPlaylists(self, request):
"""获取直播互动曲库推荐歌单列表。
:param request: Request instance for DescribeKTVPlaylists.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVPlaylistsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVPlaylistsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVPlaylists", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVPlaylistsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVRobots(self, request):
"""获取机器人列表,支持 Id、状态等过滤条件。
:param request: Request instance for DescribeKTVRobots.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVRobotsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVRobotsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVRobots", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVRobotsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVSingerCategories(self, request):
"""获取直播互动曲库歌手分类信息
:param request: Request instance for DescribeKTVSingerCategories.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingerCategoriesRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingerCategoriesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVSingerCategories", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVSingerCategoriesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVSingerMusics(self, request):
"""根据歌手id,返回该歌手下歌曲列表。
:param request: Request instance for DescribeKTVSingerMusics.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingerMusicsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingerMusicsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVSingerMusics", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVSingerMusicsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVSingers(self, request):
"""根据过滤条件,返回匹配的歌手列表。
:param request: Request instance for DescribeKTVSingers.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingersRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSingersResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVSingers", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVSingersResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVSuggestions(self, request):
"""获取直播互动曲库联想词
:param request: Request instance for DescribeKTVSuggestions.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSuggestionsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVSuggestionsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVSuggestions", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVSuggestionsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeKTVTopList(self, request):
"""获取直播互动曲库歌曲的周榜和月榜
:param request: Request instance for DescribeKTVTopList.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeKTVTopListRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeKTVTopListResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeKTVTopList", params, headers=headers)
response = json.loads(body)
model = models.DescribeKTVTopListResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeLyric(self, request):
"""根据接口的模式及歌曲ID来取得歌词信息或者波形图信息。
:param request: Request instance for DescribeLyric.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeLyricRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeLyricResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeLyric", params, headers=headers)
response = json.loads(body)
model = models.DescribeLyricResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeMusic(self, request):
"""获取曲库包歌曲播放信息接口
:param request: Request instance for DescribeMusic.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeMusicRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeMusicResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeMusic", params, headers=headers)
response = json.loads(body)
model = models.DescribeMusicResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeMusicSaleStatus(self, request):
"""根据音乐信息查询音乐是否在售
:param request: Request instance for DescribeMusicSaleStatus.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeMusicSaleStatusRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeMusicSaleStatusResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeMusicSaleStatus", params, headers=headers)
response = json.loads(body)
model = models.DescribeMusicSaleStatusResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribePackageItems(self, request):
"""获取曲库包下已核销歌曲列表接口
:param request: Request instance for DescribePackageItems.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribePackageItemsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribePackageItemsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribePackageItems", params, headers=headers)
response = json.loads(body)
model = models.DescribePackageItemsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribePackages(self, request):
"""获取已购曲库包列表接口
:param request: Request instance for DescribePackages.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribePackagesRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribePackagesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribePackages", params, headers=headers)
response = json.loads(body)
model = models.DescribePackagesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribePkgOfflineMusic(self, request):
"""根据购买曲库包用户可查询已回退的歌曲信息
:param request: Request instance for DescribePkgOfflineMusic.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribePkgOfflineMusicRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribePkgOfflineMusicResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribePkgOfflineMusic", params, headers=headers)
response = json.loads(body)
model = models.DescribePkgOfflineMusicResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeStations(self, request):
"""该服务后续会停用,不再建议使用
:param request: Request instance for DescribeStations.
:type request: :class:`tencentcloud.ame.v20190916.models.DescribeStationsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DescribeStationsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeStations", params, headers=headers)
response = json.loads(body)
model = models.DescribeStationsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DestroyKTVRobot(self, request):
"""销毁机器人,机器人退出 RTC 房间。
:param request: Request instance for DestroyKTVRobot.
:type request: :class:`tencentcloud.ame.v20190916.models.DestroyKTVRobotRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.DestroyKTVRobotResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DestroyKTVRobot", params, headers=headers)
response = json.loads(body)
model = models.DestroyKTVRobotResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyMusicOnShelves(self, request):
"""根据资源方,需要变更的参数,请求该接口进行变更,为空的参数默认为无变更
:param request: Request instance for ModifyMusicOnShelves.
:type request: :class:`tencentcloud.ame.v20190916.models.ModifyMusicOnShelvesRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.ModifyMusicOnShelvesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyMusicOnShelves", params, headers=headers)
response = json.loads(body)
model = models.ModifyMusicOnShelvesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def PutMusicOnTheShelves(self, request):
"""根据资源方所传歌曲信息,进行歌曲上架,多个歌曲同时请求时,需构造复合结构进行请求
:param request: Request instance for PutMusicOnTheShelves.
:type request: :class:`tencentcloud.ame.v20190916.models.PutMusicOnTheShelvesRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.PutMusicOnTheShelvesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("PutMusicOnTheShelves", params, headers=headers)
response = json.loads(body)
model = models.PutMusicOnTheShelvesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ReportData(self, request):
"""客户上报用户数据功能,为了更好地为用户提供优质服务
:param request: Request instance for ReportData.
:type request: :class:`tencentcloud.ame.v20190916.models.ReportDataRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.ReportDataResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ReportData", params, headers=headers)
response = json.loads(body)
model = models.ReportDataResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def SearchKTVMusics(self, request):
"""根据搜索条件,返回匹配的歌曲列表。
:param request: Request instance for SearchKTVMusics.
:type request: :class:`tencentcloud.ame.v20190916.models.SearchKTVMusicsRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.SearchKTVMusicsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("SearchKTVMusics", params, headers=headers)
response = json.loads(body)
model = models.SearchKTVMusicsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def SyncKTVRobotCommand(self, request):
"""下发操作机器人指令,支持播放、暂停、恢复、歌单设置等操作指令,实现对机器人行为的控制。
:param request: Request instance for SyncKTVRobotCommand.
:type request: :class:`tencentcloud.ame.v20190916.models.SyncKTVRobotCommandRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.SyncKTVRobotCommandResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("SyncKTVRobotCommand", params, headers=headers)
response = json.loads(body)
model = models.SyncKTVRobotCommandResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def TakeMusicOffShelves(self, request):
"""根据资源方所传MusicId进行将歌曲进行下架,多个MusicId使用逗号隔开
:param request: Request instance for TakeMusicOffShelves.
:type request: :class:`tencentcloud.ame.v20190916.models.TakeMusicOffShelvesRequest`
:rtype: :class:`tencentcloud.ame.v20190916.models.TakeMusicOffShelvesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("TakeMusicOffShelves", params, headers=headers)
response = json.loads(body)
model = models.TakeMusicOffShelvesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))