about summary refs log tree commit diff
path: root/youtube_dl/extractor/myvi.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-07-09 23:53:50 +0600
committerSergey M․ <dstftw@gmail.com>2015-07-09 23:53:50 +0600
commit1c20ddc966a69a241027c2d9a132b9caf3d0ebde (patch)
treeeb84bc7e2f168229d47a6b0d7ae5316dbda6d260 /youtube_dl/extractor/myvi.py
parent675e9f22ea3f43fbade9bbd13ee5de3eb45c538f (diff)
downloadyoutube-dl-1c20ddc966a69a241027c2d9a132b9caf3d0ebde.tar.gz
youtube-dl-1c20ddc966a69a241027c2d9a132b9caf3d0ebde.tar.xz
youtube-dl-1c20ddc966a69a241027c2d9a132b9caf3d0ebde.zip
[myvi:embed] Add extractor (Closes #6167)
Diffstat (limited to 'youtube_dl/extractor/myvi.py')
-rw-r--r--youtube_dl/extractor/myvi.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/youtube_dl/extractor/myvi.py b/youtube_dl/extractor/myvi.py
new file mode 100644
index 000000000..9f4330f50
--- /dev/null
+++ b/youtube_dl/extractor/myvi.py
@@ -0,0 +1,44 @@
+# coding: utf-8
+from __future__ import unicode_literals
+
+from .vimple import SprutoBaseIE
+
+
+class MyviEmbedIE(SprutoBaseIE):
+    _VALID_URL = r'''(?x)
+                    https?://
+                        myvi\.ru/player/
+                            (?:
+                                (?:
+                                    embed/html|
+                                    api/Video/Get
+                                )/|
+                                content/preloader\.swf\?.*\bid=
+                            )
+                            (?P<id>[\da-zA-Z_]+)
+                    '''
+    _TESTS = [{
+        'url': 'http://myvi.ru/player/embed/html/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0',
+        'md5': '571bbdfba9f9ed229dc6d34cc0f335bf',
+        'info_dict': {
+            'id': 'f16b2bbd-cde8-481c-a981-7cd48605df43',
+            'ext': 'mp4',
+            'title': 'хозяин жизни',
+            'thumbnail': 're:^https?://.*\.jpg$',
+            'duration': 25,
+        },
+    }, {
+        'url': 'http://myvi.ru/player/content/preloader.swf?id=oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wOYf1WFpPfc_bWTKGVf_Zafr0',
+        'only_matching': True,
+    }, {
+        'url': 'http://myvi.ru/player/api/Video/Get/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0',
+        'only_matching': True,
+    }]
+
+    def _real_extract(self, url):
+        video_id = self._match_id(url)
+
+        spruto = self._download_json(
+            'http://myvi.ru/player/api/Video/Get/%s?sig' % video_id, video_id)['sprutoData']
+
+        return self._extract_spruto(spruto, video_id)