# m3u8 download
'skip_download': True,
},
+ 'skip': 'HTTP Error 404: Not Found',
}]
def _real_extract(self, url):
channel_id = self._match_id(url)
stream = self._call_api(
- 'kraken/streams/%s' % channel_id, channel_id,
+ 'kraken/streams/%s?stream_type=all' % channel_id, channel_id,
'Downloading stream JSON').get('stream')
- # Fallback on profile extraction if stream is offline
if not stream:
- return self.url_result(
- 'http://www.twitch.tv/%s/profile' % channel_id,
- 'TwitchProfile', channel_id)
+ raise ExtractorError('%s is offline' % channel_id, expected=True)
# Channel name may be typed if different case than the original channel name
# (e.g. http://www.twitch.tv/TWITCHPLAYSPOKEMON) that will lead to constructing
query = {
'allow_source': 'true',
'allow_audio_only': 'true',
+ 'allow_spectre': 'true',
'p': random.randint(1000000, 10000000),
'player': 'twitchweb',
'segment_preference': '4',