naetoru2144
@naetoru2144

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

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

1Answer

Comments

  1. @naetoru2144

    Questioner

    自分もそう思って問い合わせたんですがサポートの範囲外と言われてしまい...
     2024-12-10 20.08.06.png

Your answer might help someone💌