From a681458860188dee13266ba96df50e6f8b97a1ae Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Mon, 17 Dec 2012 03:20:19 +0100 Subject: [PATCH] Google+: default to download the best quality & codecs; fix #42 and #43 --- CHANGELOG.txt | 9 +++++++++ you_get/downloader/googleplus.py | 33 ++++++++++++++++++++++++++++---- you_get/version.py | 4 ++-- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index f8b24a1f..f14c1e2a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,15 @@ Changelog ========= +0.3dev-20121217 +--------------- + +*Date: 2012-12-17* + +* Google+: downloading the highest available quality now. +* Fix issues `#42 `_, `#43 `_ for Google+. +* Merge pull request `#40 `_; fix some issues for Ku6, Sina and 56. + 0.3dev-20121212 --------------- diff --git a/you_get/downloader/googleplus.py b/you_get/downloader/googleplus.py index d2f10369..944f13d8 100644 --- a/you_get/downloader/googleplus.py +++ b/you_get/downloader/googleplus.py @@ -4,9 +4,11 @@ __all__ = ['googleplus_download'] from ..common import * +import re + def googleplus_download(url, output_dir = '.', merge = True, info_only = False): # Percent-encoding Unicode URL - url = parse.quote(url, safe = ':/') + url = parse.quote(url, safe = ':/+%') html = get_html(url) html = parse.unquote(html).replace('\/', '/') @@ -14,10 +16,33 @@ def googleplus_download(url, output_dir = '.', merge = True, info_only = False): title = r1(r'(.*)', html) or r1(r'(.*)\n', html) url2 = r1(r'"(https\://plus\.google\.com/photos/.*?)",,"image/jpeg","video"\]', html) - html2 = get_html(url2) - html2 = parse.unquote(html2.replace('\/', '/')) + if url2: + html = get_html(url2) + html = parse.unquote(html.replace('\/', '/')) - real_url = r1(r',\"(http://redirector.googlevideo.com/.*)\"]', html2) + url_data = re.findall(r'(\[[^\[\"]+\"http://redirector.googlevideo.com/.*\"\])', html) + + for itag in [ + '38', + '46', '37', + '102', '45', '22', + '84', + '120', + '85', + '44', '35', + '101', '100', '43', '34', '82', '18', + '6', + '83', '5', '36', + '17', + '13', + ]: + real_url = None + for url_item in url_data: + if itag == str(eval(url_item)[0]): + real_url = eval(url_item)[3] + break + if real_url: + break real_url = unicodize(real_url) type, ext, size = url_info(real_url) diff --git a/you_get/version.py b/you_get/version.py index 79a88480..5f3e2f34 100644 --- a/you_get/version.py +++ b/you_get/version.py @@ -1,4 +1,4 @@ #!/usr/bin/env python -__version__ = '0.3dev-20121212' -__date__ = '2012-12-12' +__version__ = '0.3dev-20121217' +__date__ = '2012-12-17'