HFrost0 / bilix

⚡️Lightning-fast async download tool for bilibili and more
Apache License 2.0
1.6k stars 166 forks source link

pydantic_core._pydantic_core.ValidationError: 1 validation error for VideoInfo #162

Closed wencan closed 1 year ago

wencan commented 1 year ago

bilix s 'https://www.bilibili.com/bangumi/play/ep753931'

os: 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/bilix/download/utils.py", line 90, in wrapped
    return await func(client, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/bilix/sites/bilibili/api.py", line 395, in get_video_info
    video_info = VideoInfo.parse_html(url, res.text)
  File "/usr/local/lib/python3.9/dist-packages/bilix/sites/bilibili/api.py", line 387, in parse_html
    video_info = VideoInfo(title=title, h1_title=h1_title, aid=aid, cid=cid, status=status,
  File "/usr/local/lib/python3.9/dist-packages/pydantic/main.py", line 150, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for VideoInfo
bvid
  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
    For further information visit https://errors.pydantic.dev/2.0.3/v/string_type

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/bilix", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/bilix/cli/main.py", line 374, in main
    loop.run_until_complete(cor)
  File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.9/dist-packages/bilix/sites/bilibili/downloader.py", line 299, in get_series
    video_info = await api.get_video_info(self.client, url)
  File "/usr/local/lib/python3.9/dist-packages/bilix/download/utils.py", line 94, in wrapped
    raise APIParseError(e, func) from e
bilix.exception.APIParseError: APIParseError Caused by ValidationError in <bilix.sites.bilibili.api:get_video_info>
HFrost0 commented 1 year ago

这个是因为pydantic最近有大版本升级(2.0),而bilix目前没有指定1.x版本,之后会修复这个

可以通过手动安装pip install pydantic==1.*来修复

HFrost0 commented 1 year ago

0.18.4应该修复了这个

wencan commented 1 year ago

yes! 升到0.18.4后,正常了 感谢!