aboutsummaryrefslogtreecommitdiff
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.xz
[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)