1
+ # -*- coding: utf8 -*-
2
+ # Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ import json
17
+
18
+ from tencentcloud .common .exception .tencent_cloud_sdk_exception import TencentCloudSDKException
19
+ from tencentcloud .common .abstract_client import AbstractClient
20
+ from tencentcloud .live .v20180801 import models
21
+
22
+
23
+ class LiveClient (AbstractClient ):
24
+ _apiVersion = '2018-08-01'
25
+ _endpoint = 'live.tencentcloudapi.com'
26
+
27
+
28
+ def AddDelayLiveStream (self , request ):
29
+ """This API is used to set the delay time for the stream.
30
+ Note: If you want to set delayed playback before pushing, you need to set 5 minutes in advance.
31
+ Currently, this API only supports stream granularity, and the feature supporting domain name and application granularities will be available in the future.
32
+
33
+ :param request: Request instance for AddDelayLiveStream.
34
+ :type request: :class:`tencentcloud.live.v20180801.models.AddDelayLiveStreamRequest`
35
+ :rtype: :class:`tencentcloud.live.v20180801.models.AddDelayLiveStreamResponse`
36
+
37
+ """
38
+ try :
39
+ params = request ._serialize ()
40
+ body = self .call ("AddDelayLiveStream" , params )
41
+ response = json .loads (body )
42
+ if "Error" not in response ["Response" ]:
43
+ model = models .AddDelayLiveStreamResponse ()
44
+ model ._deserialize (response ["Response" ])
45
+ return model
46
+ else :
47
+ code = response ["Response" ]["Error" ]["Code" ]
48
+ message = response ["Response" ]["Error" ]["Message" ]
49
+ reqid = response ["Response" ]["RequestId" ]
50
+ raise TencentCloudSDKException (code , message , reqid )
51
+ except Exception as e :
52
+ if isinstance (e , TencentCloudSDKException ):
53
+ raise
54
+ else :
55
+ raise TencentCloudSDKException (e .message , e .message )
56
+
57
+
58
+ def DescribeLiveDelayInfoList (self , request ):
59
+ """This API is used to get the list of delayed playbacks.
60
+
61
+ :param request: Request instance for DescribeLiveDelayInfoList.
62
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveDelayInfoListRequest`
63
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveDelayInfoListResponse`
64
+
65
+ """
66
+ try :
67
+ params = request ._serialize ()
68
+ body = self .call ("DescribeLiveDelayInfoList" , params )
69
+ response = json .loads (body )
70
+ if "Error" not in response ["Response" ]:
71
+ model = models .DescribeLiveDelayInfoListResponse ()
72
+ model ._deserialize (response ["Response" ])
73
+ return model
74
+ else :
75
+ code = response ["Response" ]["Error" ]["Code" ]
76
+ message = response ["Response" ]["Error" ]["Message" ]
77
+ reqid = response ["Response" ]["RequestId" ]
78
+ raise TencentCloudSDKException (code , message , reqid )
79
+ except Exception as e :
80
+ if isinstance (e , TencentCloudSDKException ):
81
+ raise
82
+ else :
83
+ raise TencentCloudSDKException (e .message , e .message )
84
+
85
+
86
+ def DescribeLiveForbidStreamList (self , request ):
87
+ """This API is used to get the list of forbidden streams.
88
+
89
+ :param request: Request instance for DescribeLiveForbidStreamList.
90
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveForbidStreamListRequest`
91
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveForbidStreamListResponse`
92
+
93
+ """
94
+ try :
95
+ params = request ._serialize ()
96
+ body = self .call ("DescribeLiveForbidStreamList" , params )
97
+ response = json .loads (body )
98
+ if "Error" not in response ["Response" ]:
99
+ model = models .DescribeLiveForbidStreamListResponse ()
100
+ model ._deserialize (response ["Response" ])
101
+ return model
102
+ else :
103
+ code = response ["Response" ]["Error" ]["Code" ]
104
+ message = response ["Response" ]["Error" ]["Message" ]
105
+ reqid = response ["Response" ]["RequestId" ]
106
+ raise TencentCloudSDKException (code , message , reqid )
107
+ except Exception as e :
108
+ if isinstance (e , TencentCloudSDKException ):
109
+ raise
110
+ else :
111
+ raise TencentCloudSDKException (e .message , e .message )
112
+
113
+
114
+ def DescribeLiveStreamEventList (self , request ):
115
+ """This API is used to query streaming events.<br>
116
+
117
+ Note: This API can filter by IsFilter and return the push history.
118
+
119
+ :param request: Request instance for DescribeLiveStreamEventList.
120
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamEventListRequest`
121
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamEventListResponse`
122
+
123
+ """
124
+ try :
125
+ params = request ._serialize ()
126
+ body = self .call ("DescribeLiveStreamEventList" , params )
127
+ response = json .loads (body )
128
+ if "Error" not in response ["Response" ]:
129
+ model = models .DescribeLiveStreamEventListResponse ()
130
+ model ._deserialize (response ["Response" ])
131
+ return model
132
+ else :
133
+ code = response ["Response" ]["Error" ]["Code" ]
134
+ message = response ["Response" ]["Error" ]["Message" ]
135
+ reqid = response ["Response" ]["RequestId" ]
136
+ raise TencentCloudSDKException (code , message , reqid )
137
+ except Exception as e :
138
+ if isinstance (e , TencentCloudSDKException ):
139
+ raise
140
+ else :
141
+ raise TencentCloudSDKException (e .message , e .message )
142
+
143
+
144
+ def DescribeLiveStreamOnlineInfo (self , request ):
145
+ """This API is used to query the active push information list.
146
+
147
+ :param request: Request instance for DescribeLiveStreamOnlineInfo.
148
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamOnlineInfoRequest`
149
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamOnlineInfoResponse`
150
+
151
+ """
152
+ try :
153
+ params = request ._serialize ()
154
+ body = self .call ("DescribeLiveStreamOnlineInfo" , params )
155
+ response = json .loads (body )
156
+ if "Error" not in response ["Response" ]:
157
+ model = models .DescribeLiveStreamOnlineInfoResponse ()
158
+ model ._deserialize (response ["Response" ])
159
+ return model
160
+ else :
161
+ code = response ["Response" ]["Error" ]["Code" ]
162
+ message = response ["Response" ]["Error" ]["Message" ]
163
+ reqid = response ["Response" ]["RequestId" ]
164
+ raise TencentCloudSDKException (code , message , reqid )
165
+ except Exception as e :
166
+ if isinstance (e , TencentCloudSDKException ):
167
+ raise
168
+ else :
169
+ raise TencentCloudSDKException (e .message , e .message )
170
+
171
+
172
+ def DescribeLiveStreamOnlineList (self , request ):
173
+ """This API is used to return the list of live streams.
174
+
175
+ :param request: Request instance for DescribeLiveStreamOnlineList.
176
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamOnlineListRequest`
177
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamOnlineListResponse`
178
+
179
+ """
180
+ try :
181
+ params = request ._serialize ()
182
+ body = self .call ("DescribeLiveStreamOnlineList" , params )
183
+ response = json .loads (body )
184
+ if "Error" not in response ["Response" ]:
185
+ model = models .DescribeLiveStreamOnlineListResponse ()
186
+ model ._deserialize (response ["Response" ])
187
+ return model
188
+ else :
189
+ code = response ["Response" ]["Error" ]["Code" ]
190
+ message = response ["Response" ]["Error" ]["Message" ]
191
+ reqid = response ["Response" ]["RequestId" ]
192
+ raise TencentCloudSDKException (code , message , reqid )
193
+ except Exception as e :
194
+ if isinstance (e , TencentCloudSDKException ):
195
+ raise
196
+ else :
197
+ raise TencentCloudSDKException (e .message , e .message )
198
+
199
+
200
+ def DescribeLiveStreamPublishedList (self , request ):
201
+ """This API is used to return the list of pushed streams. <br>
202
+ Note: Up to 10,000 entries can be queried per page. More data can be obtained by adjusting the query time range.
203
+
204
+ :param request: Request instance for DescribeLiveStreamPublishedList.
205
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamPublishedListRequest`
206
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamPublishedListResponse`
207
+
208
+ """
209
+ try :
210
+ params = request ._serialize ()
211
+ body = self .call ("DescribeLiveStreamPublishedList" , params )
212
+ response = json .loads (body )
213
+ if "Error" not in response ["Response" ]:
214
+ model = models .DescribeLiveStreamPublishedListResponse ()
215
+ model ._deserialize (response ["Response" ])
216
+ return model
217
+ else :
218
+ code = response ["Response" ]["Error" ]["Code" ]
219
+ message = response ["Response" ]["Error" ]["Message" ]
220
+ reqid = response ["Response" ]["RequestId" ]
221
+ raise TencentCloudSDKException (code , message , reqid )
222
+ except Exception as e :
223
+ if isinstance (e , TencentCloudSDKException ):
224
+ raise
225
+ else :
226
+ raise TencentCloudSDKException (e .message , e .message )
227
+
228
+
229
+ def DescribeLiveStreamState (self , request ):
230
+ """This API is used to return the stream status such as active, inactive, or forbidden.
231
+
232
+ :param request: Request instance for DescribeLiveStreamState.
233
+ :type request: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamStateRequest`
234
+ :rtype: :class:`tencentcloud.live.v20180801.models.DescribeLiveStreamStateResponse`
235
+
236
+ """
237
+ try :
238
+ params = request ._serialize ()
239
+ body = self .call ("DescribeLiveStreamState" , params )
240
+ response = json .loads (body )
241
+ if "Error" not in response ["Response" ]:
242
+ model = models .DescribeLiveStreamStateResponse ()
243
+ model ._deserialize (response ["Response" ])
244
+ return model
245
+ else :
246
+ code = response ["Response" ]["Error" ]["Code" ]
247
+ message = response ["Response" ]["Error" ]["Message" ]
248
+ reqid = response ["Response" ]["RequestId" ]
249
+ raise TencentCloudSDKException (code , message , reqid )
250
+ except Exception as e :
251
+ if isinstance (e , TencentCloudSDKException ):
252
+ raise
253
+ else :
254
+ raise TencentCloudSDKException (e .message , e .message )
255
+
256
+
257
+ def DropLiveStream (self , request ):
258
+ """This API is used to disconnect the push connection, which can be resumed.
259
+
260
+ :param request: Request instance for DropLiveStream.
261
+ :type request: :class:`tencentcloud.live.v20180801.models.DropLiveStreamRequest`
262
+ :rtype: :class:`tencentcloud.live.v20180801.models.DropLiveStreamResponse`
263
+
264
+ """
265
+ try :
266
+ params = request ._serialize ()
267
+ body = self .call ("DropLiveStream" , params )
268
+ response = json .loads (body )
269
+ if "Error" not in response ["Response" ]:
270
+ model = models .DropLiveStreamResponse ()
271
+ model ._deserialize (response ["Response" ])
272
+ return model
273
+ else :
274
+ code = response ["Response" ]["Error" ]["Code" ]
275
+ message = response ["Response" ]["Error" ]["Message" ]
276
+ reqid = response ["Response" ]["RequestId" ]
277
+ raise TencentCloudSDKException (code , message , reqid )
278
+ except Exception as e :
279
+ if isinstance (e , TencentCloudSDKException ):
280
+ raise
281
+ else :
282
+ raise TencentCloudSDKException (e .message , e .message )
283
+
284
+
285
+ def ForbidLiveStream (self , request ):
286
+ """This API is used to forbid the push of a specific stream. You can preset a time point to resume the stream.
287
+
288
+ :param request: Request instance for ForbidLiveStream.
289
+ :type request: :class:`tencentcloud.live.v20180801.models.ForbidLiveStreamRequest`
290
+ :rtype: :class:`tencentcloud.live.v20180801.models.ForbidLiveStreamResponse`
291
+
292
+ """
293
+ try :
294
+ params = request ._serialize ()
295
+ body = self .call ("ForbidLiveStream" , params )
296
+ response = json .loads (body )
297
+ if "Error" not in response ["Response" ]:
298
+ model = models .ForbidLiveStreamResponse ()
299
+ model ._deserialize (response ["Response" ])
300
+ return model
301
+ else :
302
+ code = response ["Response" ]["Error" ]["Code" ]
303
+ message = response ["Response" ]["Error" ]["Message" ]
304
+ reqid = response ["Response" ]["RequestId" ]
305
+ raise TencentCloudSDKException (code , message , reqid )
306
+ except Exception as e :
307
+ if isinstance (e , TencentCloudSDKException ):
308
+ raise
309
+ else :
310
+ raise TencentCloudSDKException (e .message , e .message )
311
+
312
+
313
+ def ResumeDelayLiveStream (self , request ):
314
+ """This API is used to resume a delayed playback.
315
+
316
+ :param request: Request instance for ResumeDelayLiveStream.
317
+ :type request: :class:`tencentcloud.live.v20180801.models.ResumeDelayLiveStreamRequest`
318
+ :rtype: :class:`tencentcloud.live.v20180801.models.ResumeDelayLiveStreamResponse`
319
+
320
+ """
321
+ try :
322
+ params = request ._serialize ()
323
+ body = self .call ("ResumeDelayLiveStream" , params )
324
+ response = json .loads (body )
325
+ if "Error" not in response ["Response" ]:
326
+ model = models .ResumeDelayLiveStreamResponse ()
327
+ model ._deserialize (response ["Response" ])
328
+ return model
329
+ else :
330
+ code = response ["Response" ]["Error" ]["Code" ]
331
+ message = response ["Response" ]["Error" ]["Message" ]
332
+ reqid = response ["Response" ]["RequestId" ]
333
+ raise TencentCloudSDKException (code , message , reqid )
334
+ except Exception as e :
335
+ if isinstance (e , TencentCloudSDKException ):
336
+ raise
337
+ else :
338
+ raise TencentCloudSDKException (e .message , e .message )
339
+
340
+
341
+ def ResumeLiveStream (self , request ):
342
+ """This API is used to resume the push of a specific stream.
343
+
344
+ :param request: Request instance for ResumeLiveStream.
345
+ :type request: :class:`tencentcloud.live.v20180801.models.ResumeLiveStreamRequest`
346
+ :rtype: :class:`tencentcloud.live.v20180801.models.ResumeLiveStreamResponse`
347
+
348
+ """
349
+ try :
350
+ params = request ._serialize ()
351
+ body = self .call ("ResumeLiveStream" , params )
352
+ response = json .loads (body )
353
+ if "Error" not in response ["Response" ]:
354
+ model = models .ResumeLiveStreamResponse ()
355
+ model ._deserialize (response ["Response" ])
356
+ return model
357
+ else :
358
+ code = response ["Response" ]["Error" ]["Code" ]
359
+ message = response ["Response" ]["Error" ]["Message" ]
360
+ reqid = response ["Response" ]["RequestId" ]
361
+ raise TencentCloudSDKException (code , message , reqid )
362
+ except Exception as e :
363
+ if isinstance (e , TencentCloudSDKException ):
364
+ raise
365
+ else :
366
+ raise TencentCloudSDKException (e .message , e .message )
0 commit comments