youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

matchtv.py (1811B)


      1 # coding: utf-8
      2 from __future__ import unicode_literals
      3 
      4 import random
      5 
      6 from .common import InfoExtractor
      7 from ..utils import xpath_text
      8 
      9 
     10 class MatchTVIE(InfoExtractor):
     11     _VALID_URL = r'https?://matchtv\.ru(?:/on-air|/?#live-player)'
     12     _TESTS = [{
     13         'url': 'http://matchtv.ru/#live-player',
     14         'info_dict': {
     15             'id': 'matchtv-live',
     16             'ext': 'flv',
     17             'title': r're:^Матч ТВ - Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
     18             'is_live': True,
     19         },
     20         'params': {
     21             'skip_download': True,
     22         },
     23     }, {
     24         'url': 'http://matchtv.ru/on-air/',
     25         'only_matching': True,
     26     }]
     27 
     28     def _real_extract(self, url):
     29         video_id = 'matchtv-live'
     30         video_url = self._download_json(
     31             'http://player.matchtv.ntvplus.tv/player/smil', video_id,
     32             query={
     33                 'ts': '',
     34                 'quality': 'SD',
     35                 'contentId': '561d2c0df7159b37178b4567',
     36                 'sign': '',
     37                 'includeHighlights': '0',
     38                 'userId': '',
     39                 'sessionId': random.randint(1, 1000000000),
     40                 'contentType': 'channel',
     41                 'timeShift': '0',
     42                 'platform': 'portal',
     43             },
     44             headers={
     45                 'Referer': 'http://player.matchtv.ntvplus.tv/embed-player/NTVEmbedPlayer.swf',
     46             })['data']['videoUrl']
     47         f4m_url = xpath_text(self._download_xml(video_url, video_id), './to')
     48         formats = self._extract_f4m_formats(f4m_url, video_id)
     49         self._sort_formats(formats)
     50         return {
     51             'id': video_id,
     52             'title': self._live_title('Матч ТВ - Прямой эфир'),
     53             'is_live': True,
     54             'formats': formats,
     55         }