From ddf8459f443cb76818651574a28b18dafbe1cc9a Mon Sep 17 00:00:00 2001 From: yzqzss Date: Sun, 4 Jun 2023 14:37:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=85=BC=E5=AE=B9=20durl=20?= =?UTF-8?q?=E7=9A=84=20mp4/flv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _biliarchiver_archive_bvid.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/_biliarchiver_archive_bvid.py b/_biliarchiver_archive_bvid.py index 4f405b1..9e60fc7 100644 --- a/_biliarchiver_archive_bvid.py +++ b/_biliarchiver_archive_bvid.py @@ -85,17 +85,25 @@ async def archive_bvid(d: DownloaderBilibili, bvid: str, logined: bool=False): # 选择编码,优先 hevc,没有的话就 avc # 不选 av0 ,毕竟目前没几个设备能拖得动 codec = None - for media in video_info.dash.videos: - if media.codec.startswith('hev'): - codec = media.codec - break - if codec is None: + if video_info.dash: for media in video_info.dash.videos: - if media.codec.startswith('avc'): + if media.codec.startswith('hev'): codec = media.codec break - assert codec is not None, f'{file_basename}: 没有 avc 或 hevc 编码的视频' - print(f'{file_basename}: "{media.codec}" "{media.quality}" ...') + if codec is None: + for media in video_info.dash.videos: + if media.codec.startswith('avc'): + codec = media.codec + break + assert codec is not None, f'{file_basename}: 没有 avc 或 hevc 编码的视频' + print(f'{file_basename}: "{media.codec}" "{media.quality}" ...') + elif video_info.other: + print(f'{file_basename}: 未解析到dash资源,交给 bilix 处理 ...') + codec = '' + else: + raise APIError(f'{file_basename}: 未解析到视频资源', page.p_url) + + assert codec is not None cor1 = d.get_video(page.p_url ,video_info=video_info, path=video_basepath, quality=0, # 选择最高画质