From e71972d4a1ab1005c52a1e7f755c4213470823b3 Mon Sep 17 00:00:00 2001 From: Mort Yao Date: Fri, 31 Aug 2012 02:55:47 +0200 Subject: [PATCH] fix #1: use redirected URLs for resuming of Youku downloads --- common.py | 7 +++++++ get_youku.py | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common.py b/common.py index 6c8a5c8..7661581 100644 --- a/common.py +++ b/common.py @@ -109,6 +109,13 @@ def url_info(url): return type, ext, size +def url_locations(urls): + locations = [] + for url in urls: + response = request.urlopen(request.Request(url)) + locations.append(response.url) + return locations + def url_save(url, filepath, bar, refer = None, is_part = False): file_size = url_size(url) diff --git a/get_youku.py b/get_youku.py index 52ae20a..0929c88 100755 --- a/get_youku.py +++ b/get_youku.py @@ -123,11 +123,14 @@ def file_type_of_url(url): def youku_download_by_id(id2, title, output_dir = '.', stream_type = None, merge = True, info_only = False): info = get_info(id2) urls, sizes = zip(*find_video(info, stream_type)) + ext = file_type_of_url(urls[0]) total_size = sum(sizes) - print_info(site_info, title, file_type_of_url(urls[0]), total_size) + urls = url_locations(urls) # Use real (redirected) URLs for resuming of downloads + + print_info(site_info, title, ext, total_size) if not info_only: - download_urls(urls, title, file_type_of_url(urls[0]), total_size, output_dir, merge = merge) + download_urls(urls, title, ext, total_size, output_dir, merge = merge) def youku_download(url, output_dir = '.', stream_type = None, merge = True, info_only = False): id2, title = parse_page(url) -- GitLab