[vidme] Extract DASH and HLS formats

This commit is contained in:
Sergey M․ 2017-08-05 00:00:21 +07:00
parent 799802f368
commit f31fd0693b
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D

View File

@ -3,7 +3,10 @@
import itertools import itertools
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_HTTPError from ..compat import (
compat_HTTPError,
compat_str,
)
from ..utils import ( from ..utils import (
ExtractorError, ExtractorError,
int_or_none, int_or_none,
@ -161,13 +164,28 @@ def _real_extract(self, url):
'or for violating the terms of use.', 'or for violating the terms of use.',
expected=True) expected=True)
formats = [{ formats = []
'format_id': f.get('type'), for f in video.get('formats', []):
'url': f['uri'], format_url = f.get('uri')
'width': int_or_none(f.get('width')), if not format_url or not isinstance(format_url, compat_str):
'height': int_or_none(f.get('height')), continue
'preference': 0 if f.get('type', '').endswith('clip') else 1, format_type = f.get('type')
} for f in video.get('formats', []) if f.get('uri')] if format_type == 'dash':
formats.extend(self._extract_mpd_formats(
format_url, video_id, mpd_id='dash', fatal=False))
elif format_type == 'hls':
formats.extend(self._extract_m3u8_formats(
format_url, video_id, 'mp4', entry_protocol='m3u8_native',
m3u8_id='hls', fatal=False))
else:
formats.append({
'format_id': f.get('type'),
'url': format_url,
'width': int_or_none(f.get('width')),
'height': int_or_none(f.get('height')),
'preference': 0 if f.get('type', '').endswith(
'clip') else 1,
})
if not formats and video.get('complete_url'): if not formats and video.get('complete_url'):
formats.append({ formats.append({