yutto icon indicating copy to clipboard operation
yutto copied to clipboard

🐛 付费电影下载失败

Open Nightingale0504 opened this issue 2 months ago • 6 comments

问题简述

配置大会员后下载指定剧集报错,log如下

 INFO  发现配置文件 C:\Users\captu\AppData\Roaming\yutto\yutto.toml,加载中……
 大会员  成功以大会员身份登录~
 番剧  心灵奇旅
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Program Files\Python311\Scripts\yutto.exe\__main__.py", line 6, in <module>
  File "C:\Program Files\Python311\Lib\site-packages\yutto\__main__.py", line 36, in main
    run_download(ctx, args_list)
  File "C:\Program Files\Python311\Lib\site-packages\yutto\utils\functional\async_to_sync.py", line 40, in sync_func
    return asyncio.run(async_func(*args, **kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\asyncio\runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\asyncio\base_events.py", line 654, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\yutto\__main__.py", line 61, in run_download
    await manager.wait_for_completion()
  File "C:\Program Files\Python311\Lib\site-packages\yutto\download_manager.py", line 75, in wait_for_completion
    await loop_task
  File "C:\Program Files\Python311\Lib\site-packages\yutto\download_manager.py", line 113, in loop
    await self.process_task(
  File "C:\Program Files\Python311\Lib\site-packages\yutto\download_manager.py", line 220, in process_task
    episode_data = await episode_data_coro
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\yutto\utils\asynclib.py", line 34, in __await__
    return (yield from self.coro.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\site-packages\yutto\extractor\common.py", line 66, in extract_bangumi_data
    await get_bangumi_playurl(ctx, client, avid, cid)
  File "C:\Program Files\Python311\Lib\site-packages\yutto\api\bangumi.py", line 109, in get_bangumi_playurl
    if video_info["is_preview"] == 1:
       ~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'is_preview'

复现方式

使用toml文件配置大会员SESSDATA,在终端输入yutto+ep开头链接开始下载,报错

环境信息

  • OS: Windows11 insider preview build 27971
  • Python: 3.11.9
  • yutto: 2.1.0
  • FFmpeg: ffmpeg version N-118706-gf641c6846a-20250308

额外信息

No response

一点点的自我检查

  • [x] 充分阅读 README.md,特别是与本 issue 相关的部分
  • [x] 如果是网络问题,已经检查网络连接、设置是否正常,并经过充分测试认为这是 yutto 本身的问题
  • [x] 本 issue 在 issuesdiscussion 中并没有重复问题
  • [x] 确认所希望下载的资源是本人有权限获取的,yutto 不提供任何超出本人权限的资源下载方式

Nightingale0504 avatar Oct 18 '25 02:10 Nightingale0504

给出具体报错的全部 ep id,又不是所有的都报错

SigureMo avatar Oct 18 '25 02:10 SigureMo

ep777110,ep809027,ep788507等均会复现此错误,BV开头常规视频正常下载,使用-b参数+ss开头全部下载也会出现报错

Nightingale0504 avatar Oct 18 '25 02:10 Nightingale0504

开启DEBUG参数后日志输出如下:

 captu@LegionBI3TKL E:\....\videos  yutto ep777110 --debug
 INFO  发现配置文件 C:\Users\captu\AppData\Roaming\yutto\yutto.toml,加载中……
 DEBUG  Windows 平台,单独设置 EventLoopPolicy
 DEBUG  get_user_info cache miss: user_info, all cache keys: []
 DEBUG  Fetch json: https://api.bilibili.com/x/web-interface/nav
 大会员  成功以大会员身份登录~
 DEBUG  ffmpeg -codecs
 DEBUG  ffmpeg -encoders
 DEBUG  ffmpeg -codecs
 DEBUG  ffmpeg -encoders
 DEBUG  get_user_info cache hit: user_info
 DEBUG  Get redircted url: https://www.bilibili.com/bangumi/play/ep777110
 DEBUG  Fetch json: https://api.bilibili.com/pgc/view/web/season?ep_id=777110
 DEBUG  Fetch json: http://api.bilibili.com/pgc/view/web/season?season_id=46063
 番剧  寻梦环游记
 DEBUG  get_user_info cache hit: user_info
 DEBUG  Fetch json: https://api.bilibili.com/pgc/player/web/v2/playurl?avid=&bvid=BV1u94y1Y7MS&cid=30088891420&qn=127&fnver=0&fnval=4048&fourk=1&support_multi_audio=true&from_client=BROWSER
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Python\Scripts\yutto.exe\__main__.py", line 6, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Python\Lib\site-packages\yutto\__main__.py", line 36, in main
    run_download(ctx, args_list)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\utils\functional\async_to_sync.py", line 40, in sync_func
    return asyncio.run(async_func(*args, **kwargs))
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\asyncio\runners.py", line 204, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "C:\Python\Lib\asyncio\runners.py", line 127, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Python\Lib\asyncio\base_events.py", line 719, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "C:\Python\Lib\site-packages\yutto\__main__.py", line 61, in run_download
    await manager.wait_for_completion()
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 75, in wait_for_completion
    await loop_task
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 113, in loop
    await self.process_task(
    ...<3 lines>...
    )
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 220, in process_task
    episode_data = await episode_data_coro
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\utils\asynclib.py", line 34, in __await__
    return (yield from self.coro.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\extractor\common.py", line 66, in extract_bangumi_data
    await get_bangumi_playurl(ctx, client, avid, cid)
  File "C:\Python\Lib\site-packages\yutto\api\bangumi.py", line 109, in get_bangumi_playurl
    if video_info["is_preview"] == 1:
       ~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'is_preview'

Nightingale0504 avatar Oct 18 '25 02:10 Nightingale0504

-b参数+ss链接:

 captu@LegionBI3TKL E:\....\videos  yutto -b ss46063 --debug
 INFO  发现配置文件 C:\Users\captu\AppData\Roaming\yutto\yutto.toml,加载中……
 DEBUG  Windows 平台,单独设置 EventLoopPolicy
 DEBUG  get_user_info cache miss: user_info, all cache keys: []
 DEBUG  Fetch json: https://api.bilibili.com/x/web-interface/nav
 大会员  成功以大会员身份登录~
 DEBUG  ffmpeg -codecs
 DEBUG  ffmpeg -encoders
 DEBUG  ffmpeg -codecs
 DEBUG  ffmpeg -encoders
 DEBUG  get_user_info cache hit: user_info
 DEBUG  Get redircted url: https://www.bilibili.com/bangumi/play/ss46063
 DEBUG  Fetch json: http://api.bilibili.com/pgc/view/web/season?season_id=46063
 番剧  寻梦环游记
 INFO  全 2 话
 INFO  已选择第 1,2 话
 DEBUG  get_user_info cache hit: user_info
 DEBUG  Fetch json: https://api.bilibili.com/pgc/player/web/v2/playurl?avid=&bvid=BV1u94y1Y7MS&cid=30088891420&qn=127&fnver=0&fnval=4048&fourk=1&support_multi_audio=true&from_client=BROWSER
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Python\Scripts\yutto.exe\__main__.py", line 6, in <module>
    sys.exit(main())
             ~~~~^^
  File "C:\Python\Lib\site-packages\yutto\__main__.py", line 36, in main
    run_download(ctx, args_list)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\utils\functional\async_to_sync.py", line 40, in sync_func
    return asyncio.run(async_func(*args, **kwargs))
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\asyncio\runners.py", line 204, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "C:\Python\Lib\asyncio\runners.py", line 127, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "C:\Python\Lib\asyncio\base_events.py", line 719, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "C:\Python\Lib\site-packages\yutto\__main__.py", line 61, in run_download
    await manager.wait_for_completion()
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 75, in wait_for_completion
    await loop_task
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 113, in loop
    await self.process_task(
    ...<3 lines>...
    )
  File "C:\Python\Lib\site-packages\yutto\download_manager.py", line 220, in process_task
    episode_data = await episode_data_coro
                   ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\utils\asynclib.py", line 34, in __await__
    return (yield from self.coro.__await__())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python\Lib\site-packages\yutto\extractor\common.py", line 66, in extract_bangumi_data
    await get_bangumi_playurl(ctx, client, avid, cid)
  File "C:\Python\Lib\site-packages\yutto\api\bangumi.py", line 109, in get_bangumi_playurl
    if video_info["is_preview"] == 1:
       ~~~~~~~~~~^^^^^^^^^^^^^^
KeyError: 'is_preview'

Nightingale0504 avatar Oct 18 '25 02:10 Nightingale0504

Image

保证有播放权限(哔站设置了防截图所以是黑屏)

Nightingale0504 avatar Oct 18 '25 02:10 Nightingale0504

经测试,番剧下载正常(如ss24053非自然死亡),电影下载报错

Nightingale0504 avatar Oct 18 '25 03:10 Nightingale0504