diff --git a/you_get/downloader/__init__.py b/you_get/downloader/__init__.py index 6723892c..8afe51b4 100644 --- a/you_get/downloader/__init__.py +++ b/you_get/downloader/__init__.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from .cntv import * +from .iqiyi import * from .ku6 import * from .pptv import * from .sohu import * diff --git a/you_get/downloader/iqiyi.py b/you_get/downloader/iqiyi.py new file mode 100644 index 00000000..4ecbf018 --- /dev/null +++ b/you_get/downloader/iqiyi.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +__all__ = ['iqiyi_download'] + +from ..common import * + +import re + +def real_url(url): + import time + import json + return json.loads(get_html(url[:-3] + 'hml?v=' + str(int(time.time()) + 1921658928)))['l'] # XXX: what is 1921658928? + +def iqiyi_download(url, output_dir = '.', merge = True, info_only = False): + html = get_html(url) + #title = r1(r'title\s*:\s*"([^"]+)"', html) + #title = unescape_html(title).decode('utf-8') + #videoId = r1(r'videoId\s*:\s*"([^"]+)"', html) + #pid = r1(r'pid\s*:\s*"([^"]+)"', html) + #ptype = r1(r'ptype\s*:\s*"([^"]+)"', html) + #info_url = 'http://cache.video.qiyi.com/v/%s/%s/%s/' % (videoId, pid, ptype) + videoId = r1(r'''["']videoId["'][:=]["']([^"']+)["']''', html) + assert videoId + info_url = 'http://cache.video.qiyi.com/v/%s' % videoId + info_xml = get_html(info_url) + + from xml.dom.minidom import parseString + doc = parseString(info_xml) + title = doc.getElementsByTagName('title')[0].firstChild.nodeValue + size = int(doc.getElementsByTagName('totalBytes')[0].firstChild.nodeValue) + urls = [n.firstChild.nodeValue for n in doc.getElementsByTagName('file')] + assert urls[0].endswith('.f4v'), urls[0] + #urls = map(real_url, urls) + + print_info(site_info, title, 'flv', size) + if not info_only: + download_urls(urls, title, 'flv', size, output_dir = output_dir, merge = merge) + +site_info = "iQIYI.com" +download = iqiyi_download +download_playlist = playlist_not_supported('iqiyi') diff --git a/you_get/main.py b/you_get/main.py index 17241a8f..73acd4b4 100644 --- a/you_get/main.py +++ b/you_get/main.py @@ -18,6 +18,7 @@ def url_to_module(url): downloads = { '56': w56, 'cntv': cntv, + 'iqiyi': iqiyi, 'ku6': ku6, 'pptv': pptv, 'sohu': sohu, @@ -31,7 +32,6 @@ def url_to_module(url): # 'kankanews': bilibili, # 'iask': iask, # 'sina': iask, - # 'iqiyi': iqiyi, } if k in downloads: return downloads[k]