add support for iQIYI (download not supported)

This commit is contained in:
Mort Yao 2012-09-01 20:32:08 +02:00
parent ab378f24ce
commit d0d7419983
3 changed files with 43 additions and 1 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python
from .cntv import *
from .iqiyi import *
from .ku6 import *
from .pptv import *
from .sohu import *

View File

@ -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')

View File

@ -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]