Buddha7771 / ChzzkChat

파이썬 치지직 채팅 크롤러
23 stars 4 forks source link

봇을 실행 도중 방송에서 19금 설정시 fetch_accessToken 오류발생 #10

Closed White0601 closed 3 months ago

White0601 commented 3 months ago

작성 하신 치지직 크롤러 기반으로 활용해서 잘 사용 하던 도중 어느 시점 부터 방송 19금을 걸 시 아래와 같은 오류가 뜹니다. NID_AUT, NID_SES 값은 혹시 해서 삭제 했습니다.

Traceback (most recent call last): File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\module\api.py", line 84, in fetch_accessToken return response['content']['accessToken'], response['content']['extraToken'] TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\multiprocessing\process.py", line 315, in _bootstrap self.run() File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\multiprocessing\process.py", line 108, in run self._target(*self._args, **self._kwargs) File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\test9.py", line 914, in check_chatChannelId asyncio.run(chzzk_chat_instance.connect()) File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) File "C:\Users\yunseong.kim\anaconda3\envs\chzzk\lib\asyncio\base_events.py", line 647, in run_until_complete return future.result() File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\test9.py", line 81, in connect self.accessToken, self.extraToken = api.fetch_accessToken(self.chatChannelId, self.cookies) File "c:\Users\yunseong.kim\Desktop\test1\ChzzkChat\module\api.py", line 86, in fetch_accessToken raise ValueError(f'잘못된 입력값 : {chatChannelId}, {cookies}') ValueError: 잘못된 입력값 : None, NID_AUT, NID_SES

White0601 commented 3 months ago

그래서 계정이 19금 인증이 안된것인가 생각 해봤는데 시청하는 방송이 옛날 부터 상시 19금이 걸려 있지만 한번도 발생 한적이 없다가 최근에 발생 했습니다.

White0601 commented 3 months ago

음.. 혹시 이슈 닫으신 이유가 현 상황에서는 수정이 불가능해서 이슈 닫으신 건가요?

Buddha7771 commented 3 months ago

해결하신줄 알고 닫았습니다. 문제 상황을 자세히 설명해 주실 수 있으신가요?

White0601 commented 3 months ago

방송을 진행 하던중 봇을 잘 돌리고 있다가 스트리머가 성인제한을 걸 시 에러가 뜹니다. 에러는 가장 위에 있는 에러 내용이고 대충 확인 하니 chatChannelId를 찾을 수가 없다고 합니다. 그리고 스트리머가 성인제한을 해제하고 코드를 다시 Run 하니 오류 없이 잘 돌아가는 상황입니다. 그리고 개인 방송으로 재현해보니 재현이 되더라고요.

smdkdkdk commented 3 months ago

저도 동일한 오류가 나옵니다.

Traceback (most recent call last): File "C:\Users\A\Desktop\채팅 테스트\api.py", line 32, in fetch_accessToken return response['content']['accessToken'], response['content']['extraToken']


TypeError: 'NoneType' object is not subscriptable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\A\Desktop\채팅 테스트\run.py", line 211, in <module>
    chzzkchat = ChzzkChat(args.streamer_id, cookies, logger)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\A\Desktop\채팅 테스트\run.py", line 26, in __init__
    self.accessToken, self.extraToken = api.fetch_accessToken(self.chatChannelId, self.cookies)
                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\A\Desktop\채팅 테스트\api.py", line 34, in fetch_accessToken
    raise ValueError(f'잘못된 입력값 : {chatChannelId}, {cookies}')
ValueError: 잘못된 입력값 : None, {'NID_AUT': 'xxxx', 'NID_SES': 'xxxx'}

쿠키값은 xxxx로 가렸습니다.
봇 그런거 안거치고 단순하게 실행만 한 경우인데,
오늘 오후쯤 부터 19세 방송에서 이런 오류가 뜨더라고요.
아이디도 바꿔서 해봤는데도 동일하더라고요.
Buddha7771 commented 3 months ago

chatChannelId를 fetch하는 도중 cookies 값이 명시되지 않아 생기는 문제입니다. 해당 부분 수정하여 커밋하였습니다.

White0601 commented 3 months ago

네, 문제 없이 잘 동작이 되네요 빠른 대응 감사합니다! 닫도록 하겠습니다.