浏览代码

[twitch:vod] Improve extraction

Sergey M․ 10 年之前
父节点
当前提交
e5e9966199
共有 1 个文件被更改,包括 15 次插入5 次删除
  1. 15 5
      youtube_dl/extractor/twitch.py

+ 15 - 5
youtube_dl/extractor/twitch.py

@@ -240,14 +240,24 @@ class TwitchVodIE(TwitchItemBaseIE):
 
 
     def _real_extract(self, url):
     def _real_extract(self, url):
         item_id = self._match_id(url)
         item_id = self._match_id(url)
+
         info = self._download_info(self._ITEM_SHORTCUT, item_id)
         info = self._download_info(self._ITEM_SHORTCUT, item_id)
         access_token = self._download_json(
         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(
         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)
         self._prefer_source(formats)
         info['formats'] = formats
         info['formats'] = formats