diff options
| author | Remita Amine <remitamine@gmail.com> | 2017-10-12 16:12:47 +0000 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2017-10-12 16:12:47 +0000 | 
| commit | 50d808f5c942b454b3febbf1ef5d78bd204ce469 (patch) | |
| tree | 07423c2d9c57f3c55eb317bd59bd0a0768c680c0 | |
| parent | 7a64c33aee81e3a495c162af61bcd030a514f109 (diff) | |
[common] add support for jwplayer youtube embeds
| -rw-r--r-- | youtube_dl/extractor/common.py | 18 | 
1 files changed, 13 insertions, 5 deletions
| diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index a878550c2..a69240693 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -2322,7 +2322,6 @@ class InfoExtractor(object):              formats = self._parse_jwplayer_formats(                  video_data['sources'], video_id=this_video_id, m3u8_id=m3u8_id,                  mpd_id=mpd_id, rtmp_params=rtmp_params, base_url=base_url) -            self._sort_formats(formats)              subtitles = {}              tracks = video_data.get('tracks') @@ -2339,16 +2338,25 @@ class InfoExtractor(object):                          'url': self._proto_relative_url(track_url)                      }) -            entries.append({ +            entry = {                  'id': this_video_id, -                'title': video_data['title'] if require_title else video_data.get('title'), +                'title': unescapeHTML(video_data['title'] if require_title else video_data.get('title')),                  'description': video_data.get('description'),                  'thumbnail': self._proto_relative_url(video_data.get('image')),                  'timestamp': int_or_none(video_data.get('pubdate')),                  'duration': float_or_none(jwplayer_data.get('duration') or video_data.get('duration')),                  'subtitles': subtitles, -                'formats': formats, -            }) +            } +            # https://github.com/jwplayer/jwplayer/blob/master/src/js/utils/validator.js#L32 +            if len(formats) == 1 and re.search(r'^(?:http|//).*(?:youtube\.com|youtu\.be)/.+', formats[0]['url']): +                entry.update({ +                    '_type': 'url_transparent', +                    'url': formats[0]['url'], +                }) +            else: +                self._sort_formats(formats) +                entry['formats'] = formats +            entries.append(entry)          if len(entries) == 1:              return entries[0]          else: | 
