Hello community, here is the log from the commit of package you-get for openSUSE:Factory checked in at 2018-02-10 17:58:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/you-get (Old) and /work/SRC/openSUSE:Factory/.you-get.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "you-get" Sat Feb 10 17:58:54 2018 rev:3 rq:574729 version:0.4.1025 Changes: -------- --- /work/SRC/openSUSE:Factory/you-get/you-get.changes 2018-01-16 09:42:29.237361299 +0100 +++ /work/SRC/openSUSE:Factory/.you-get.new/you-get.changes 2018-02-10 17:58:56.466451277 +0100 @@ -1,0 +2,5 @@ +Fri Feb 9 15:23:47 UTC 2018 - aloi...@gmx.com + +- Update to version 0.4.1025 (no changelog supplied) + +------------------------------------------------------------------- Old: ---- you-get-0.4.1011.tar.gz New: ---- you-get-0.4.1025.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ you-get.spec ++++++ --- /var/tmp/diff_new_pack.SZYwkl/_old 2018-02-10 17:58:57.230423620 +0100 +++ /var/tmp/diff_new_pack.SZYwkl/_new 2018-02-10 17:58:57.234423476 +0100 @@ -1,7 +1,7 @@ # # spec file for package you-get # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: you-get -Version: 0.4.1011 +Version: 0.4.1025 Release: 0 Summary: Dumb downloader that scrapes the web License: MIT ++++++ you-get-0.4.1011.tar.gz -> you-get-0.4.1025.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/common.py new/you-get-0.4.1025/src/you_get/common.py --- old/you-get-0.4.1011/src/you_get/common.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/common.py 2018-02-09 15:50:09.000000000 +0100 @@ -845,6 +845,10 @@ merged_ext = 'ts' return '%s.%s' % (title, merged_ext) +def print_user_agent(faker=False): + urllib_default_user_agent = 'Python-urllib/%d.%d' % sys.version_info[:2] + user_agent = fake_headers['User-Agent'] if faker else urllib_default_user_agent + print('User Agent: %s' % user_agent) def download_urls( urls, title, ext, total_size, output_dir='.', refer=None, merge=True, @@ -858,6 +862,7 @@ ) return if dry_run: + print_user_agent(faker=faker) print('Real URLs:\n%s' % '\n'.join(urls)) return @@ -986,6 +991,7 @@ ): assert url if dry_run: + print_user_agent(faker=faker) print('Real URL:\n%s\n' % [url]) if params.get('-y', False): # None or unset -> False print('Real Playpath:\n%s\n' % [params.get('-y')]) @@ -1009,6 +1015,7 @@ ): assert url if dry_run: + print_user_agent(faker=faker) print('Real URL:\n%s\n' % [url]) if params.get('-y', False): # None or unset ->False print('Real Playpath:\n%s\n' % [params.get('-y')]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/extractors/bilibili.py new/you-get-0.4.1025/src/you_get/extractors/bilibili.py --- old/you-get-0.4.1011/src/you_get/extractors/bilibili.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/extractors/bilibili.py 2018-02-09 15:50:09.000000000 +0100 @@ -68,7 +68,7 @@ chksum = hashlib.md5(bytes(params_str+self.SEC2, 'utf8')).hexdigest() api_url = self.bangumi_api_url + params_str + '&sign=' + chksum - xml_str = get_content(api_url) + xml_str = get_content(api_url, headers={'referer': self.url, 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}) return xml_str def parse_bili_xml(self, xml_str): @@ -125,11 +125,11 @@ self.referer = self.url self.page = get_content(self.url) - m = re.search(r'<h1.*?>(.*?)</h1>', self.page) + m = re.search(r'<h1.*?>(.*?)</h1>', self.page) or re.search(r'<h1 title="([^"]+)">', self.page) if m is not None: self.title = m.group(1) if self.title is None: - m = re.search(r'<meta property="og:title" content="([^"]+)">', self.page) + m = re.search(r'property="og:title" content="([^"]+)"', self.page) if m is not None: self.title = m.group(1) if 'subtitle' in kwargs: @@ -165,12 +165,16 @@ qq_download_by_vid(tc_flashvars, self.title, output_dir=kwargs['output_dir'], merge=kwargs['merge'], info_only=kwargs['info_only']) return + has_plist = re.search(r'<option', self.page) + if has_plist and r1('index_(\d+).html', self.url) is None: + log.w('This page contains a playlist. (use --playlist to download all videos.)') + try: cid = re.search(r'cid=(\d+)', self.page).group(1) except: cid = re.search(r'"cid":(\d+)', self.page).group(1) if cid is not None: - self.download_by_vid(cid, False, **kwargs) + self.download_by_vid(cid, re.search('bangumi', self.url) is not None, **kwargs) else: # flashvars? flashvars = re.search(r'flashvars="([^"]+)"', self.page).group(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/extractors/douyutv.py new/you-get-0.4.1025/src/you_get/extractors/douyutv.py --- old/you-get-0.4.1011/src/you_get/extractors/douyutv.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/extractors/douyutv.py 2018-02-09 15:50:09.000000000 +0100 @@ -43,8 +43,10 @@ headers = { 'user-agent': 'Mozilla/5.0 (iPad; CPU OS 8_1_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B466 Safari/600.1.4' } + + url = re.sub(r'[w.]*douyu.com','m.douyu.com',url) html = get_content(url, headers) - room_id_patt = r'"room_id"\s*:\s*(\d+),' + room_id_patt = r'room_id\s*:\s*(\d+),' room_id = match1(html, room_id_patt) if room_id == "0": room_id = url[url.rfind('/')+1:] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/extractors/qq.py new/you-get-0.4.1025/src/you_get/extractors/qq.py --- old/you-get-0.4.1011/src/you_get/extractors/qq.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/extractors/qq.py 2018-02-09 15:50:09.000000000 +0100 @@ -36,13 +36,18 @@ part_info = get_content(key_api) key_json = json.loads(match1(part_info, r'QZOutputJson=(.*)')[:-1]) if key_json.get('key') is None: + vkey = video_json['vl']['vi'][0]['fvkey'] + url = '{}{}?vkey={}'.format(video_json['vl']['vi'][0]['ul']['ui'][0]['url'], fn_pre + '.mp4', vkey) + else: + vkey = key_json['key'] + url = '{}{}?vkey={}'.format(host, filename, vkey) + if not vkey: if part == 1: log.wtf(key_json['msg']) else: log.w(key_json['msg']) break - vkey = key_json['key'] - url = '{}{}?vkey={}'.format(host, filename, vkey) + part_urls.append(url) _, ext, size = url_info(url) total_size += size @@ -109,7 +114,7 @@ qieDownload(url, output_dir=output_dir, merge=merge, info_only=info_only) return - if 'mp.weixin.qq.com/s?' in url: + if 'mp.weixin.qq.com/s' in url: content = get_content(url) vids = matchall(content, [r'\?vid=(\w+)']) for vid in vids: @@ -140,9 +145,13 @@ else: content = get_content(url) #vid = parse_qs(urlparse(url).query).get('vid') #for links specified vid like http://v.qq.com/cover/p/ps6mnfqyrfo7es3.html?vid=q0181hpdvo5 - vid = url.split('/')[-1].split('.')[0] #https://v.qq.com/x/cover/ps6mnfqyrfo7es3/q0181hpdvo5.html? + rurl = match1(content, r'<link.*?rel\s*=\s*"canonical".*?href\s*="(.+?)".*?>') #https://v.qq.com/x/cover/9hpjiv5fhiyn86u/t0522x58xma.html + vid = "" + if rurl: + vid = rurl.split('/')[-1].split('.')[0] + vid = vid if vid else url.split('/')[-1].split('.')[0] #https://v.qq.com/x/cover/ps6mnfqyrfo7es3/q0181hpdvo5.html? vid = vid if vid else match1(content, r'vid"*\s*:\s*"\s*([^"]+)"') #general fallback - if vid is None: + if not vid: vid = match1(content, r'id"*\s*:\s*"(.+?)"') title = match1(content,r'<a.*?id\s*=\s*"%s".*?title\s*=\s*"(.+?)".*?>'%vid) title = match1(content, r'title">([^"]+)</p>') if not title else title diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/extractors/youku.py new/you-get-0.4.1025/src/you_get/extractors/youku.py --- old/you-get-0.4.1011/src/you_get/extractors/youku.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/extractors/youku.py 2018-02-09 15:50:09.000000000 +0100 @@ -78,7 +78,7 @@ self.api_error_code = None self.api_error_msg = None - self.ccode = '0512' + self.ccode = '0513' self.utid = None def youku_ups(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/src/you_get/version.py new/you-get-0.4.1025/src/you_get/version.py --- old/you-get-0.4.1011/src/you_get/version.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/src/you_get/version.py 2018-02-09 15:50:09.000000000 +0100 @@ -1,4 +1,4 @@ #!/usr/bin/env python script_name = 'you-get' -__version__ = '0.4.1011' +__version__ = '0.4.1025' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1011/tests/test.py new/you-get-0.4.1025/tests/test.py --- old/you-get-0.4.1011/tests/test.py 2017-12-23 18:27:08.000000000 +0100 +++ new/you-get-0.4.1025/tests/test.py 2018-02-09 15:50:09.000000000 +0100 @@ -6,9 +6,7 @@ imgur, magisto, youtube, - yixia, bilibili, - douyin, ) @@ -33,12 +31,6 @@ info_only=True ) - def test_yixia(self): - yixia.download( - 'http://m.miaopai.com/show/channel/vlvreCo4OZiNdk5Jn1WvdopmAvdIJwi8', # noqa - info_only=True - ) - def test_bilibili(self): bilibili.download( 'https://www.bilibili.com/video/av16907446/', info_only=True