]> jfr.im git - yt-dlp.git/commitdiff
[bilibili] Change `Accept` header (Closes #145)
authorpukkandan <redacted>
Sun, 7 Mar 2021 12:29:44 +0000 (17:59 +0530)
committerpukkandan <redacted>
Sun, 7 Mar 2021 12:29:59 +0000 (17:59 +0530)
This is a temporary fix. Ideally we should find a more reasonable accept string that just "*/*"

Fixes: https://github.com/ytdl-org/youtube-dl/issues/28363 https://github.com/ytdl-org/youtube-dl/issues/28341
Thanks to animelover1984 for identifying the problem

yt_dlp/extractor/bilibili.py

index 78f4b1e76952aa9225b37a86b59d36f89898257d..c3e0a92624a252972bc90e27e5b4664728c62c38 100644 (file)
@@ -138,6 +138,11 @@ def _real_extract(self, url):
         anime_id = mobj.group('anime_id')
         page_id = mobj.group('page')
         webpage = self._download_webpage(url, video_id)
+        headers = {
+            'Referer': url,
+            'Accept': '*/*'
+        }
+        headers.update(self.geo_verification_headers())
 
         if 'anime/' not in url:
             cid = self._search_regex(
@@ -155,12 +160,8 @@ def _real_extract(self, url):
             if 'no_bangumi_tip' not in smuggled_data:
                 self.to_screen('Downloading episode %s. To download all videos in anime %s, re-run yt-dlp with %s' % (
                     video_id, anime_id, compat_urlparse.urljoin(url, '//bangumi.bilibili.com/anime/%s' % anime_id)))
-            headers = {
-                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
-                'Referer': url
-            }
-            headers.update(self.geo_verification_headers())
 
+            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
             js = self._download_json(
                 'http://bangumi.bilibili.com/web_api/get_source', video_id,
                 data=urlencode_postdata({'episode_id': video_id}),
@@ -169,11 +170,6 @@ def _real_extract(self, url):
                 self._report_error(js)
             cid = js['result']['cid']
 
-        headers = {
-            'Referer': url
-        }
-        headers.update(self.geo_verification_headers())
-
         entries = []
 
         RENDITIONS = ('qn=80&quality=80&type=', 'quality=2&type=mp4')