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'


Reply via email to