Skip to content

Commit 806808a

Browse files
author
lijing
committed
增加直播转码python-sdk
1 parent 15f25aa commit 806808a

File tree

5 files changed

+257
-1
lines changed

5 files changed

+257
-1
lines changed

examples/ket.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#!/usr/bin/python
2+
# -*- coding: UTF-8 -*-
3+
from kscore.session import get_session
4+
import json
5+
6+
if __name__ == "__main__":
7+
s = get_session()
8+
client = s.create_client("ket", "cn-beijing-6", use_ssl=False)
9+
10+
uniqname = 'mytest'
11+
presetname = 'testpreset00'
12+
appname = 'live'
13+
description = 'just a demo'
14+
presetType = 'avop'
15+
streamid = 'myteststreamid'
16+
outpull = 1
17+
srcurl = "rtmp://qa-ws.test-rtmplive.ks-cdn.com/live/20160819"
18+
19+
# 创建模板
20+
param = {
21+
"UniqName": uniqname,
22+
"Preset": presetname,
23+
"Description": description,
24+
"App": appname,
25+
"Output": [
26+
{
27+
"format":
28+
{
29+
"output_format": 257,
30+
"abr": 70000,
31+
"vbr": 700000,
32+
"fr": 23
33+
}
34+
}
35+
]
36+
}
37+
res = client.preset(**param)
38+
print json.dumps(res)
39+
40+
# 更新模板
41+
res = client.update_preset(**param)
42+
print json.dumps(res)
43+
44+
# 获取模板详情
45+
res = client.get_preset_detail(App=appname, UniqName=uniqname, Preset=presetname)
46+
print json.dumps(res)
47+
48+
# 获取用户模板列表
49+
res = client.get_preset_list(App=appname, UniqName=uniqname)
50+
print json.dumps(res)
51+
52+
# 删除模板
53+
res = client.del_preset(App=appname, UniqName=uniqname, Preset=presetname)
54+
print json.dumps(res)
55+
56+
# 启动外网拉流
57+
param1 = {
58+
"UniqName": uniqname,
59+
"StreamID": streamid,
60+
"SrcUrl": srcurl,
61+
"App": appname,
62+
"Params": "a",
63+
}
64+
res = client.start_stream_pull(**param1)
65+
print json.dumps(res)
66+
67+
# 停止外网拉流
68+
param2 = {
69+
"UniqName": uniqname,
70+
"StreamID": streamid,
71+
"App": appname,
72+
}
73+
res = client.stop_stream_pull(**param2)
74+
print json.dumps(res)
75+
76+
# 获取转码任务列表
77+
res = client.get_stream_tran_list(App=appname, UniqName=uniqname, StreamID=streamid, OutPull=outpull)
78+
print json.dumps(res)
79+
80+
# 获取用户已占用配额
81+
res = client.get_quota_used(UniqName=uniqname)
82+
print json.dumps(res)

kscore/__init__.pyc

-13 Bytes
Binary file not shown.

