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

断网重连以后录制无法自动恢复 #259

Open
kirayomato opened this issue Mar 12, 2024 · 0 comments · May be fixed by #264
Open

断网重连以后录制无法自动恢复 #259

kirayomato opened this issue Mar 12, 2024 · 0 comments · May be fixed by #264

Comments

@kirayomato
Copy link

报错如下,必须手动重启录制不然一直都是0kb/s

Recording: 15.5MB [02:46, 1.16MB/s, 31368697 - 雪烛Yukisyo: 和烛烛虎打do]Exception in thread StreamRecorder::31368697:
Traceback (most recent call last):
  File "D:\blrec\python\Lib\site-packages\aiohttp\connector.py", line 1173, in _create_direct_connection
    hosts = await asyncio.shield(host_resolved)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\connector.py", line 884, in _resolve_host
    addrs = await self._resolver.resolve(host, port, family=self._family)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\resolver.py", line 33, in resolve
    infos = await self._loop.getaddrinfo(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "asyncio\base_events.py", line 867, in getaddrinfo
  File "concurrent\futures\thread.py", line 58, in run
  File "socket.py", line 962, in getaddrinfo
socket.gaierror: [Errno 11004] getaddrinfo failed

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\connection_error_handler.py", line 46, in on_error
    raise exc
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\stream_parser.py", line 50, in _before_retry
    raise exc
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\stream_url_resolver.py", line 157, in _before_retry
    raise exc
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\stream_url_resolver.py", line 101, in on_next
    url = self._call_coroutine(
          ^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\utils\mixins.py", line 140, in _call_coroutine
    return future.result()
           ^^^^^^^^^^^^^^^
  File "concurrent\futures\_base.py", line 456, in result
  File "concurrent\futures\_base.py", line 401, in __get_result
  File "D:\blrec\python\Lib\site-packages\blrec\bili\live.py", line 279, in get_live_stream_url
    streams = await self.get_live_streams(qn, api_platform=api_platform)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\bili\live.py", line 263, in get_live_streams
    play_infos = await self.get_play_infos(qn, api_platform)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\bili\live.py", line 254, in get_play_infos
    play_infos = await self._webapi.get_room_play_infos(self._room_id, qn)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\bili\api.py", line 264, in get_room_play_infos
    json_responses = await self._get_jsons_concurrently(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\bili\api.py", line 118, in _get_jsons_concurrently
    raise exceptions[0]
  File "D:\blrec\python\Lib\site-packages\tenacity\_asyncio.py", line 88, in async_wrapped
    return await fn(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\tenacity\_asyncio.py", line 47, in __call__
    do = self.iter(retry_state=retry_state)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\tenacity\__init__.py", line 325, in iter
    raise retry_exc.reraise()
          ^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\tenacity\__init__.py", line 158, in reraise
    raise self.last_attempt.result()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "concurrent\futures\_base.py", line 449, in result
  File "concurrent\futures\_base.py", line 401, in __get_result
  File "D:\blrec\python\Lib\site-packages\tenacity\_asyncio.py", line 50, in __call__
    result = await fn(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\bili\api.py", line 67, in _get_json_res
    async with self._session.get(*args, **kwds) as res:
  File "D:\blrec\python\Lib\site-packages\aiohttp\client.py", line 1187, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\client.py", line 574, in _request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\connector.py", line 544, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\connector.py", line 911, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\aiohttp\connector.py", line 1187, in _create_direct_connection
    raise ClientConnectorError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host api.live.bilibili.com:443 ssl:default [getaddrinfo failed]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "threading.py", line 1038, in _bootstrap_inner
  File "threading.py", line 975, in run
  File "D:\blrec\python\Lib\site-packages\blrec\core\stream_recorder_impl.py", line 318, in run
    target()
  File "D:\blrec\python\Lib\site-packages\reactivex\scheduler\eventloopscheduler.py", line 187, in run
    item.invoke()
  File "D:\blrec\python\Lib\site-packages\reactivex\scheduler\scheduleditem.py", line 27, in invoke
    ret = self.scheduler.invoke_action(self.action, state=self.state)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\reactivex\scheduler\scheduler.py", line 105, in invoke_action
    ret = action(self, state)
          ^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\reactivex\observable\catch.py", line 58, in action
    observer.on_error(last_exception)
  File "D:\blrec\python\Lib\site-packages\reactivex\observer\autodetachobserver.py", line 36, in on_error
    self._on_error(error)
  File "D:\blrec\python\Lib\site-packages\reactivex\observer\autodetachobserver.py", line 36, in on_error
    self._on_error(error)
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\connection_error_handler.py", line 52, in on_error
    if self._wait_for_connection_error():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\core\operators\connection_error_handler.py", line 78, in _wait_for_connection_error
    while not self._call_coroutine(self._live.check_connectivity()):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\blrec\python\Lib\site-packages\blrec\utils\mixins.py", line 140, in _call_coroutine
    return future.result()
           ^^^^^^^^^^^^^^^
  File "concurrent\futures\_base.py", line 456, in result
  File "concurrent\futures\_base.py", line 401, in __get_result
  File "D:\blrec\python\Lib\site-packages\blrec\bili\live.py", line 175, in check_connectivity
    await self._session.head('https://live.bilibili.com/', timeout=3)
  File "D:\blrec\python\Lib\site-packages\aiohttp\client.py", line 689, in _request
    resp.raise_for_status()
  File "D:\blrec\python\Lib\site-packages\aiohttp\client_reqrep.py", line 1059, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 412, message='Precondition Failed', url=URL('https://live.bilibili.com/')
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

Successfully merging a pull request may close this issue.

1 participant