Skip to content

Bug: B站视频解析ValueError: 30250 is not a valid AudioQuality #485

@yuexps

Description

@yuexps

描述问题

不知道算不算bug,某些视频会出现以下报错,无法解析发送视频。

03-07 18:54:54 [INFO] nonebot | Matcher(type='message', module=nonebot_plugin_parser.matchers, lineno=51) running complete
03-07 18:54:54 [ERROR] nonebot | Running Matcher(type='message', module=nonebot_plugin_parser.matchers, lineno=51) failed.
Traceback (most recent call last):
  File "<string>", line 15, in <module>
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/__init__.py", line 337, in run
    get_driver().run(*args, **kwargs)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/drivers/fastapi.py", line 187, in run
    uvicorn.run(
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/uvicorn/main.py", line 593, in run
    server.run()
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/uvicorn/server.py", line 67, in run
    return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
  File "/var/apps/python312/target/lib/python3.12/asyncio/runners.py", line 194, in run
    return runner.run(main)
  File "/var/apps/python312/target/lib/python3.12/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/utils.py", line 259, in run_coro_with_shield
    return await coro
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/message.py", line 508, in check_and_run_matcher
    await _run_matcher(
> File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/message.py", line 460, in _run_matcher
    await matcher.run(bot, event, state, stack, dependency_cache)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/internal/matcher/matcher.py", line 926, in run
    await self.simple_run(bot, event, state, stack, dependency_cache)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/internal/matcher/matcher.py", line 863, in simple_run
    await handler(
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot/dependencies/__init__.py", line 113, in __call__
    return await cast(Callable[..., Awaitable[R]], self.call)(**values)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/helper.py", line 141, in wrapper
    result = await func(*args, **kwargs)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/matchers/__init__.py", line 82, in parser_handler
    async for message in renderer.render_messages(result):
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/renders/base.py", line 109, in render_messages
    async for message in self.render_contents(result):
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/renders/base.py", line 43, in render_contents
    path = await cont.get_path()
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/parsers/data.py", line 22, in get_path
    self.path_task = await self.path_task
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/parsers/bilibili/__init__.py", line 131, in download_video
    v_url, a_url = await self.extract_download_urls(video=video, page_index=page_info.index)
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/nonebot_plugin_parser/parsers/bilibili/__init__.py", line 307, in extract_download_urls
    streams = detecter.detect_best_streams(
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/bilibili_api/video.py", line 2548, in detect_best_streams
    data = self.detect(
  File "/vol2/1000/MCSManager/daemon/ikaros-bot/.venv/lib/python3.12/site-packages/bilibili_api/video.py", line 2478, in detect
    dolby_stream_quality = AudioQuality(dolby_stream_data["id"])
  File "/var/apps/python312/target/lib/python3.12/enum.py", line 757, in __call__
    return cls.__new__(cls, value)
  File "/var/apps/python312/target/lib/python3.12/enum.py", line 1171, in __new__
    raise ve_exc
ValueError: 30250 is not a valid AudioQuality

复现步骤

尝试发送以下B站视频链接获取视频,疑似音频有问题返回:ValueError: 30250 is not a valid AudioQuality
【杜比视界·全景声|超时空辉夜姬OP特别版「Ex-Otogibanashi」 (Anime ver.)-早見沙織、夏吉ゆうこ】 https://www.bilibili.com/video/BV1hvcYzaE3M/

期望的结果

No response

截图或日志

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions