HFrost0 / bilix

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

报错:Invalid input ConnectionInputs.RECV_DATA in state ConnectionState.CLOSED #74

Closed hb-0 closed 1 year ago

hb-0 commented 1 year ago

python:3.11.0 执行:bilix --cookie xxx get_series https://www.bilibili.com/video/BV1MP4y1D7s8/ 报错: WARNING STREAM Unexpected Exception class:ProtocolError Invalid input ConnectionInputs.RECV_DATA in state ConnectionState.CLOSED Traceback (most recent call last): File "C:\Python311\Lib\site-packages\h2\connection.py", line 224, in process_input func, target_state = self.transitions[(self.state, input)]


KeyError: (<ConnectionState.CLOSED: 3>, <ConnectionInputs.RECV_DATA: 11>)

During handling of the above exception, another exception occurred:

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:\Python311\Scripts\bilix.exe\__main__.py", line 7, in <module>
  File "C:\Python311\Lib\site-packages\click\core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\click\core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\click\core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\click\core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\bilix\__main__.py", line 322, in main
    loop.run_until_complete(cor)
  File "C:\Python311\Lib\asyncio\base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\bilix\download\downloader_bilibili.py", line 365, in get_series
    await asyncio.gather(*cors)
  File "C:\Python311\Lib\site-packages\bilix\download\downloader_bilibili.py", line 431, in get_video
    await asyncio.gather(*cors)
  File "C:\Python311\Lib\site-packages\bilix\download\base_downloader_part.py", line 70, in get_media
    file_list = await asyncio.gather(*cors)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\contextlib.py", line 222, in __aexit__
    await self.gen.athrow(typ, value, traceback)
  File "C:\Python311\Lib\site-packages\httpx\_client.py", line 1583, in stream
    yield response
  File "C:\Python311\Lib\contextlib.py", line 222, in __aexit__
    await self.gen.athrow(typ, value, traceback)
  File "C:\Python311\Lib\site-packages\bilix\download\base_downloader.py", line 100, in _stream_context
    yield
  File "C:\Python311\Lib\site-packages\bilix\download\base_downloader_part.py", line 99, in _get_media_part
    async for chunk in r.aiter_bytes(chunk_size=self.chunk_size):
  File "C:\Python311\Lib\site-packages\httpx\_models.py", line 923, in aiter_bytes
    async for raw_bytes in self.aiter_raw():
  File "C:\Python311\Lib\site-packages\httpx\_models.py", line 981, in aiter_raw
    async for raw_stream_bytes in self.stream:
  File "C:\Python311\Lib\site-packages\httpx\_client.py", line 147, in __aiter__
    async for chunk in self._stream:
  File "C:\Python311\Lib\site-packages\httpx\_transports\default.py", line 239, in __aiter__
    async for part in self._httpcore_stream:
  File "C:\Python311\Lib\site-packages\httpcore\_async\connection_pool.py", line 346, in __aiter__
    async for part in self._stream:
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 468, in __aiter__
    raise exc
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 459, in __aiter__
    async for chunk in self._connection._receive_response_body(
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 249, in _receive_response_body
    event = await self._receive_stream_event(request, stream_id)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 262, in _receive_stream_event
    await self._receive_events(request, stream_id)
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 283, in _receive_events
    events = await self._read_incoming_data(request)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\httpcore\_async\http2.py", line 345, in _read_incoming_data
    events: typing.List[h2.events.Event] = self._h2_state.receive_data(data)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\h2\connection.py", line 1463, in receive_data
    events.extend(self._receive_frame(frame))
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\h2\connection.py", line 1487, in _receive_frame
    frames, events = self._frame_dispatch_table[frame.__class__](frame)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\h2\connection.py", line 1673, in _receive_data_frame
    events = self.state_machine.process_input(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Python311\Lib\site-packages\h2\connection.py", line 228, in process_input
    raise ProtocolError(
h2.exceptions.ProtocolError: Invalid input ConnectionInputs.RECV_DATA in state ConnectionState.CLOSED
hb-0 commented 1 year ago

应该是碰到网络不稳定的问题了。