diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2015-02-26 00:59:53 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2015-02-26 00:59:53 +0100 | 
| commit | 9a48926a5734e0c1530c4788680961610090a837 (patch) | |
| tree | 2e0e19e593ddbc17e05d1308ede646fee5525334 | |
| parent | 13cd97f3dfd87373cfc501224692352cb20e8194 (diff) | |
[escapist] Add support for advertisements
| -rw-r--r-- | youtube_dl/extractor/escapist.py | 41 | 
1 files changed, 31 insertions, 10 deletions
| diff --git a/youtube_dl/extractor/escapist.py b/youtube_dl/extractor/escapist.py index 3244306dc..b45c1dbd0 100644 --- a/youtube_dl/extractor/escapist.py +++ b/youtube_dl/extractor/escapist.py @@ -52,6 +52,7 @@ class EscapistIE(InfoExtractor):              webpage, 'config URL'))          formats = [] +        ad_formats = []          def _add_format(name, cfgurl, quality):              config = self._download_json( @@ -61,14 +62,19 @@ class EscapistIE(InfoExtractor):                  transform_source=js_to_json)              playlist = config['playlist'] -            video_url = next( -                p['url'] for p in playlist -                if p.get('eventCategory') == 'Video') -            formats.append({ -                'url': video_url, -                'format_id': name, -                'quality': quality, -            }) +            for p in playlist: +                if p.get('eventCategory') == 'Video': +                    ar = formats +                elif p.get('eventCategory') == 'Video Postroll': +                    ar = ad_formats +                else: +                    continue + +                ar.append({ +                    'url': p['url'], +                    'format_id': name, +                    'quality': quality, +                })          _add_format('normal', config_url, quality=0)          hq_url = (config_url + @@ -77,10 +83,9 @@ class EscapistIE(InfoExtractor):              _add_format('hq', hq_url, quality=1)          except ExtractorError:              pass  # That's fine, we'll just use normal quality -          self._sort_formats(formats) -        return { +        res = {              'id': video_id,              'formats': formats,              'uploader': uploader, @@ -89,3 +94,19 @@ class EscapistIE(InfoExtractor):              'thumbnail': self._og_search_thumbnail(webpage),              'description': description,          } + +        if self._downloader.params.get('include_ads') and ad_formats: +            self._sort_formats(ad_formats) +            ad_res = { +                'id': '%s-ad' % video_id, +                'title': '%s (Postroll)' % title, +                'formats': ad_formats, +            } +            return { +                '_type': 'playlist', +                'entries': [res, ad_res], +                'title': title, +                'id': video_id, +            } + +        return res | 
