Browse Source

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

totalwebcasting
Sergey M․ 10 years ago
parent
commit
d08225edf4
2 changed files with 75 additions and 0 deletions
  1. +1
    -0
      youtube_dl/extractor/__init__.py
  2. +74
    -0
      youtube_dl/extractor/miomio_tv.py

+ 1
- 0
youtube_dl/extractor/__init__.py View File

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


+ 74
- 0
youtube_dl/extractor/miomio_tv.py View File

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