当前位置: 首页>>代码示例>>Python>>正文


Python VideoInfo.extra['referer']方法代码示例

本文整理汇总了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
开发者ID:zhangn1985,项目名称:ykdl,代码行数:72,代码来源:video.py


注:本文中的ykdl.videoinfo.VideoInfo.extra['referer']方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。