diff options
| author | Sergey M․ <dstftw@gmail.com> | 2015-12-19 19:19:26 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2015-12-19 19:19:26 +0600 | 
| commit | c40dbb19ab475e8a0e1b29548130adf9ce13ea43 (patch) | |
| tree | 9f8fc50005982f05682bc50aa5385539c2070b19 | |
| parent | ffaf6e66e3830d0e4750aec2cfdaff1a6bd9c2ad (diff) | |
[toggle] Extract thumbnails
| -rw-r--r-- | youtube_dl/extractor/togglesg.py | 34 | 
1 files changed, 26 insertions, 8 deletions
| diff --git a/youtube_dl/extractor/togglesg.py b/youtube_dl/extractor/togglesg.py index 244c79e8d..a2b89d6bb 100644 --- a/youtube_dl/extractor/togglesg.py +++ b/youtube_dl/extractor/togglesg.py @@ -2,6 +2,7 @@  from __future__ import unicode_literals  import json +import re  from .common import InfoExtractor  from ..utils import ( @@ -119,12 +120,8 @@ class ToggleSgIE(InfoExtractor):          info = self._download_json(req, video_id, 'Downloading video info json')          title = info['MediaName'] -        duration = int_or_none(info.get('Duration')) -        thumbnail = info.get('PicURL') -        description = info.get('Description') -        created_at = parse_iso8601(info.get('CreationDate') or None) -        formats = [] +        formats = []          for video_file in info.get('Files', []):              ext = determine_ext(video_file['URL'])              vid_format = video_file['Format'].replace(' ', '') @@ -146,19 +143,40 @@ class ToggleSgIE(InfoExtractor):                      'preference': self._FORMAT_PREFERENCES.get(ext + '-' + vid_format) or -1,                      'format_note': 'DRM-protected video' if ext == 'wvm' else None                  }) -          if not formats:              # Most likely because geo-blocked              raise ExtractorError('No downloadable videos found', expected=True) -          self._sort_formats(formats) +        duration = int_or_none(info.get('Duration')) +        description = info.get('Description') +        created_at = parse_iso8601(info.get('CreationDate') or None) + +        thumbnails = [] +        for picture in info.get('Pictures', []): +            if not isinstance(picture, dict): +                continue +            pic_url = picture.get('URL') +            if not pic_url: +                continue +            thumbnail = { +                'url': pic_url, +            } +            pic_size = picture.get('PicSize', '') +            m = re.search(r'(?P<width>\d+)[xX](?P<height>\d+)', pic_size) +            if m: +                thumbnail.update({ +                    'width': int(m.group('width')), +                    'height': int(m.group('height')), +                }) +            thumbnails.append(thumbnail) +          return {              'id': video_id,              'title': title,              'description': description,              'duration': duration,              'timestamp': created_at, -            'thumbnail': thumbnail, +            'thumbnails': thumbnails,              'formats': formats,          } | 