kscore/data/endpoints.yaml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,24 @@ partitions:
6767
endpoints:
6868
cn-beijing-6:
6969
hostname: iam.api.ksyun.com
70-
70+
ket:
71+
defaults:
72+
protocols:
73+
- http
74+
credentialScope:
75+
# eg: [ket].cn-beijing-6.api.ksyun.com
76+
service: ket
77+
# eg: ket.[cn-beijing-6].api.ksyun.com
78+
# partitionEndpoint: cn-beijing-6
79+
endpoints:
80+
cn-beijing-6:
81+
protocols:
82+
- http
83+
- https
84+
cn-shanghai-2:
85+
protocols:
86+
- http
87+
- https
7188
kec:
7289
defaults:
7390
credentialScope:
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
---
2+
version: '2.0'
3+
metadata:
4+
apiVersion: '2017-01-01'
5+
endpointPrefix: ket
6+
jsonVersion: '1.1'
7+
serviceFullName: KSC OFFLINE Service
8+
signatureVersion: v4
9+
targetPrefix: ket
10+
protocol: json2
11+
12+
operations:
13+
Preset:
14+
name: Preset
15+
http:
16+
method: POST
17+
18+
UpdatePreset:
19+
name: UpdatePreset
20+
http:
21+
method: POST
22+
23+
DelPreset:
24+
name: DelPreset
25+
http:
26+
method: GET
27+
requestUri: /
28+
input:
29+
shape: PresetInstance
30+
31+
GetPresetList:
32+
name: GetPresetList
33+
http:
34+
method: GET
35+
requestUri: /
36+
input:
37+
shape: UserInstance
38+
39+
GetPresetDetail:
40+
name: GetPresetDetail
41+
http:
42+
method: GET
43+
requestUri: /
44+
input:
45+
shape: PresetInstance
46+
47+
StartStreamPull:
48+
name: StartStreamPull
49+
http:
50+
method: POST
51+
52+
StopStreamPull:
53+
name: StopStreamPull
54+
http:
55+
method: POST
56+
57+
GetStreamTranList:
58+
name: GetStreamTranList
59+
http:
60+
method: GET
61+
requestUri: /
62+
input:
63+
shape: StreamTranInstance
64+
65+
GetQuotaUsed:
66+
name: GetQuotaUsed
67+
http:
68+
method: GET
69+
requestUri: /
70+
input:
71+
shape: UniqNameInstance
72+
73+
shapes:
74+
App:
75+
type: string
76+
UniqName:
77+
type: string
78+
Preset:
79+
type: string
80+
StreamID:
81+
type: string
82+
OutPull:
83+
type: integer
84+
85+
UniqNameInstance:
86+
type: structure
87+
members:
88+
UniqName:
89+
shape: UniqName
90+
PresetInstance:
91+
type: structure
92+
members:
93+
App:
94+
shape: App
95+
UniqName:
96+
shape: UniqName
97+
Preset:
98+
shape: Preset
99+
UserInstance:
100+
type: structure
101+
members:
102+
App:
103+
shape: App
104+
UniqName:
105+
shape: UniqName
106+
StreamTranInstance:
107+
type: structure
108+
members:
109+
App:
110+
shape: App
111+
UniqName:
112+
shape: UniqName
113+
StreamID:
114+
shape: StreamID
115+
OutPull:
116+
shape: OutPull

kscore/ket.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -*- encoding:utf-8 -*-
2+
from kscore.session import get_session
3+
import time
4+
class KetClient:
5+
def __init__(self,service_name,region_name,use_ssl,ks_access_key_id,ks_secret_access_key):
6+
s = get_session()
7+
if ks_access_key_id != None and ks_secret_access_key != None:
8+
self.client = s.create_client(service_name, region_name, use_ssl = use_ssl,
9+
ks_access_key_id=ks_access_key_id, ks_secret_access_key=ks_secret_access_key)
10+
else:
11+
self.client = s.create_client(service_name, region_name, use_ssl = use_ssl)
12+
13+
def Preset(self,param):
14+
return self.client.preset(**param)
15+
16+
def UpdatePreset(self,param):
17+
return self.client.update_preset(**param)
18+
19+
def GetPresetList(self,App='live',UniqName=''):
20+
return self.client.get_preset_list(App=App,UniqName=UniqName)
21+
22+
def GetPresetDetail(self,App='live',UniqName='',Preset=''):
23+
return self.client.get_preset_detail(App=App,UniqName=UniqName,Preset=Preset)
24+
25+
def DelPreset(self,App='live',UniqName='',Preset=''):
26+
return self.client.del_preset(App=App,UniqName=UniqName,Preset=Preset)
27+
28+
def StartStreamPull(self,param):
29+
return self.client.start_stream_pull(**param)
30+
31+
def StopStreamPull(self,param):
32+
return self.client.stop_stream_pull(**param)
33+
34+
def GetStreamTranList(self,App='live',UniqName='',StreamID='',OutPull=-1):
35+
return self.client.get_stream_tran_list(App=App,UniqName=UniqName,StreamID=StreamID,OutPull=OutPull)
36+
37+
def GetQuotaUsed(self,UniqName=''):
38+
return self.client.get_quota_used(UniqName=UniqName)
39+
40+
def getKetClient(service_name,region_name,use_ssl=False,ks_access_key_id=None, ks_secret_access_key=None):
41+
return KetClient(service_name,region_name,use_ssl,ks_access_key_id, ks_secret_access_key)

0 commit comments

Comments
 (0)