|
|
|
@ -240,14 +240,24 @@ class TwitchVodIE(TwitchItemBaseIE):
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
|
item_id = self._match_id(url)
|
|
|
|
|
|
|
|
|
|
info = self._download_info(self._ITEM_SHORTCUT, item_id)
|
|
|
|
|
access_token = self._download_json(
|
|
|
|
|
'%s/api/vods/%s/access_token' % (self._API_BASE, item_id), item_id,
|
|
|
|
|
'Downloading %s access token' % self._ITEM_TYPE)
|
|
|
|
|
'%s/api/vods/%s/access_token' % (self._API_BASE, item_id), item_id,
|
|
|
|
|
'Downloading %s access token' % self._ITEM_TYPE)
|
|
|
|
|
|
|
|
|
|
formats = self._extract_m3u8_formats(
|
|
|
|
|
'%s/vod/%s?nauth=%s&nauthsig=%s&allow_source=true'
|
|
|
|
|
% (self._USHER_BASE, item_id, access_token['token'], access_token['sig']),
|
|
|
|
|
item_id, 'mp4')
|
|
|
|
|
'%s/vod/%s?%s' % (
|
|
|
|
|
self._USHER_BASE, item_id,
|
|
|
|
|
compat_urllib_parse.urlencode({
|
|
|
|
|
'allow_source': 'true',
|
|
|
|
|
'allow_spectre': 'true',
|
|
|
|
|
'player': 'twitchweb',
|
|
|
|
|
'nauth': access_token['token'],
|
|
|
|
|
'nauthsig': access_token['sig'],
|
|
|
|
|
})),
|
|
|
|
|
item_id, 'mp4')
|
|
|
|
|
|
|
|
|
|
self._prefer_source(formats)
|
|
|
|
|
info['formats'] = formats
|
|
|
|
|
|
|
|
|
|