2013-02-23 02:30:51 +04:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
__all__ = ['miomio_download']
|
|
|
|
|
|
|
|
from ..common import *
|
|
|
|
|
|
|
|
from .tudou import tudou_download_by_id
|
2014-06-24 05:59:47 +04:00
|
|
|
from .youku import youku_download_by_vid
|
2015-10-21 07:13:17 +03:00
|
|
|
from xml.dom.minidom import parseString
|
2013-02-23 02:30:51 +04:00
|
|
|
|
2015-09-26 08:45:39 +03:00
|
|
|
def miomio_download(url, output_dir = '.', merge = True, info_only = False, **kwargs):
|
2013-02-23 02:30:51 +04:00
|
|
|
html = get_html(url)
|
2014-06-24 05:59:47 +04:00
|
|
|
|
2013-02-23 02:30:51 +04:00
|
|
|
title = r1(r'<meta name="description" content="([^"]*)"', html)
|
|
|
|
flashvars = r1(r'flashvars="(type=[^"]*)"', html)
|
2014-06-24 05:59:47 +04:00
|
|
|
|
2013-02-23 02:30:51 +04:00
|
|
|
t = r1(r'type=(\w+)', flashvars)
|
|
|
|
id = r1(r'vid=([^"]+)', flashvars)
|
|
|
|
if t == 'youku':
|
2014-06-28 13:08:19 +04:00
|
|
|
youku_download_by_vid(id, title=title, output_dir=output_dir, merge=merge, info_only=info_only)
|
2013-02-23 02:30:51 +04:00
|
|
|
elif t == 'tudou':
|
2013-10-19 01:03:56 +04:00
|
|
|
tudou_download_by_id(id, title, output_dir=output_dir, merge=merge, info_only=info_only)
|
2015-10-21 07:13:17 +03:00
|
|
|
elif t == 'sina' or t == 'video':
|
2015-11-07 13:43:31 +03:00
|
|
|
fake_headers['Referer'] = url
|
2014-06-27 19:46:18 +04:00
|
|
|
url = "http://www.miomio.tv/mioplayer/mioplayerconfigfiles/sina.php?vid=" + id
|
2015-10-21 07:13:17 +03:00
|
|
|
xml_data = get_content(url, headers=fake_headers, decoded=True)
|
|
|
|
url_list = sina_xml_to_url_list(xml_data)
|
|
|
|
|
|
|
|
size_full = 0
|
|
|
|
for url in url_list:
|
|
|
|
type_, ext, size = url_info(url)
|
|
|
|
size_full += size
|
|
|
|
|
|
|
|
print_info(site_info, title, type_, size_full)
|
|
|
|
if not info_only:
|
|
|
|
download_urls([url], title, ext, total_size=None, output_dir=output_dir, merge=merge)
|
2013-02-23 02:30:51 +04:00
|
|
|
else:
|
|
|
|
raise NotImplementedError(flashvars)
|
|
|
|
|
2015-10-21 07:13:17 +03:00
|
|
|
#----------------------------------------------------------------------
|
|
|
|
def sina_xml_to_url_list(xml_data):
|
|
|
|
"""str->list
|
|
|
|
Convert XML to URL List.
|
|
|
|
From Biligrab.
|
|
|
|
"""
|
|
|
|
rawurl = []
|
|
|
|
dom = parseString(xml_data)
|
|
|
|
for node in dom.getElementsByTagName('durl'):
|
|
|
|
url = node.getElementsByTagName('url')[0]
|
|
|
|
rawurl.append(url.childNodes[0].data)
|
|
|
|
return rawurl
|
|
|
|
|
2013-02-23 02:30:51 +04:00
|
|
|
site_info = "MioMio.tv"
|
|
|
|
download = miomio_download
|
|
|
|
download_playlist = playlist_not_supported('miomio')
|