本文整理汇总了Python中ykdl.videoinfo.VideoInfo.extra["ua"]方法的典型用法代码示例。如果您正苦于以下问题:Python VideoInfo.extra["ua"]方法的具体用法?Python VideoInfo.extra["ua"]怎么用?Python VideoInfo.extra["ua"]使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ykdl.videoinfo.VideoInfo
的用法示例。
在下文中一共展示了VideoInfo.extra["ua"]方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import extra["ua"] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
add_header("Referer", "http://www.bilibili.com")
info.extra["referer"] = "http://www.bilibili.com"
info.extra["ua"] = fake_headers['User-Agent']
if not self.vid:
html = get_content(self.url)
self.vid = match1(html, 'cid=(\d+)', 'cid=\"(\d+)')
info.title = match1(html, '<title>([^<]+)').split("_")[0].strip(u" 番剧 bilibili 哔哩哔哩弹幕视频网")
if not self.vid:
eid = match1(self.url, 'anime/v/(\d+)', 'play#(\d+)') or match1(html, 'anime/v/(\d+)')
if eid:
Episode_info = json.loads(get_content('http://bangumi.bilibili.com/web_api/episode/{}.json'.format(eid)))['result']['currentEpisode']
self.vid = Episode_info['danmaku']
info.title = info.title + ' ' + Episode_info['indexTitle'] + '. ' + Episode_info['longTitle']
assert self.vid, "can't play this video: {}".format(self.url)
for q in self.supported_stream_profile:
sign_this = hashlib.md5(compact_bytes('cid={}&from=miniplay&player=1&quality={}{}'.format(self.vid, 3-self.supported_stream_profile.index(q), SECRETKEY_MINILOADER), 'utf-8')).hexdigest()
api_url = 'http://interface.bilibili.com/playurl?cid={}&player=1&quality={}&from=miniplay&sign={}'.format(self.vid, 3-self.supported_stream_profile.index(q), sign_this)
html = get_content(api_url)
self.logger.debug("HTML> {}".format(html))
urls, size, ext = parse_cid_playurl(html)
if ext == 'hdmp4':
ext = 'mp4'
info.stream_types.append(self.profile_2_type[q])
info.streams[self.profile_2_type[q]] = {'container': ext, 'video_profile': q, 'src' : urls, 'size': size}
return info
示例2: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import extra["ua"] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
add_header("Referer", "https://www.bilibili.com/")
info.extra["referer"] = "https://www.bilibili.com/"
info.extra["ua"] = fake_headers['User-Agent']
self.vid, info.title = self.get_vid_title()
assert self.vid, "can't play this video: {}".format(self.url)
def get_video_info(qn=0):
# need login with "qn=112"
if int(qn) > 80:
return
api_url = self.get_api_url(qn)
html = get_content(api_url)
self.logger.debug('HTML> ' + html)
code = match1(html, '<code>([^<])')
if code:
return
urls, size, fmt, qlt, aqlts = parse_cid_playurl(html)
if 'mp4' in fmt:
ext = 'mp4'
elif 'flv' in fmt:
ext = 'flv'
st, prf = self.format_2_type_profile[fmt]
if urls and st not in info.streams:
info.stream_types.append(st)
info.streams[st] = {'container': ext, 'video_profile': prf, 'src' : urls, 'size': size}
if qn == 0:
aqlts.remove(qlt)
for aqlt in aqlts:
get_video_info(aqlt)
get_video_info()
assert len(info.stream_types), "can't play this video!!"
info.stream_types = sorted(info.stream_types, key = self.sorted_format.index)
return info