X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fmyvi.py;h=621ae74a7930cbaefb1f5c867de27d70499fe5d6;hb=3995d37da58ed071b54b7f81757cff4d534f5b9b;hp=9f4330f506ae594b35a4052147c931cf862b218a;hpb=1c20ddc966a69a241027c2d9a132b9caf3d0ebde;p=youtube-dl diff --git a/youtube_dl/extractor/myvi.py b/youtube_dl/extractor/myvi.py index 9f4330f50..621ae74a7 100644 --- a/youtube_dl/extractor/myvi.py +++ b/youtube_dl/extractor/myvi.py @@ -1,21 +1,24 @@ # coding: utf-8 from __future__ import unicode_literals +import re + from .vimple import SprutoBaseIE -class MyviEmbedIE(SprutoBaseIE): +class MyviIE(SprutoBaseIE): _VALID_URL = r'''(?x) https?:// - myvi\.ru/player/ + myvi\.(?:ru/player|tv)/ (?: (?: embed/html| + flash| api/Video/Get )/| content/preloader\.swf\?.*\bid= ) - (?P[\da-zA-Z_]+) + (?P[\da-zA-Z_-]+) ''' _TESTS = [{ 'url': 'http://myvi.ru/player/embed/html/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0', @@ -24,7 +27,7 @@ class MyviEmbedIE(SprutoBaseIE): 'id': 'f16b2bbd-cde8-481c-a981-7cd48605df43', 'ext': 'mp4', 'title': 'хозяин жизни', - 'thumbnail': 're:^https?://.*\.jpg$', + 'thumbnail': r're:^https?://.*\.jpg$', 'duration': 25, }, }, { @@ -33,8 +36,21 @@ class MyviEmbedIE(SprutoBaseIE): }, { 'url': 'http://myvi.ru/player/api/Video/Get/oOy4euHA6LVwNNAjhD9_Jq5Ha2Qf0rtVMVFMAZav8wObeRTZaCATzucDQIDph8hQU0', 'only_matching': True, + }, { + 'url': 'http://myvi.tv/embed/html/oTGTNWdyz4Zwy_u1nraolwZ1odenTd9WkTnRfIL9y8VOgHYqOHApE575x4_xxS9Vn0?ap=0', + 'only_matching': True, + }, { + 'url': 'http://myvi.ru/player/flash/ocp2qZrHI-eZnHKQBK4cZV60hslH8LALnk0uBfKsB-Q4WnY26SeGoYPi8HWHxu0O30', + 'only_matching': True, }] + @classmethod + def _extract_url(cls, webpage): + mobj = re.search( + r']+?src=(["\'])(?P(?:https?:)?//myvi\.(?:ru/player|tv)/(?:embed/html|flash)/[^"]+)\1', webpage) + if mobj: + return mobj.group('url') + def _real_extract(self, url): video_id = self._match_id(url)