about summary refs log tree commit diff
path: root/youtube_dl/extractor/matchtv.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-01-30 18:30:27 +0600
committerSergey M․ <dstftw@gmail.com>2016-01-30 18:30:27 +0600
commitc3deacd5621d9686a32614e550eb4726e66c3899 (patch)
tree4d36fdd6688f74c5dee3cea150615de72ab971ed /youtube_dl/extractor/matchtv.py
parent8ab3fe81d84cb541eac3af73404e71d979967dcf (diff)
downloadyoutube-dl-c3deacd5621d9686a32614e550eb4726e66c3899.tar.gz
youtube-dl-c3deacd5621d9686a32614e550eb4726e66c3899.tar.xz
youtube-dl-c3deacd5621d9686a32614e550eb4726e66c3899.zip
[matchtv] Add extractor (Closes #8313)
Diffstat (limited to 'youtube_dl/extractor/matchtv.py')
-rw-r--r--youtube_dl/extractor/matchtv.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/youtube_dl/extractor/matchtv.py b/youtube_dl/extractor/matchtv.py
new file mode 100644
index 000000000..28e0dfe63
--- /dev/null
+++ b/youtube_dl/extractor/matchtv.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+import random
+
+from .common import InfoExtractor
+from ..compat import compat_urllib_parse
+from ..utils import (
+    sanitized_Request,
+    xpath_text,
+)
+
+
+class MatchTVIE(InfoExtractor):
+    _VALID_URL = r'https?://matchtv\.ru/?#live-player'
+    _TEST = {
+        'url': 'http://matchtv.ru/#live-player',
+        'info_dict': {
+            'id': 'matchtv-live',
+            'ext': 'flv',
+            'title': 're:^Матч ТВ - Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
+            'is_live': True,
+        },
+        'params': {
+            'skip_download': True,
+        },
+    }
+
+    def _real_extract(self, url):
+        video_id = 'matchtv-live'
+        request = sanitized_Request(
+            'http://player.matchtv.ntvplus.tv/player/smil?%s' % compat_urllib_parse.urlencode({
+                'ts': '',
+                'quality': 'SD',
+                'contentId': '561d2c0df7159b37178b4567',
+                'sign': '',
+                'includeHighlights': '0',
+                'userId': '',
+                'sessionId': random.randint(1, 1000000000),
+                'contentType': 'channel',
+                'timeShift': '0',
+                'platform': 'portal',
+            }),
+            headers={
+                'Referer': 'http://player.matchtv.ntvplus.tv/embed-player/NTVEmbedPlayer.swf',
+            })
+        video_url = self._download_json(request, video_id)['data']['videoUrl']
+        f4m_url = xpath_text(self._download_xml(video_url, video_id), './to')
+        formats = self._extract_f4m_formats(f4m_url, video_id)
+        return {
+            'id': video_id,
+            'title': self._live_title('Матч ТВ - Прямой эфир'),
+            'is_live': True,
+            'formats': formats,
+        }