Merge branch 'jackyzy823-develop' into develop, fix #257 and close #266

This commit is contained in:
Mort Yao 2014-07-31 21:59:08 +02:00
commit 585eb8d441
4 changed files with 71 additions and 2 deletions

View File

@ -922,7 +922,7 @@ def script_main(script_name, download, download_playlist = None):
sys.exit(1)
def url_to_module(url):
from .extractors import netease, w56, acfun, baidu, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, douban, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tumblr, vid48, vimeo, vine, vk, xiami, yinyuetai, youku, youtube
from .extractors import netease, w56, acfun, baidu, bilibili, blip, catfun, cntv, cbs, coursera, dailymotion, douban, ehow, facebook, freesound, google, sina, ifeng, alive, instagram, iqiyi, joy, jpopsuki, khan, ku6, kugou, kuwo, letv, magisto, miomio, mixcloud, mtv81, nicovideo, pptv, qq, sohu, songtaste, soundcloud, ted, theplatform, tudou, tucao, tumblr, vid48, vimeo, vine, vk, xiami, yinyuetai, youku, youtube
video_host = r1(r'https?://([^/]+)/', url)
video_url = r1(r'https?://[^/]+(.*)', url)
@ -978,6 +978,7 @@ def url_to_module(url):
'soundcloud': soundcloud,
'ted': ted,
'theplatform': theplatform,
"tucao":tucao,
'tudou': tudou,
'tumblr': tumblr,
'vid48': vid48,

View File

@ -37,6 +37,7 @@ from .sohu import *
from .songtaste import *
from .soundcloud import *
from .theplatform import *
from .tucao import *
from .tudou import *
from .tumblr import *
from .vid48 import *

View File

@ -4,8 +4,21 @@ __all__ = ['qq_download']
from ..common import *
#QQMUSIC
#SINGLE
#1. http://y.qq.com/#type=song&mid=000A9lMb0iEqwN
#2. http://y.qq.com/#type=song&id=4754713
#3. http://s.plcloud.music.qq.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songmid=002NqCeX3owQIw
#4. http://s.plcloud.music.qq.com/fcgi-bin/fcg_yqq_song_detail_info.fcg?songid=4754713
#ALBUM
#1. http://y.qq.com/y/static/album/3/c/00385vBa0n3O3c.html?pgv_ref=qqmusic.y.index.music.pic1
#2. http://y.qq.com/#type=album&mid=004c62RC2uujor
#MV
#can download as video through qq_download_by_id
#1. http://y.qq.com/y/static/mv/mv_play.html?vid=i0014ufczcw
def qq_download_by_id(id, title=None, output_dir='.', merge=True, info_only=False):
xml = get_html('http://www.acfun.com/getinfo?vids=%s' % id)
xml = get_html('http://www.acfun.tv/getinfo?vids=%s' % id)
from xml.dom.minidom import parseString
doc = parseString(xml)
doc_root = doc.getElementsByTagName('root')[0]

View File

@ -0,0 +1,54 @@
#!/usr/bin/env python
__all__ = ['tucao_download']
from ..common import *
# import re
import random
import time
from xml.dom import minidom
#1. <li>type=tudou&vid=199687639</li>
#2. <li>type=tudou&vid=199506910|</li>
#3. <li>type=video&file=http://xiaoshen140731.qiniudn.com/lovestage04.flv|</li>
#4 may ? <li>type=video&file=http://xiaoshen140731.qiniudn.com/lovestage04.flv|xx**type=&vid=?</li>
#5. <li>type=tudou&vid=200003098|07**type=tudou&vid=200000350|08</li>
# re_pattern=re.compile(r"(type=(.+?)&(vid|file)=(.*?))[\|<]")
def tucao_single_download(type_link, title, output_dir=".", merge=True, info_only=False):
if "file" in type_link:
url=type_link[type_link.find("file=")+5:]
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))
xml=minidom.parseString(get_content(u))
urls=[]
size=0
for i in xml.getElementsByTagName("url"):
urls.append(i.firstChild.nodeValue)
vtype, ext, _size=url_info(i.firstChild.nodeValue)
size+=_size
print_info(site_info, title, vtype, size)
if not info_only:
download_urls(urls, title, ext, size, output_dir)
def tucao_download(url, output_dir=".", merge=True, info_only=False):
html=get_content(url)
title=match1(html,r'<h1 class="show_title">(.*?)<\w')
raw_list=match1(html,r"<li>(type=.+?)</li>")
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]
tucao_single_download(format_link,title,output_dir,merge,info_only)
else:
for i in raw_l:
format_link,sub_title=i.split("|")
tucao_single_download(format_link,title+"-"+sub_title,output_dir,merge,info_only)
site_info = "tucao.cc"
download = tucao_download
download_playlist = playlist_not_supported("tucao")