本文整理汇总了Python中ykdl.videoinfo.VideoInfo.streams[stream_id]['src']方法的典型用法代码示例。如果您正苦于以下问题:Python VideoInfo.streams[stream_id]['src']方法的具体用法?Python VideoInfo.streams[stream_id]['src']怎么用?Python VideoInfo.streams[stream_id]['src']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ykdl.videoinfo.VideoInfo
的用法示例。
在下文中一共展示了VideoInfo.streams[stream_id]['src']方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import streams[stream_id]['src'] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
stream_temp = {'1080p': None , '1300': None, '1000':None , '720p': None, '350': None }
self.__STREAM_TEMP__.append(stream_temp)
if not self.vid:
self.vid = match1(self.url, r'http://www.le.com/ptv/vplay/(\d+).html', '#record/(\d+)')
#normal process
info_url = 'http://api.le.com/mms/out/video/playJson?id={}&platid=1&splatid=101&format=1&tkey={}&domain=www.le.com'.format(self.vid, calcTimeKey(int(time.time())))
r = get_content(info_url)
data=json.loads(r)
info.title = data['playurl']['title']
available_stream_id = sorted(list(data["playurl"]["dispatch"].keys()), key = self.supported_stream_types.index)
for stream in available_stream_id:
s_url =data["playurl"]["domain"][0]+data["playurl"]["dispatch"][stream][0]
s_url+="&ctv=pc&m3v=1&termid=1&format=1&hwtype=un&ostype=Linux&tag=le&sign=le&expect=3&tn={}&pay=0&iscpn=f9051&rateid={}".format(random.random(),stream)
r2=get_content(s_url)
data2=json.loads(r2)
# hold on ! more things to do
# to decode m3u8 (encoded)
m3u8 = get_content(data2["location"], charset = 'ignore')
m3u8_list = decode(m3u8)
stream_id = self.stream_2_id[stream]
info.streams[stream_id] = {'container': 'm3u8', 'video_profile': self.stream_2_profile[stream], 'size' : 0}
stream_temp[stream] = compact_tempfile(mode='w+t', suffix='.m3u8')
stream_temp[stream].write(m3u8_list)
info.streams[stream_id]['src'] = [stream_temp[stream].name]
stream_temp[stream].flush()
info.stream_types.append(stream_id)
return info
示例2: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import streams[stream_id]['src'] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
stream_temp = {'1080p': None , '1300': None, '1000':None , '720p': None, '350': None }
self.__STREAM_TEMP__.append(stream_temp)
if not self.vid:
self.vid = match1(self.url, 'vplay/(\d+).html', '#record/(\d+)')
#normal process
url = 'http://player-pc.le.com/mms/out/video/playJson?id={}&platid=1&splatid=101&format=1&tkey={}&domain=www.le.com®ion=cn&source=1000&accesyx=1'.format(self.vid,calcTimeKey(int(time.time())))
r = get_content(url)
data=json.loads(r)
data = data['msgs']
info.title = data['playurl']['title']
available_stream_id = sorted(list(data["playurl"]["dispatch"].keys()), key = self.supported_stream_types.index)
for stream in available_stream_id:
s_url =data["playurl"]["domain"][0]+data["playurl"]["dispatch"][stream][0]
uuid = hashlib.sha1(s_url.encode('utf8')).hexdigest() + '_0'
s_url = s_url.replace('tss=0', 'tss=ios')
s_url+="&m3v=1&termid=1&format=1&hwtype=un&ostype=MacOS10.12.4&p1=1&p2=10&p3=-&expect=3&tn={}&vid={}&uuid={}&sign=letv".format(random.random(), self.vid, uuid)
r2=get_content(s_url)
data2=json.loads(r2)
# hold on ! more things to do
# to decode m3u8 (encoded)
suffix = '&r=' + str(int(time.time() * 1000)) + '&appid=500'
m3u8 = get_content(data2["location"]+suffix, charset = 'ignore')
m3u8_list = decode(m3u8)
stream_id = self.stream_2_id[stream]
info.streams[stream_id] = {'container': 'm3u8', 'video_profile': self.stream_2_profile[stream], 'size' : 0}
stream_temp[stream] = compact_tempfile(mode='w+t', suffix='.m3u8')
stream_temp[stream].write(m3u8_list)
info.streams[stream_id]['src'] = [stream_temp[stream].name]
stream_temp[stream].flush()
info.stream_types.append(stream_id)
return info