|
@@ -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
|
|
|
|