From a41a17fdefcca622d23a18dcf70c9d5c19c7680e Mon Sep 17 00:00:00 2001 From: natsu1211 Date: Thu, 5 May 2016 16:35:09 +0900 Subject: [PATCH 1/3] fix url and add support to 189 video source --- src/you_get/extractors/tucao.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/you_get/extractors/tucao.py b/src/you_get/extractors/tucao.py index 28e296c7..66baa3bf 100644 --- a/src/you_get/extractors/tucao.py +++ b/src/you_get/extractors/tucao.py @@ -6,13 +6,14 @@ from ..common import * import random import time from xml.dom import minidom - +#possible raw list types #1.
  • type=tudou&vid=199687639
  • #2.
  • type=tudou&vid=199506910|
  • #3.
  • type=video&file=http://xiaoshen140731.qiniudn.com/lovestage04.flv|
  • #4 may ?
  • type=video&file=http://xiaoshen140731.qiniudn.com/lovestage04.flv|xx**type=&vid=?
  • #5.
  • type=tudou&vid=200003098|07**type=tudou&vid=200000350|08
  • - +#6.
  • vid=49454694&type=sina|
  • +#7.
  • type=189&vid=513031813243909|
  • # re_pattern=re.compile(r"(type=(.+?)&(vid|file)=(.*?))[\|<]") def tucao_single_download(type_link, title, output_dir=".", merge=True, info_only=False): @@ -22,8 +23,17 @@ def tucao_single_download(type_link, title, output_dir=".", merge=True, info_onl print_info(site_info, title, vtype, size) if not info_only: download_urls([url], title, ext, size, output_dir) + #fix for 189 video source, see raw list types 7 + elif "189" in type_link: + vid = match1(type_link, r"vid=(\d+)") + assert vid, "vid not exsits" + url = "http://api.tucao.tv/api/down/{}".format(vid) + vtype, ext, size=url_info(url) + print_info(site_info, title, vtype, size) + if not info_only: + download_urls([url], title, ext, size, output_dir) else: - u="http://www.tucao.cc/api/playurl.php?{}&key=tucao{:07x}.cc&r={}".format(type_link,random.getrandbits(28),int(time.time()*1000)) + u="http://www.tucao.tv/api/playurl.php?{}&key=tucao{:07x}.cc&r={}".format(type_link,random.getrandbits(28),int(time.time()*1000)) xml=minidom.parseString(get_content(u)) urls=[] size=0 @@ -33,12 +43,13 @@ def tucao_single_download(type_link, title, output_dir=".", merge=True, info_onl size+=_size print_info(site_info, title, vtype, size) if not info_only: - download_urls(urls, title, ext, size, output_dir) + download_urls(urls, title, ext, size, output_dir) def tucao_download(url, output_dir=".", merge=True, info_only=False, **kwargs): html=get_content(url) title=match1(html,r'

    (.*?)<\w') - raw_list=match1(html,r"
  • (type=.+?)
  • ") + #fix for raw list that vid goes before type, see raw list types 6 + raw_list=match1(html,r"
  • \s*(type=.+?|vid=.+?)
  • ") raw_l=raw_list.split("**") if len(raw_l)==1: format_link=raw_l[0][:-1] if raw_l[0].endswith("|") else raw_l[0] @@ -49,6 +60,6 @@ def tucao_download(url, output_dir=".", merge=True, info_only=False, **kwargs): tucao_single_download(format_link,title+"-"+sub_title,output_dir,merge,info_only) -site_info = "tucao.cc" +site_info = "tucao.tv" download = tucao_download download_playlist = playlist_not_supported("tucao") From 54cafb3d3cc387b2cf2eabe2bc88d76dba173b97 Mon Sep 17 00:00:00 2001 From: Xiaobing Yu Date: Fri, 6 May 2016 08:43:12 +0800 Subject: [PATCH 2/3] fix download error like this url http://v.qq.com/page/m/a/h/m0195j57pah.html --- src/you_get/extractors/qq.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/you_get/extractors/qq.py b/src/you_get/extractors/qq.py index 00a99cd9..66487b8e 100644 --- a/src/you_get/extractors/qq.py +++ b/src/you_get/extractors/qq.py @@ -10,7 +10,12 @@ def qq_download_by_vid(vid, title, output_dir='.', merge=True, info_only=False): output_json = json.loads(match1(content, r'QZOutputJson=(.*)')[:-1]) url = output_json['vl']['vi'][0]['ul']['ui'][0]['url'] fvkey = output_json['vl']['vi'][0]['fvkey'] - url = '%s/%s.mp4?vkey=%s' % ( url, vid, fvkey ) + mp4 = output_json['vl']['vi'][0]['cl'].get('ci', None) + if mp4: + mp4 = mp4[0]['keyid'].replace('.10', '.p') + '.mp4' + else: + mp4 = output_json['vl']['vi'][0]['fn'] + url = '%s/%s?vkey=%s' % ( url, mp4, fvkey ) _, ext, size = url_info(url, faker=True) print_info(site_info, title, ext, size) From b9428bd9c73aa61db4bfd4529cd38fa58b743704 Mon Sep 17 00:00:00 2001 From: Xiaobing Yu Date: Fri, 6 May 2016 18:41:11 +0800 Subject: [PATCH 3/3] some url like this http://kuaibao.qq.com/s/SPO2016050503989500 got the title failed will raise exception --- src/you_get/extractors/qq.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/you_get/extractors/qq.py b/src/you_get/extractors/qq.py index 66487b8e..ebe1a9ad 100644 --- a/src/you_get/extractors/qq.py +++ b/src/you_get/extractors/qq.py @@ -32,7 +32,8 @@ def qq_download(url, output_dir='.', merge=True, info_only=False, **kwargs): elif 'kuaibao.qq.com' in url: content = get_html(url) vid = match1(content, r'vid\s*=\s*"\s*([^"]+)"') - title = match1(content, r'title">([^"]+)

    ').strip() + title = match1(content, r'title">([^"]+)

    ') + title = title.strip() if title else vid elif 'iframe/player.html' in url: vid = match1(url, r'\bvid=(\w+)') # for embedded URLs; don't know what the title is