Hello community, here is the log from the commit of package you-get for openSUSE:Factory checked in at 2018-04-17 11:18:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/you-get (Old) and /work/SRC/openSUSE:Factory/.you-get.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "you-get" Tue Apr 17 11:18:46 2018 rev:5 rq:597192 version:0.4.1060 Changes: -------- --- /work/SRC/openSUSE:Factory/you-get/you-get.changes 2018-03-02 21:12:36.295005924 +0100 +++ /work/SRC/openSUSE:Factory/.you-get.new/you-get.changes 2018-04-17 11:18:46.966852637 +0200 @@ -1,0 +2,5 @@ +Mon Apr 16 18:21:07 UTC 2018 - [email protected] + +- Update to version 0.4.1060 (no changelog supplied) + +------------------------------------------------------------------- Old: ---- you-get-0.4.1040.tar.gz New: ---- you-get-0.4.1060.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ you-get.spec ++++++ --- /var/tmp/diff_new_pack.Yq4mVM/_old 2018-04-17 11:18:47.458829576 +0200 +++ /var/tmp/diff_new_pack.Yq4mVM/_new 2018-04-17 11:18:47.458829576 +0200 @@ -17,7 +17,7 @@ Name: you-get -Version: 0.4.1040 +Version: 0.4.1060 Release: 0 Summary: Dumb downloader that scrapes the web License: MIT ++++++ you-get-0.4.1040.tar.gz -> you-get-0.4.1060.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/bilibili.py new/you-get-0.4.1060/src/you_get/extractors/bilibili.py --- old/you-get-0.4.1040/src/you_get/extractors/bilibili.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/bilibili.py 2018-04-15 17:13:08.000000000 +0200 @@ -23,7 +23,7 @@ class Bilibili(VideoExtractor): name = 'Bilibili' live_api = 'http://live.bilibili.com/api/playurl?cid={}&otype=json' - api_url = 'http://interface.bilibili.com/playurl?' + api_url = 'http://interface.bilibili.com/v2/playurl?' bangumi_api_url = 'http://bangumi.bilibili.com/player/web_api/playurl?' live_room_init_api_url = 'https://api.live.bilibili.com/room/v1/Room/room_init?id={}' live_room_info_api_url = 'https://api.live.bilibili.com/room/v1/Room/get_info?room_id={}' @@ -167,8 +167,8 @@ 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: + has_plist = re.search(r'"page":2', self.page) + if has_plist: log.w('This page contains a playlist. (use --playlist to download all videos.)') try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/longzhu.py new/you-get-0.4.1060/src/you_get/extractors/longzhu.py --- old/you-get-0.4.1040/src/you_get/extractors/longzhu.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/longzhu.py 2018-04-15 17:13:08.000000000 +0200 @@ -5,6 +5,7 @@ import json from ..common import ( get_content, + general_m3u8_extractor, match1, print_info, download_urls, @@ -70,4 +71,4 @@ site_info = 'longzhu.com' download = longzhu_download -download_playlist = playlist_not_supported('longzhu') \ No newline at end of file +download_playlist = playlist_not_supported('longzhu') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/qq.py new/you-get-0.4.1060/src/you_get/extractors/qq.py --- old/you-get-0.4.1040/src/you_get/extractors/qq.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/qq.py 2018-04-15 17:13:08.000000000 +0200 @@ -47,6 +47,9 @@ else: log.w(key_json['msg']) break + if key_json.get('filename') is None: + log.w(key_json['msg']) + break part_urls.append(url) _, ext, size = url_info(url) @@ -121,18 +124,6 @@ qq_download_by_vid(vid, vid, output_dir, merge, info_only) return - #do redirect - if 'v.qq.com/page' in url: - # for URLs like this: - # http://v.qq.com/page/k/9/7/k0194pwgw97.html - new_url = url_locations([url])[0] - if url == new_url: - #redirect in js? - content = get_content(url) - url = match1(content,r'window\.location\.href="(.*?)"') - else: - url = new_url - if 'kuaibao.qq.com' in url or re.match(r'http://daxue.qq.com/content/content/id/\d+', url): content = get_content(url) vid = match1(content, r'vid\s*=\s*"\s*([^"]+)"') @@ -149,6 +140,9 @@ vid = "" if rurl: vid = rurl.split('/')[-1].split('.')[0] + # https://v.qq.com/x/page/d0552xbadkl.html https://y.qq.com/n/yqq/mv/v/g00268vlkzy.html + if vid == "undefined" or vid == "index": + vid = "" 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 not vid: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/universal.py new/you-get-0.4.1060/src/you_get/extractors/universal.py --- old/you-get-0.4.1040/src/you_get/extractors/universal.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/universal.py 2018-04-15 17:13:08.000000000 +0200 @@ -31,6 +31,19 @@ if page_title: page_title = unescape_html(page_title) + meta_videos = re.findall(r'<meta property="og:video:url" content="([^"]*)"', page) + if meta_videos: + for meta_video in meta_videos: + meta_video_url = unescape_html(meta_video) + type_, ext, size = url_info(meta_video_url) + print_info(site_info, page_title, type_, size) + if not info_only: + download_urls([meta_video_url], page_title, + ext, size, + output_dir=output_dir, merge=merge, + faker=True) + return + hls_urls = re.findall(r'(https?://[^;"\'\\]+' + '\.m3u8?' + r'[^;"\'\\]*)', page) if hls_urls: @@ -67,6 +80,14 @@ urls += re.findall(r'href="(https?://[^"]+\.png)"', page, re.I) urls += re.findall(r'href="(https?://[^"]+\.gif)"', page, re.I) + # relative path + rel_urls = [] + rel_urls += re.findall(r'href="(\.[^"]+\.jpe?g)"', page, re.I) + rel_urls += re.findall(r'href="(\.[^"]+\.png)"', page, re.I) + rel_urls += re.findall(r'href="(\.[^"]+\.gif)"', page, re.I) + for rel_url in rel_urls: + urls += [ r1(r'(.*/)', url) + rel_url ] + # MPEG-DASH MPD mpd_urls = re.findall(r'src="(https?://[^"]+\.mpd)"', page) for mpd_url in mpd_urls: @@ -104,10 +125,9 @@ else: # direct download - filename = parse.unquote(url.split('/')[-1]) - title = '.'.join(filename.split('.')[:-1]) - ext = filename.split('.')[-1] - _, _, size = url_info(url, faker=True) + filename = parse.unquote(url.split('/')[-1]) or parse.unquote(url.split('/')[-2]) + title = '.'.join(filename.split('.')[:-1]) or filename + _, ext, size = url_info(url, faker=True) print_info(site_info, title, ext, size) if not info_only: download_urls([url], title, ext, size, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/youku.py new/you-get-0.4.1060/src/you_get/extractors/youku.py --- old/you-get-0.4.1040/src/you_get/extractors/youku.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/youku.py 2018-04-15 17:13:08.000000000 +0200 @@ -78,7 +78,10 @@ self.api_error_code = None self.api_error_msg = None - self.ccode = '0507' + self.ccode = '0502' + # Found in http://g.alicdn.com/player/ykplayer/0.5.28/youku-player.min.js + # grep -oE '"[0-9a-zA-Z+/=]{256}"' youku-player.min.js + self.ckey = 'DIl58SLFxFNndSV1GFNnMQVYkx1PP5tKe1siZu/86PR1u/Wh1Ptd+WOZsHHWxysSfAOhNJpdVWsdVJNsfJ8Sxd8WKVvNfAS8aS8fAOzYARzPyPc3JvtnPHjTdKfESTdnuTW6ZPvk2pNDh4uFzotgdMEFkzQ5wZVXl2Pf1/Y6hLK0OnCNxBj3+nb0v72gZ6b0td+WOZsHHWxysSo/0y9D2K42SaB8Y/+aD2K42SaB8Y/+ahU+WOZsHcrxysooUeND' self.utid = None def youku_ups(self): @@ -86,6 +89,7 @@ url += '&client_ip=192.168.1.1' url += '&utid=' + self.utid url += '&client_ts=' + str(int(time.time())) + url += '&ckey=' + urllib.parse.quote(self.ckey) if self.password_protected: url += '&password=' + self.password headers = dict(Referer=self.referer) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/extractors/youtube.py new/you-get-0.4.1060/src/you_get/extractors/youtube.py --- old/you-get-0.4.1040/src/you_get/extractors/youtube.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/extractors/youtube.py 2018-04-15 17:13:08.000000000 +0200 @@ -366,14 +366,22 @@ dash_url += '&signature={}'.format(sig) dash_size = stream['clen'] itag = stream['itag'] + audio_url = None + audio_size = None + try: + audio_url = dash_webm_a_url + audio_size = int(dash_webm_a_size) + except UnboundLocalError as e: + audio_url = dash_mp4_a_url + audio_size = int(dash_mp4_a_size) self.dash_streams[itag] = { 'quality': stream['size'], 'itag': itag, 'type': mimeType, 'mime': mimeType, 'container': 'webm', - 'src': [dash_url, dash_webm_a_url], - 'size': int(dash_size) + int(dash_webm_a_size) + 'src': [dash_url, audio_url], + 'size': int(dash_size) + int(audio_size) } def extract(self, **kwargs): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/you-get-0.4.1040/src/you_get/version.py new/you-get-0.4.1060/src/you_get/version.py --- old/you-get-0.4.1040/src/you_get/version.py 2018-03-01 22:55:09.000000000 +0100 +++ new/you-get-0.4.1060/src/you_get/version.py 2018-04-15 17:13:08.000000000 +0200 @@ -1,4 +1,4 @@ #!/usr/bin/env python script_name = 'you-get' -__version__ = '0.4.1040' +__version__ = '0.4.1060'
