diff options
Diffstat (limited to 'youtube_dl/extractor/smotri.py')
| -rw-r--r-- | youtube_dl/extractor/smotri.py | 55 | 
1 files changed, 42 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/smotri.py b/youtube_dl/extractor/smotri.py index 24746a09a..93a7cfe15 100644 --- a/youtube_dl/extractor/smotri.py +++ b/youtube_dl/extractor/smotri.py @@ -53,7 +53,7 @@ class SmotriIE(InfoExtractor):                  'thumbnail': 'http://frame4.loadup.ru/03/ed/57591.2.3.jpg',              },          }, -        # video-password +        # video-password, not approved by moderator          {              'url': 'http://smotri.com/video/view/?id=v1390466a13c',              'md5': 'f6331cef33cad65a0815ee482a54440b', @@ -71,7 +71,24 @@ class SmotriIE(InfoExtractor):              },              'skip': 'Video is not approved by moderator',          }, -        # age limit + video-password +        # video-password +        { +            'url': 'http://smotri.com/video/view/?id=v6984858774#', +            'md5': 'f11e01d13ac676370fc3b95b9bda11b0', +            'info_dict': { +                'id': 'v6984858774', +                'ext': 'mp4', +                'title': 'Дача Солженицина ПАРОЛЬ 223322', +                'uploader': 'psavari1', +                'uploader_id': 'psavari1', +                'upload_date': '20081103', +                'thumbnail': 're:^https?://.*\.jpg$', +            }, +            'params': { +                'videopassword': '223322', +            }, +        }, +        # age limit + video-password, not approved by moderator          {              'url': 'http://smotri.com/video/view/?id=v15408898bcf',              'md5': '91e909c9f0521adf5ee86fbe073aad70', @@ -90,19 +107,22 @@ class SmotriIE(InfoExtractor):              },              'skip': 'Video is not approved by moderator',          }, -        # not approved by moderator, but available +        # age limit + video-password          { -            'url': 'http://smotri.com/video/view/?id=v28888533b73', -            'md5': 'f44bc7adac90af518ef1ecf04893bb34', +            'url': 'http://smotri.com/video/view/?id=v7780025814', +            'md5': 'b4599b068422559374a59300c5337d72',              'info_dict': { -                'id': 'v28888533b73', +                'id': 'v7780025814',                  'ext': 'mp4', -                'title': 'Russian Spies Killed By ISIL Child Soldier', -                'uploader': 'Mopeder', -                'uploader_id': 'mopeder', -                'duration': 71, -                'thumbnail': 'http://frame9.loadup.ru/d7/32/2888853.2.3.jpg', -                'upload_date': '20150114', +                'title': 'Sexy Beach (пароль 123)', +                'uploader': 'вАся', +                'uploader_id': 'asya_prosto', +                'upload_date': '20081218', +                'thumbnail': 're:^https?://.*\.jpg$', +                'age_limit': 18, +            }, +            'params': { +                'videopassword': '123'              },          },          # swf player @@ -152,6 +172,10 @@ class SmotriIE(InfoExtractor):              'getvideoinfo': '1',          } +        video_password = self._downloader.params.get('videopassword', None) +        if video_password: +            video_form['pass'] = hashlib.md5(video_password.encode('utf-8')).hexdigest() +          request = compat_urllib_request.Request(              'http://smotri.com/video/view/url/bot/', compat_urllib_parse.urlencode(video_form))          request.add_header('Content-Type', 'application/x-www-form-urlencoded') @@ -161,13 +185,18 @@ class SmotriIE(InfoExtractor):          video_url = video.get('_vidURL') or video.get('_vidURL_mp4')          if not video_url: -            if video.get('_moderate_no') or not video.get('moderated'): +            if video.get('_moderate_no'):                  raise ExtractorError(                      'Video %s has not been approved by moderator' % video_id, expected=True)              if video.get('error'):                  raise ExtractorError('Video %s does not exist' % video_id, expected=True) +            if video.get('_pass_protected') == 1: +                msg = ('Invalid video password' if video_password +                       else 'This video is protected by a password, use the --video-password option') +                raise ExtractorError(msg, expected=True) +          title = video['title']          thumbnail = video['_imgURL']          upload_date = unified_strdate(video['added']) | 
