diff options
author | Sergey M? <dstftw@gmail.com> | 2015-02-17 22:34:29 +0600 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2015-02-17 22:35:27 +0600 |
commit | 0d93378887bd527b1df04e6138b4bc41382dd48f (patch) | |
tree | 4f903f7de61d8772c04cdcd10f72374cf54730fc /youtube_dl | |
parent | 4069766c527d10b8e25b9262a3882101367deb3e (diff) |
[videolecturesnet] Check http format URLs (Closes #4968)
Diffstat (limited to 'youtube_dl')
-rw-r--r-- | youtube_dl/extractor/videolecturesnet.py | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/youtube_dl/extractor/videolecturesnet.py b/youtube_dl/extractor/videolecturesnet.py index ebd2a3dca..1ec5298e9 100644 --- a/youtube_dl/extractor/videolecturesnet.py +++ b/youtube_dl/extractor/videolecturesnet.py @@ -49,15 +49,30 @@ class VideoLecturesNetIE(InfoExtractor): thumbnail = ( None if thumbnail_el is None else thumbnail_el.attrib.get('src')) - formats = [{ - 'url': v.attrib['src'], - 'width': int_or_none(v.attrib.get('width')), - 'height': int_or_none(v.attrib.get('height')), - 'filesize': int_or_none(v.attrib.get('size')), - 'tbr': int_or_none(v.attrib.get('systemBitrate')) / 1000.0, - 'ext': v.attrib.get('ext'), - } for v in switch.findall('./video') - if v.attrib.get('proto') == 'http'] + formats = [] + for v in switch.findall('./video'): + proto = v.attrib.get('proto') + if not proto in ['http', 'rtmp']: + continue + f = { + 'width': int_or_none(v.attrib.get('width')), + 'height': int_or_none(v.attrib.get('height')), + 'filesize': int_or_none(v.attrib.get('size')), + 'tbr': int_or_none(v.attrib.get('systemBitrate')) / 1000.0, + 'ext': v.attrib.get('ext'), + } + src = v.attrib['src'] + if proto == 'http': + if self._is_valid_url(src, video_id): + f['url'] = src + formats.append(f) + elif proto == 'rtmp': + f.update({ + 'url': v.attrib['streamer'], + 'play_path': src, + }) + formats.append(f) + self._sort_formats(formats) return { 'id': video_id, |