本文整理汇总了Python中ykdl.videoinfo.VideoInfo.streams['BD']方法的典型用法代码示例。如果您正苦于以下问题:Python VideoInfo.streams['BD']方法的具体用法?Python VideoInfo.streams['BD']怎么用?Python VideoInfo.streams['BD']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ykdl.videoinfo.VideoInfo
的用法示例。
在下文中一共展示了VideoInfo.streams['BD']方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import streams['BD'] [as 别名]
def prepare(self):
info = VideoInfo(self.name, True)
if not self.vid:
self.vid = match1(self.url, '/(\d+)')
if not self.vid:
html = get_content(self.url)
self.vid = match1(html, '"room_id":(\d+)')
#from upstream!!
api_url = 'http://www.qie.tv/api/v1/room/{}'.format(self.vid)
metadata = json.loads(get_content(api_url))
assert metadata['error'] == 0, 'error {}: {}'.format(metadata['error'], metadata['data'])
livedata = metadata['data']
assert livedata['show_status'] == '1', 'error: live show is not on line!!'
info.title = livedata['room_name']
info.artist = livedata['nickname']
base_url = livedata['rtmp_url']
if 'hls_url' in livedata:
info.stream_types.append('BD')
info.streams['BD'] = {'container': 'm3u8', 'video_profile': u'原画', 'src' : [livedata['hls_url']], 'size': float('inf')}
mutli_stream = livedata['rtmp_multi_bitrate']
for i in self.mutli_bitrate:
if i in mutli_stream:
info.stream_types.append(self.bitrate_2_type[i])
info.streams[self.bitrate_2_type[i]] = {'container': 'flv', 'video_profile': self.bitrate_2_profile[i], 'src' : [base_url + '/' + mutli_stream[i]], 'size': float('inf')}
return info
示例2: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import streams['BD'] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
if self.url and not self.vid:
vid = matchall(self.url, ['curid=([^_]+)_([\w]+)'])
if vid:
self.vid = vid[0]
if self.url and not self.vid:
html = get_content(self.url)
tvid = match1(html, 'data-player-tvid="([^"]+)"', 'tvid=([^&]+)' , 'tvId:([^,]+)')
videoid = match1(html, 'data-player-videoid="([^"]+)"', 'vid=([^&]+)', 'vid:"([^"]+)')
self.vid = (tvid, videoid)
info.title = match1(html, '<title>([^<]+)').split('-')[0]
tvid, vid = self.vid
data = getVMS(tvid, vid)
if not data['code'] == 'A00000':
for bid in self.id_h5:
h5_data = geth5VMS(tvid, vid, bid)
if h5_data["code"] == "A00000":
stream = self.vd_2_id[bid]
profile = self.id_2_profile[stream]
info.title = h5_data['data']['playInfo']['vn']
info.stream_types.append(stream)
info.streams[stream] = {'container': 'mp4', 'video_profile': profile, 'src' : [h5_data['data']['m3u']], 'size' : 0}
return info
for stream in data['data']['vidl']:
try:
stream_id = self.vd_2_id[stream['vd']]
if stream_id in info.stream_types or stream_id in self.id_ignore:
continue
stream_profile = self.id_2_profile[stream_id]
info.stream_types.append(stream_id)
info.streams[stream_id] = {'video_profile': stream_profile, 'container': 'm3u8', 'src': [stream['m3u']], 'size' : 0}
except:
log.i("vd: {} is not handled".format(stream['vd']))
log.i("info is {}".format(stream))
# why I need do below???
try:
vip_vds = data['data']['ctl']['vip']['bids']
vip_conf = data['data']['ctl']['configs']
except:
info.stream_types = sorted(info.stream_types, key = self.ids.index)
return info
if not 'BD' in info.stream_types:
p1080_vids = []
if 5 in vip_vds:
p1080_vids.append(vip_conf['5']['vid'])
for v in p1080_vids:
p1080_info = getVMS(tvid, v)
if p1080_info['code'] == 'A00000':
p1080_url = p1080_info['data']['m3u']
info.stream_types.append('BD')
info.streams['BD'] = {'video_profile': '1080p', 'container': 'm3u8', 'src': [p1080_url], 'size' : 0}
break
if not '4k' in info.stream_types:
k4_vids = []
if 10 in vip_vds:
k4_vids.append(vip_conf['10']['vid'])
for v in k4_vids:
k4_info = getVMS(tvid, v)
if k4_info['code'] == 'A00000':
k4_url = k4_info['data']['m3u']
info.stream_types.append('4k')
info.streams['4k'] = {'video_profile': '4k', 'container': 'm3u8', 'src': [k4_url], 'size' : 0}
break
info.stream_types = sorted(info.stream_types, key = self.ids.index)
return info