mirror of
https://github.com/soimort/you-get.git
synced 2025-02-10 12:12:26 +03:00
Update bilibili.py Fix the problem of downloading anime
When downloading anime playlist, "baseUrl" sometimes becomes invalid. This modified version will automatically use "backupUrl" for video and audio downloads. 在下载动漫playlist时,"baseUrl"有时候会失效。此修改版本会自动使用"backupUrl"进行视频及音频下载
This commit is contained in:
parent
ad24e68baa
commit
ec8c09c7e7
@ -5,6 +5,7 @@ from ..extractor import VideoExtractor
|
|||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import math
|
import math
|
||||||
|
from urllib import error
|
||||||
|
|
||||||
|
|
||||||
class Bilibili(VideoExtractor):
|
class Bilibili(VideoExtractor):
|
||||||
@ -360,15 +361,33 @@ class Bilibili(VideoExtractor):
|
|||||||
desc = s['desc']
|
desc = s['desc']
|
||||||
audio_quality = s['audio_quality']
|
audio_quality = s['audio_quality']
|
||||||
baseurl = video['baseUrl']
|
baseurl = video['baseUrl']
|
||||||
|
video_backurl = video['backupUrl']
|
||||||
|
# 如果baseurl使用不了
|
||||||
|
for backurl in video_backurl:
|
||||||
|
try:
|
||||||
size = url_size(baseurl, headers=self.bilibili_headers(referer=self.url))
|
size = url_size(baseurl, headers=self.bilibili_headers(referer=self.url))
|
||||||
|
except error.URLError:
|
||||||
|
# 使用备用URL
|
||||||
|
baseurl = backurl
|
||||||
|
logging.debug(f'Using video backup url {backurl}')
|
||||||
|
|
||||||
# find matching audio track
|
# find matching audio track
|
||||||
audio_baseurl = playinfo['result']['dash']['audio'][0]['baseUrl']
|
audio_baseurl = playinfo['result']['dash']['audio'][0]['baseUrl']
|
||||||
for audio in playinfo['result']['dash']['audio']:
|
for audio in playinfo['result']['dash']['audio']:
|
||||||
if int(audio['id']) == audio_quality:
|
if int(audio['id']) == audio_quality:
|
||||||
audio_baseurl = audio['baseUrl']
|
audio_baseurl = audio['baseUrl']
|
||||||
|
audio_backurl = audio['backupUrl']
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# 如果baseurl使用不了
|
||||||
|
for backurl in audio_backurl:
|
||||||
|
try:
|
||||||
size += url_size(audio_baseurl, headers=self.bilibili_headers(referer=self.url))
|
size += url_size(audio_baseurl, headers=self.bilibili_headers(referer=self.url))
|
||||||
|
except error.URLError:
|
||||||
|
# 使用备用URL
|
||||||
|
audio_baseurl = backurl
|
||||||
|
logging.debug(f'Using audio backup url {backurl}')
|
||||||
|
|
||||||
|
|
||||||
self.dash_streams[format_id] = {'container': container, 'quality': desc,
|
self.dash_streams[format_id] = {'container': container, 'quality': desc,
|
||||||
'src': [[baseurl], [audio_baseurl]], 'size': size}
|
'src': [[baseurl], [audio_baseurl]], 'size': size}
|
||||||
|
Loading…
Reference in New Issue
Block a user