Closed luckykeeper closed 1 year ago
这确实是一个问题,但我目前没有太多时间在别的机器上调试
另外,这个问题跟层级文件夹有一定的关联,你可以试试--no-hierarchy
参数
尝试增加了 --no-hierarchy
参数,问题仍然存在,程序的工作目录为 /bili
,加上 --no-hierarchy
参数后,前面的层级文件夹名称已经足够短,只能说这个分P名称实在是太长了🤣
希望后续的版本中能够优化一下这个问题,或是针对这种情况截断一下文件名,或是提供一个选项对超过一定长度的文件名(或者是全部的)采用其它命名方式
可以参考一下 唧唧Down 的命名方式,这里我去用它下了一下上面 bilix 因为文件名过长出错的视频,它是这么命名的
PS D:\Program Files\JiJiDown\Download> tree /F D:. └─【碧蓝档案】主线 Vol.3「伊甸条约」篇 第4章「献给被忘却的神明们的垂怜经」PV 1.【ブルーアーカイブ】メインストーリー Vol.3「エデン条約」編 第4章「忘(Av641848957,P1).mp4 2.防撞用(Av641848957,P2).mp4
它的命名格式是把后面超长的地方截断之后添加了AV号和P数
最后,以下是 bilix 添加了 --no-hierarchy
参数的命令和结果参考:
bilix up 'https://space.bilibili.com/436037759' --dir ./ --max-con 1 -sr 99 --image --subtitle --dm -n 99999999 --cookie f*****2 --no-hierarchy
WARNING STREAM Unexpected Exception class:OSError [Errno 36] File name too long: './/【碧蓝档案】主线 Vol.3「伊甸条约」篇 第4章「献给被忘却的神明们的垂怜经」PV-P1-【ブルーアーカイブ】メインストーリー\u3000Vol.3「エデン条約」編 第4章「忘れられた神々のためのキリエ」PV-video-0-1717502' WARNING STREAM Unexpected Exception class:OSError [Errno 36] File name too long: './/【碧蓝档案】主线 Vol.3「伊甸条约」篇 第4章「献给被忘却的神明们的垂怜经」PV-P1-【ブルーアーカイブ】メインストーリー\u3000Vol.3「エデン条約」編 第4章「忘れられた神々のためのキリエ」PV-video-5152509-6870011' Traceback (most recent call last): File "/usr/local/bin/bilix", line 8, in
sys.exit(main()) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1130, in call return self.main(args, kwargs) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, ctx.params) File "/usr/local/lib/python3.9/site-packages/click/core.py", line 760, in invoke return __callback(args, *kwargs) File "/usr/local/lib/python3.9/site-packages/bilix/main.py", line 344, in main loop.run_until_complete(cor) File "/usr/lib64/python3.9/asyncio/base_events.py", line 642, in run_until_complete return future.result() File "/usr/local/lib/python3.9/site-packages/bilix/download/downloader_bilibili.py", line 228, in get_up_videos await asyncio.gather(cors) File "/usr/local/lib/python3.9/site-packages/bilix/download/downloader_bilibili.py", line 239, in _get_up_videos_by_page await asyncio.gather( File "/usr/local/lib/python3.9/site-packages/bilix/download/downloader_bilibili.py", line 273, in get_series await asyncio.gather(cors) File "/usr/local/lib/python3.9/site-packages/bilix/download/downloader_bilibili.py", line 339, in get_video await asyncio.gather(cors) File "/usr/local/lib/python3.9/site-packages/bilix/download/base_downloader_part.py", line 87, in get_file file_list = await asyncio.gather(cors) File "/usr/local/lib/python3.9/site-packages/bilix/download/base_downloader_part.py", line 115, in _get_file_part async with aiofiles.open(file_path, 'ab') as f: File "/usr/local/lib/python3.9/site-packages/aiofiles/base.py", line 98, in aenter self._obj = await self._coro File "/usr/local/lib/python3.9/site-packages/aiofiles/threadpool/init.py", line 97, in _open f = yield from loop.run_in_executor(executor, cb) File "/usr/lib64/python3.9/concurrent/futures/thread.py", line 58, in run result = self.fn(self.args, **self.kwargs) OSError: [Errno 36] File name too long: './/【碧蓝档案】主线 Vol.3「伊甸条约」篇 第4章「献给被忘却的神明们的垂怜经」PV-P1-【ブルーアーカイブ】メインストーリー\u3000Vol.3「エデン条約」編 第4章「忘れられた神々のためのキリエ」PV-video-0-1717502'
感谢建议,只是目前确实比较忙,这个会在之后的版本中进行修复
版本0.17.0应该针对这个问题进行了系统性的修复
感谢大佬修复🎉,晚些时候改完论文😓我会进行一下测试,如果没有问题我将关闭此 issues
测试了一下,问题已经解决,再次感谢大佬的付出~
系统环境:Debian 11 ,OpenEuler 22.03 均发现存在此问题 bilix 版本:Version 0.15.0 如同 HFrost0/bilix#8 和 HFrost0/bilix#72 提到的,发现过长的分P名导致无法下载的问题
看到 HFrost0/bilix#72 提到了这个问题但是该 issue 已经关闭,正好碰到了这样的视频,之前在 HFrost0/danmakuC#6 的回复提了一下这个问题,不过最开始我那 Debian 扬了没记录下来,重新装了 OpenEuler 又遇到了,所以这里单独开一个 issue 再提一下,当时说不大希望通过截断的方式解决,不知道现在大大您有什么想法了嘛?可否暂时提供一个选项在分P文件名过长时截断文件名使得可以顺利完成下载呢?感谢~