- formats = self._extract_m3u8_formats(
- 'https://b-%s.%s/hls/%d/%d.m3u8' % (server, host, model_id, model_id),
- video_id, ext='mp4', m3u8_id='hls', fatal=False, live=True)
- self._sort_formats(formats)
+ formats = []
+ for host in traverse_obj(data, ('config', 'data', (
+ (('features', 'featuresV2'), 'hlsFallback', 'fallbackDomains', ...), 'hlsStreamHost'))):
+ formats = self._extract_m3u8_formats(
+ f'https://edge-hls.{host}/hls/{model_id}/master/{model_id}_auto.m3u8',
+ video_id, ext='mp4', m3u8_id='hls', fatal=False, live=True)
+ if formats:
+ break
+ if not formats:
+ self.raise_no_formats('No active streams found', expected=True)