本文整理汇总了Python中ykdl.videoinfo.VideoInfo.extra['referer']方法的典型用法代码示例。如果您正苦于以下问题:Python VideoInfo.extra['referer']方法的具体用法?Python VideoInfo.extra['referer']怎么用?Python VideoInfo.extra['referer']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ykdl.videoinfo.VideoInfo
的用法示例。
在下文中一共展示了VideoInfo.extra['referer']方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: prepare
# 需要导入模块: from ykdl.videoinfo import VideoInfo [as 别名]
# 或者: from ykdl.videoinfo.VideoInfo import extra['referer'] [as 别名]
def prepare(self):
info = VideoInfo(self.name)
if not self.vid:
self.vid = match1(self.url,
'vid=(\w+)',
'/(\w+)\.html',
'/(\w+)$')
if self.vid and match1(self.url, '(^https?://film\.qq\.com)'):
self.url = 'https://v.qq.com/x/cover/%s.html' % self.vid
if not self.vid or len(self.vid) != 11:
html = get_content(self.url)
self.vid = match1(html,
'&vid=(\w+)',
'vid:\s*[\"\'](\w+)',
'vid\s*=\s*[\"\']\s*(\w+)',
'"vid":"(\w+)"')
if not self.vid and '<body class="page_404">' in html:
self.logger.warning('This video has been deleted!')
return info
video_rate = {}
for _ in range(2):
try:
for title, fmt_name, stream_profile, type_name, urls, size, rate in self.get_streams_info():
stream_id = self.stream_2_id[fmt_name]
if urls and stream_id not in info.stream_types:
info.stream_types.append(stream_id)
info.streams[stream_id] = {
'container': type_name,
'video_profile': stream_profile,
'src' : urls,
'size': size
}
video_rate[stream_id] = rate
break
except AssertionError as e:
if 'wrong vid' in str(e):
html = get_content(self.url)
self.vid = match1(html,
'&vid=(\w+)',
'vid:\s*[\"\'](\w+)',
'vid\s*=\s*[\"\']\s*(\w+)',
'"vid":"(\w+)"')
continue
raise e
if self.vip:
self.logger.warning('This is a VIP video!')
#self.limit = False
assert len(info.stream_types), "can't play this video!!"
info.stream_types = sorted(info.stream_types, key = self.stream_ids.index)
info.title = title
if self.limit:
# Downloading some videos is very slow, use multithreading range fetch to speed up.
# Only for video players now.
info.extra['rangefetch'] = {
'first_size': 1024 * 16,
'max_size': 1024 * 32,
'threads': 10,
'video_rate': video_rate
}
self.logger.warning('This is a restricted video!')
info.extra['referer'] = 'https://v.qq.com/'
return info