- if not video_url.endswith('.f4m'):
- video_url = video_url.replace(
- 'resources/', 'auth/resources/'
- ).replace('.net.rtve', '.multimedia.cdn.rtve')
+ ext = determine_ext(video_url)
+
+ formats = []
+ if not video_url.endswith('.f4m') and ext != 'm3u8':
+ if '?' not in video_url:
+ video_url = video_url.replace('resources/', 'auth/resources/')
+ video_url = video_url.replace('.net.rtve', '.multimedia.cdn.rtve')
+
+ if ext == 'm3u8':
+ formats.extend(self._extract_m3u8_formats(
+ video_url, video_id, ext='mp4', entry_protocol='m3u8_native',
+ m3u8_id='hls', fatal=False))
+ elif ext == 'f4m':
+ formats.extend(self._extract_f4m_formats(
+ video_url, video_id, f4m_id='hds', fatal=False))
+ else:
+ formats.append({
+ 'url': video_url,
+ })
+ self._sort_formats(formats)