diff options
| -rw-r--r-- | youtube_dl/extractor/playwire.py | 27 | 
1 files changed, 6 insertions, 21 deletions
| diff --git a/youtube_dl/extractor/playwire.py b/youtube_dl/extractor/playwire.py index 6d138ef25..7580e4a85 100644 --- a/youtube_dl/extractor/playwire.py +++ b/youtube_dl/extractor/playwire.py @@ -4,9 +4,8 @@ import re  from .common import InfoExtractor  from ..utils import ( -    xpath_text, +    dict_get,      float_or_none, -    int_or_none,  ) @@ -23,6 +22,7 @@ class PlaywireIE(InfoExtractor):              'duration': 145.94,          },      }, { +        # Multiple resolutions while bitrates missing          'url': 'http://cdn.playwire.com/11625/embed/85228.html',          'only_matching': True,      }, { @@ -48,25 +48,10 @@ class PlaywireIE(InfoExtractor):          thumbnail = content.get('poster')          src = content['media']['f4m'] -        f4m = self._download_xml(src, video_id) -        base_url = xpath_text(f4m, './{http://ns.adobe.com/f4m/1.0}baseURL', 'base url', fatal=True) -        formats = [] -        for media in f4m.findall('./{http://ns.adobe.com/f4m/1.0}media'): -            media_url = media.get('url') -            if not media_url: -                continue -            tbr = int_or_none(media.get('bitrate')) -            width = int_or_none(media.get('width')) -            height = int_or_none(media.get('height')) -            f = { -                'url': '%s/%s' % (base_url, media.attrib['url']), -                'tbr': tbr, -                'width': width, -                'height': height, -            } -            if not (tbr or width or height): -                f['quality'] = 1 if '-hd.' in media_url else 0 -            formats.append(f) +        formats = self._extract_f4m_formats(src, video_id, assume_f4mv2=True) +        for a_format in formats: +            if not dict_get(a_format, ['tbr', 'width', 'height']): +                a_format['quality'] = 1 if '-hd.' in a_format['url'] else 0          self._sort_formats(formats)          return { | 
