-# coding: utf-8
-from __future__ import unicode_literals
-
-import re
-
from .common import InfoExtractor
from ..utils import (
ExtractorError,
float_or_none,
int_or_none,
+ join_nonempty,
parse_iso8601,
qualities,
try_get,
return media_data
def _real_extract(self, url):
- bu, media_type, media_id = re.match(self._VALID_URL, url).groups()
+ bu, media_type, media_id = self._match_valid_url(url).groups()
media_data = self._get_media_data(bu, media_type, media_id)
title = media_data['title']
continue
protocol = source.get('protocol')
quality = source.get('quality')
- format_id = []
- for e in (protocol, source.get('encoding'), quality):
- if e:
- format_id.append(e)
- format_id = '-'.join(format_id)
+ format_id = join_nonempty(protocol, source.get('encoding'), quality)
if protocol in ('HDS', 'HLS'):
if source.get('tokenType') == 'AKAMAI':
'url': podcast_url,
'quality': q(quality),
})
- self._sort_formats(formats)
if media_type == 'video':
for sub in (media_data.get('subtitleList') or []):
}]
def _real_extract(self, url):
- mobj = re.match(self._VALID_URL, url)
+ mobj = self._match_valid_url(url)
bu = mobj.group('bu')
media_type = mobj.group('type') or mobj.group('type_2')
media_id = mobj.group('id')