mirror of
https://github.com/soimort/you-get.git
synced 2025-02-03 00:33:58 +03:00
change how page count is calculated
skip invalid video
This commit is contained in:
parent
6f9cd8a069
commit
cbeb9d5b5f
@ -710,12 +710,11 @@ class Bilibili(VideoExtractor):
|
|||||||
elif sort == 'space_favlist':
|
elif sort == 'space_favlist':
|
||||||
m = re.match(r'https?://space\.?bilibili\.com/(\d+)/favlist\?.*fid=(\d+)', self.url)
|
m = re.match(r'https?://space\.?bilibili\.com/(\d+)/favlist\?.*fid=(\d+)', self.url)
|
||||||
vmid, fid = m.group(1), m.group(2)
|
vmid, fid = m.group(1), m.group(2)
|
||||||
api_url = self.bilibili_space_favlist_api(fid)
|
page_size=20
|
||||||
|
api_url = self.bilibili_space_favlist_api(fid, ps=page_size)
|
||||||
api_content = get_content(api_url, headers=self.bilibili_headers(referer=self.url))
|
api_content = get_content(api_url, headers=self.bilibili_headers(referer=self.url))
|
||||||
favlist_info = json.loads(api_content)
|
favlist_info = json.loads(api_content)
|
||||||
pc = favlist_info['data']['info']['media_count'] // len(favlist_info['data']['medias'])
|
pc = int((favlist_info['data']['info']['media_count']+page_size-1) / page_size)
|
||||||
if favlist_info['data']['info']['media_count'] % len(favlist_info['data']['medias']) != 0:
|
|
||||||
pc += 1
|
|
||||||
for pn in range(1, pc + 1):
|
for pn in range(1, pc + 1):
|
||||||
log.w('Extracting %s of %s pages ...' % (pn, pc))
|
log.w('Extracting %s of %s pages ...' % (pn, pc))
|
||||||
api_url = self.bilibili_space_favlist_api(fid, pn=pn)
|
api_url = self.bilibili_space_favlist_api(fid, pn=pn)
|
||||||
@ -725,6 +724,9 @@ class Bilibili(VideoExtractor):
|
|||||||
epn, i = len(favlist_info['data']['medias']), 0
|
epn, i = len(favlist_info['data']['medias']), 0
|
||||||
for video in favlist_info['data']['medias']:
|
for video in favlist_info['data']['medias']:
|
||||||
i += 1; log.w('Extracting %s of %s videos ...' % (i, epn))
|
i += 1; log.w('Extracting %s of %s videos ...' % (i, epn))
|
||||||
|
if self.is_video_invalid(video):
|
||||||
|
log.w("{}:{} is invalid, skip".format(video['id'], video['title']))
|
||||||
|
continue
|
||||||
url = 'https://www.bilibili.com/video/av%s' % video['id']
|
url = 'https://www.bilibili.com/video/av%s' % video['id']
|
||||||
self.__class__().download_playlist_by_url(url, **kwargs)
|
self.__class__().download_playlist_by_url(url, **kwargs)
|
||||||
|
|
||||||
@ -762,6 +764,9 @@ class Bilibili(VideoExtractor):
|
|||||||
url = 'https://www.bilibili.com/audio/au%s' % song['id']
|
url = 'https://www.bilibili.com/audio/au%s' % song['id']
|
||||||
self.__class__().download_by_url(url, **kwargs)
|
self.__class__().download_by_url(url, **kwargs)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def is_video_invalid(video_dict):
|
||||||
|
return not (video_dict["attr"] and video_dict["attr"] in (0, "0")) # assume 0 is for all valid video
|
||||||
|
|
||||||
site = Bilibili()
|
site = Bilibili()
|
||||||
download = site.download_by_url
|
download = site.download_by_url
|
||||||
|
Loading…
Reference in New Issue
Block a user