Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2635) #9

Closed
showthesunli opened this issue May 6, 2022 · 2 comments

Comments

@showthesunli
Copy link

使用get_series 下载的时候经常会报这个错误,调低并发数也会报同样的错误。
使用get_video下载报错的单个视频时,没有再报错。
下载命令如下,不不知道能不能复现:
bilix s https://www.bilibili.com/video/BV1hS4y1m7Ma --dir /mnt/e/tmp --subtitle --max-con 20

异常信息如下:

Traceback (most recent call last):
  File "/home/liy/.local/bin/bilix", line 8, in <module>
    sys.exit(main())
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/_cli.py", line 249, in main
    asyncio.run(download(**kwargs))
  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/_cli.py", line 135, in download
    await d.get_series(key, quality=quality,
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/download.py", line 287, in get_series
    await asyncio.gather(*cors)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/download.py", line 360, in get_video
    await asyncio.gather(*cors)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/download.py", line 492, in _get_media
    await asyncio.gather(*cors)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/bilix/download.py", line 512, in _get_media_part
    async for chunk in r.aiter_bytes():
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpx/_models.py", line 1680, in aiter_bytes
    async for raw_bytes in self.aiter_raw():
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpx/_models.py", line 1734, in aiter_raw
    async for raw_stream_bytes in self.stream:
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpx/_client.py", line 145, in __aiter__
    async for chunk in self._stream:
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpx/_transports/default.py", line 239, in
__aiter__
    async for part in self._httpcore_stream:
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/connection_pool.py", line 346, in
__aiter__
    async for part in self._stream:
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/http11.py", line 295, in __aiter__
    raise exc
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/http11.py", line 288, in __aiter__
    async for chunk in self._connection._receive_response_body(**kwargs):
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/http11.py", line 160, in
_receive_response_body
    event = await self._receive_event(timeout=timeout)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/http11.py", line 172, in
_receive_event
    data = await self._network_stream.read(
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/backends/asyncio.py", line 31, in read
    return await self._stream.receive(max_bytes=max_bytes)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/anyio/streams/tls.py", line 171, in receive
    data = await self._call_sslobject_method(self._ssl_object.read, max_bytes)
  File "/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/anyio/streams/tls.py", line 108, in
_call_sslobject_method
    result = func(*args)
  File "/usr/lib/python3.8/ssl.py", line 888, in read
    v = self._sslobj.read(len)
ssl.SSLError: [SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:2635)

@HFrost0
Copy link
Owner

HFrost0 commented May 6, 2022

我尝试执行了

bilix s https://www.bilibili.com/video/BV1hS4y1m7Ma --subtitle --max-con 20

在我这边网络条件下完整的下载下来了🤣,你或许可以使用--max-con 1来最大限度避免未知的网络错误,分段并发数以及音画异步下载仍然能保证较快的下载

我注意到,错误信息中出现
/home/liy/.local/pipx/venvs/bilix/lib/python3.8/site-packages/httpcore/_async/http11.py
这说明HTTP/2协议没有启用,这个可能是报错的原因,<-b站的后台确实有时候以http1.1接受请求,所以不是这个问题

@showthesunli
Copy link
Author

那这个issue先关了吧,不容易复现

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants