pytchatがheroku内でのみ、特定のvideo_id群に対してエラーを起こす
解決したいこと
PythonでYouTube関連のwebアプリを作っています。Pythonスクリプトを定期実行しているんですが、pytchatライブラリがheroku内でのみ特定のvideo_id(約1/60くらいの確率で発生)についてエラーを起こします。これを解決したいです。
作業環境
- Python 3.12.4
- Pytchat 0.5.5
発生している問題・エラー
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/util/__init__.py", line 107, in get_channelid
raise IndexError
IndexError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/app/test_script/mini_livetest.py", line 15, in <module>
chat = pytchat.create(video_id=ids[0],interruptable=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/core/__init__.py", line 7, in create
return PytchatCore(_vid, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/core/pytchat.py", line 96, in __init__
self._setup()
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/core/pytchat.py", line 106, in _setup
channel_id=util.get_channelid(self._client, self._video_id),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/util/__init__.py", line 110, in get_channelid
ret = get_channelid_2nd(client, video_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.heroku/python/lib/python3.12/site-packages/pytchat/util/__init__.py", line 119, in get_channelid_2nd
raise InvalidVideoIdException(f"Cannot find channel id for video id:{video_id}. This video id seems to be invalid.")
pytchat.exceptions.InvalidVideoIdException: Cannot find channel id for video id:g5vKkS19nq8. This video id seems to be invalid.
該当するソースコード
import pytchat
import requests, json
# API接続ができるか確認
url = requests.get("http://api.aoikujira.com/kawase/json/usd")
text = url.text
json_currency = json.loads(text)
print(json_currency)
print("Successful in API communication")
# エラーを起こしたvideo_idを人力で持ってきている
ids = "g5vKkS19nq8,kHo37taBFP8,6IJpVVGIxno,LPI_FnuvfhE,dWhmdgpeBts,NXcmsY5iXkw,ECATLuOt1AE"
ids = ids.split(",")
# エラーを起こす部分 上に挙げたどのvideo_idに対しても同じエラーが起こる
chat = pytchat.create(video_id=ids[0],interruptable=False)
自分で試したこと
YouTubeAPIでエラーを起こすvideo_idの共通点を探しました。コメント量や再生回数、放送の日時にばらつきがあり、YouTubeAPIで確認できる範囲でエラーを起こすvideo_idに特有の特徴は見つかりませんでした...
またローカルと、↓のcolabにおいてコードが正常に動作します。
https://colab.research.google.com/drive/1npGihQ4KVHFn1tBMpAbY7HDFVsDk4CNW
1