Merge branch 'MiomioTv' of https://github.com/tiktok7/youtube-dl into tiktok7-MiomioTv

master
Sergey M․ 9 years ago
commit d08225edf4

@ -274,6 +274,7 @@ from .mdr import MDRIE
from .metacafe import MetacafeIE from .metacafe import MetacafeIE
from .metacritic import MetacriticIE from .metacritic import MetacriticIE
from .mgoon import MgoonIE from .mgoon import MgoonIE
from .miomio_tv import MiomioTvIE
from .minhateca import MinhatecaIE from .minhateca import MinhatecaIE
from .ministrygrid import MinistryGridIE from .ministrygrid import MinistryGridIE
from .mit import TechTVMITIE, MITIE, OCWMITIE from .mit import TechTVMITIE, MITIE, OCWMITIE

@ -0,0 +1,74 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
class MiomioTvIE(InfoExtractor):
IE_NAME = 'miomio.tv'
_VALID_URL = r'https?://(?:www\.)?miomio\.tv/watch/cc(?P<id>[0-9]+)'
_TEST = {
'url': 'http://www.miomio.tv/watch/cc179734/',
'md5': '48de02137d0739c15b440a224ad364b9',
'info_dict': {
'id': '179734',
'title': u'\u624b\u7ed8\u52a8\u6f2b\u9b3c\u6ce3\u4f46\u4e01\u5168\u7a0b\u753b\u6cd5',
'ext': 'flv'
}
}
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
title = self._html_search_regex(r'<meta\s+name="description"\s+content="\s*([^"]*)\s*"', webpage, 'title')
ref_path = self._search_regex(r'src="(/mioplayer/.*?)"', webpage, 'ref_path')
referer = 'http://www.miomio.tv{0}'.format(ref_path)
xml_config = self._search_regex(r'flashvars="type=sina&amp;(.*?)&amp;cid=', webpage, 'xml config')
# skipping the following page causes lags and eventually connection drop-outs
# id is normally a rotating three digit value but a fixed value always appears to work
self._request_webpage("http://www.miomio.tv/mioplayer/mioplayerconfigfiles/xml.php?id={0}&r=cc{1}".format(id, 945), video_id)
# the following xml contains the actual configuration information on the video file(s)
xml_url = 'http://www.miomio.tv/mioplayer/mioplayerconfigfiles/sina.php?{0}'.format(xml_config)
vidconfig = self._download_xml(xml_url, video_id)
file_els = vidconfig.findall('.//durl')
entries = []
for file_el in file_els:
segment_id = file_el.find('order').text.strip()
segment_title = '_'.join([title, segment_id])
segment_duration = file_el.find('length').text.strip()
segment_url = file_el.find('url').text.strip()
entries.append({
'id': segment_id,
'title': segment_title,
'duration': segment_duration,
'url': segment_url
})
http_headers = {
'Referer': referer,
'Accept-Encoding': 'gzip, deflate',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
}
if len(entries) == 1:
return {
'id': video_id,
'title': title,
'url': entries[0]['url'],
'http_headers': http_headers
}
return {
'_type': 'multi_video',
'id': video_id,
'title': title,
'entries': entries,
'http_headers': http_headers
}
Loading…
Cancel
Save