From 5bfb7650b3699a53b3cdac272792091d7f0fbadb Mon Sep 17 00:00:00 2001 From: pl <0x00-pl@gmail.com> Date: Sat, 11 Oct 2014 17:46:45 +0800 Subject: [PATCH] try support stream vedio --- src/you_get/common.py | 19 ++++++++++++------- src/you_get/extractors/douyutv.py | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/you_get/common.py b/src/you_get/common.py index 6a35b8e3..34c1fda7 100644 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -199,14 +199,17 @@ def url_size(url, faker = False): else: response = request.urlopen(url) - size = int(response.headers['content-length']) - return size + size = response.headers['content-length'] + return int(size) if size!=None else None # TO BE DEPRECATED # urls_size() does not have a faker # also it takes too long time def urls_size(urls): - return sum(map(url_size, urls)) + try: + return sum(map(url_size, urls)) + except: + return None def url_info(url, faker = False): if faker: @@ -245,8 +248,8 @@ def url_info(url, faker = False): else: ext = None - if headers['transfer-encoding'] != 'chunked': - size = int(headers['content-length'] or '-1') + if headers['transfer-encoding'] != 'chunked' and headers['content-length']: + size = int(headers['content-length']) else: size = None @@ -491,7 +494,6 @@ def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merg import sys traceback.print_exc(file = sys.stdout) pass - title = tr(get_filename(title)) filename = '%s.%s' % (title, ext) @@ -717,7 +719,10 @@ def print_info(site_info, title, type, size): print("Video Site:", site_info) print("Title: ", unescape_html(tr(title))) print("Type: ", type_info) - print("Size: ", round(size / 1048576, 2), "MiB (" + str(size) + " Bytes)") + if size: + print("Size: ", round(size / 1048576, 2), "MiB (" + str(size) + " Bytes)") + else: + print("Size: ", "Unknow") print() def mime_to_container(mime): diff --git a/src/you_get/extractors/douyutv.py b/src/you_get/extractors/douyutv.py index 1dde4141..72cab40a 100644 --- a/src/you_get/extractors/douyutv.py +++ b/src/you_get/extractors/douyutv.py @@ -13,6 +13,7 @@ def douyutv_download(url, output_dir = '.', merge = True, info_only = False): roomid = re.findall(room_id_patt,html)[0] title = unescape_html(re.findall(title_patt,html)[0]) + print(title) conf = get_html("http://www.douyutv.com/api/client/room/"+roomid) metadata = json.loads(conf)