Exemplo n.º 1
0
 def _is_success(cookie: str):
     rm = RequestManager()
     rm.add_cookies(cookie)
     cookiedict = rm.cookiedict
     qq_openid = cookiedict['vqq_openid']
     qq_access_token = cookiedict['vqq_access_token']
     qq_client_id = cookiedict['vqq_appid']
     success = False
     url = (
         f'https://vip.video.qq.com/fcgi-bin/svip_comm_cgi?svr_name=svipupdate&cmd=5633&callback=jQuery&TvReqType=1'
         f'&OpenId={qq_openid}'
         f'&AccessToken={qq_access_token}'
         f'&Appid={qq_client_id}')
     headers = {
         "accept":
         "*/*",
         "accept-encoding":
         "gzip, deflate, br",
         "accept-language":
         "zh-CN,zh;q=0.9",
         "cookie":
         cookie,
         "user-agent":
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
         "(KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
     }
     with suppress(Exception):
         resp_str = RequestManager().request('get', url,
                                             headers=headers).text
         logger.info(f'验证接口返回数据: {resp_str}')
         resp_dict = json.loads(resp_str[7:-2])
         if (resp_dict.get('result') or {}).get('code') == 0:
             success = True
     return success
Exemplo n.º 2
0
    def download(self, play_url: str):
        api = f'http://127.0.0.1:{BackEndPort.video}/video/tencent_video/get_download_url'
        resp_dict = RequestManager().request('post',
                                             api,
                                             json={
                                                 'play_url': play_url
                                             }).json()
        cover_id, video_id = get_cvid(play_url)
        code = resp_dict['code']
        message = resp_dict['message']
        logger.info(f'获取下载链接接口返回数据: {resp_dict}')
        if code == Code.Success:
            data = resp_dict['data']
            return data

        elif code in [Code.CookieError, Code.ParseError, Code.NeedPayError]:
            video_col.update_one(filter={'video_id': video_id},
                                 update={
                                     '$set': {
                                         'download.status':
                                         DownloadStatus.failure,
                                         'download.reason':
                                         message,
                                         'download.time':
                                         time.strftime('%Y-%m-%d %H:%M:%S'),
                                     }
                                 })
Exemplo n.º 3
0
 def _download(url: str, filename: str):
     if not url.startswith('http'):
         url = f'https://t.captcha.qq.com{url}'
     headers = {
         "user-agent":
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
         "(KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
     }
     resp_bytes = RequestManager().request('get', url,
                                           headers=headers).content
     with open(filename, 'wb') as fw:
         fw.write(resp_bytes)
Exemplo n.º 4
0
 def auth_refresh(self):
     params = {
         'vappid': '11059694',
         'vsecret': 'fdf61a6be0aad57132bc5cdf78ac30145b6cd2c1470b0cfe',
         'type': 'qq',
         '_': str(int(time.time() * 1000)),
         'g_tk': '',
         'g_vstk': self._time33(self.session.cookiedict['vqq_vusession']),
         'g_actk':
         self._time33(self.session.cookiedict['vqq_access_token']),
     }
     api = 'https://access.video.qq.com/user/auth_refresh?'
     headers = {
         "Host":
         "access.video.qq.com",
         "User-Agent":
         "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
         "Chrome/85.0.4183.121 Safari/537.36",
         "Accept":
         "*/*",
         "Referer":
         "https://v.qq.com/",
         "Accept-Encoding":
         "gzip, deflate, br",
         "Accept-Language":
         "zh-CN,zh;q=0.9"
     }
     cookie_dict: dict = self.session.cookiedict
     resp = self.session.request('get', api, params=params, headers=headers)
     self.session.close()
     self.session = RequestManager()
     self.session.add_cookies(resp.cookies)
     cookie_dict.update(self.session.cookiedict)
     self.session.close()
     self.session = RequestManager()
     self.session.add_cookies(cookie_dict)
     self.cookie = self.session.cookiestr
Exemplo n.º 5
0
 def __init__(self,
              play_url: str,
              platform: str = '10201',
              app_ver: str = '3.5.57',
              sdtfrom: str = 'v1010'):
     self._cookie = None
     self.session = RequestManager()
     self.session.add_cookies(self.cookie)
     self.auth_refresh()
     self._platform = platform
     self._app_ver = app_ver
     self._sdtfrom = sdtfrom
     self._flowid = f'{ciphers(32)}_{self._platform}'
     self._guid = ciphers(32)
     self.play_url = play_url
     cover_id, video_id = get_cvid(self.play_url)
     self.cid = cover_id
     self.vid = video_id
     logger.info(f'{self.cid=}, {self.vid=}, {self.play_url=}')
Exemplo n.º 6
0
 def _request(self):
     content = RequestManager().request(
         'get', self.play_url, headers=self.headers).content.decode('utf-8')
     return content