title: pytchat python library cannot find valid livechat comment id YouTube API
body: <p>I am trying to use the pytchat library to get information about my moderated livestream chats. The two main pieces of information I want are these: the message text (I can get this reliably) and the comment id (less reliable apparently). The pytchat library allows access to YouTube request information in a variety of different ways. All seem to give me the same botched output. Using this code:</p>
  <pre><code>from pytchat import CompatibleProcessor, create
  import time, sys
  chat_ = create(sys.argv[1], processor = CompatibleProcessor())
  while chat_.is_alive():
    try:
      data = chat_.get()
      polling = data['pollingIntervalMillis']/1000
      for c in data['items']:
        if c.get('snippet'):
          print(c['snippet']['displayMessage'] + ' || ' + c['id'])
          time.sleep(polling/len(data['items']))
    except KeyboardInterrupt:
      chat_.terminate()
  </code></pre>
  <p>I get a readout of every comment as it is provided by YouTube. The message bit is fine. c['id'] however is a different story. The comment ids stored by this element are usually formatted in this way:</p>
  <pre><code>LCC.CjkKGkNQRHhoYUNEdVBrQ0ZWRzE1UWNkdEhZQzlREhtDT0dDMFBYMXRfa0NGWTZUd2dFZDdkZ0Uydzk%3D
  </code></pre>
  <p>This is not an actual comment id. I know as much, because whenever I pass this comment id to YouTube API in a delete request I get the following:</p>
  <pre><code>{'error': {'code': 404, 'message': 'The liveChatMessage that you are trying to delete cannot be found.', 'errors': [{'message': 'The liveChatMessage that you are trying to delete cannot be found.', 'domain': 'youtube.liveChat', 'reason': 'liveChatMessageNotFound'}]}}
  </code></pre>
  <p>Making a POST request with curl yields a different style of comment id:</p>
  <pre><code>LCC.CjgKDQoLQlRERDlEYVFZdHMqJwoYVUMxSE1UdDVjb0VWNi1tV1BhZEJRU0l3EgtCVEREOURhUVl0cxI5ChpDUER4aGFDRHVQa0NGVkcxNVFjZHRIWUM5URIbQ09HQzBQWDF0X2tDRlk2VHdnRWQ3ZGdFMnc5
  </code></pre>
  <p>I haven't tried deleting comments with this type of comment id, but just looking at it makes me think it is infinitely more valid than whatever is being supplied by pytchat.</p>
  <p>Is this expected behavior for pytchat? I haven't seen anyone else use the library this way. If so, how can I get the actual comment id? (preferably without supplying any authorization tokens)</p>
  <p>Edit (example c snippets with associated livestream video-ids):</p>
  <pre><code>xLsoN8z9xq:
  {'kind': 'youtube#liveChatMessage', 'etag': '', 'id': 'LCC.CjoKGkNKSGVfTml5dXZrQ0Zjc1dyUVlkOUhNSnN3EhxDUFROd0txc3V2a0NGV1doMkFVZHNFY0l1ZzEw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': '', 'authorChannelId': 'UCdyotM4u3QW4Nvqr-iZghyQ', 'publishedAt': '2022-08-09T18:33:27.877Z', 'hasDisplayContent': True, 'displayMessage': 'all hail for lord yacine', 'textMessageDetails': {'messageText': 'all hail for lord yacine'}}, 'authorDetails': {'channelId': 'UCdyotM4u3QW4Nvqr-iZghyQ', 'channelUrl': 'http://www.youtube.com/channel/UCdyotM4u3QW4Nvqr-iZghyQ', 'displayName': 'rahil', 'profileImageUrl': 'https://yt4.ggpht.com/ytc/AMLnZu_nFXi8dLoAOUeyiS0wcqLivdaFyTOc1yYQjbiOqg=s64-c-k-c0x00ffffff-no-rj', 'isVerified': False, 'isChatOwner': False, 'isChatSponsor': False, 'isChatModerator': False}}
  
  mx9EqnEhg74:
  {'kind': 'youtube#liveChatMessage', 'etag': '', 'id': 'LCC.CjsKGkNPdmprckt5dXZrQ0ZXS3Q1UWNkSWM4S0hnEh1DSm10azkydXV2a0NGYW9tZ3dvZDI5UUYzQS0xMw%3D%3D', 'snippet': {'type': 'textMessageEvent', 'liveChatId': '', 'authorChannelId': 'UCgkIDx-V7zMjnCrEtXaxUWQ', 'publishedAt': '2022-08-09T18:32:06.449Z', 'hasDisplayContent': True, 'displayMessage': 'yuck', 'textMessageDetails': {'messageText': 'yuck'}}, 'authorDetails': {'channelId': 'UCgkIDx-V7zMjnCrEtXaxUWQ', 'channelUrl': 'http://www.youtube.com/channel/UCgkIDx-V7zMjnCrEtXaxUWQ', 'displayName': 'grace', 'profileImageUrl': 'https://yt4.ggpht.com/nDFvN9uOZw7eP3-NQhIZZmXH-I5J30FEF629JjJ-NMpADvWLy3Q6BIkqtT-tX8drsVprLcNw=s64-c-k-c0x00ffffff-no-rj', 'isVerified': False, 'isChatOwner': False, 'isChatSponsor': False, 'isChatModerator': False}}
  
  jfKfPfyJRdk:
  {'kind': 'youtube#liveChatMessage', 'etag': '', 'id': 'LCC.CkUKGkNPcV9oWVd5dXZrQ0ZhTWlyUVlkSFJjSEVnEidDUDZYMDdxd3V2a0NGYy1JbFFJZHBxSUxRUTE2NjAwNjk4Mjk0Njk%3D', 'snippet': {'type': 'textMessageEvent', 'liveChatId': '', 'authorChannelId': 'UChOT0CZQ9ZwiwxNfkdI72tQ', 'publishedAt': '2022-08-09T18:30:31.860Z', 'hasDisplayContent': True, 'displayMessage': 'mds eu tô em um tédio absurdo KKKKKK', 'textMessageDetails': {'messageText': 'mds eu tô em um tédio absurdo KKKKKK'}}, 'authorDetails': {'channelId': 'UChOT0CZQ9ZwiwxNfkdI72tQ', 'channelUrl': 'http://www.youtube.com/channel/UChOT0CZQ9ZwiwxNfkdI72tQ', 'displayName': 'Ruth.', 'profileImageUrl': 'https://yt4.ggpht.com/ytc/AMLnZu-P2JRuFGU5ibeJiBIflPSkhUyS_0Zqz3w6CClZBg=s64-c-k-c0x00ffffff-no-rj', 'isVerified': False, 'isChatOwner': False, 'isChatSponsor': False, 'isChatModerator': False}}
  </code></pre>
  <p>Yet another edit:
  I read over the pytchat source code and found this suspect snippet of code (in __init__.py):</p>
  <pre><code>from base64 import a85decode as dc
  _sml = dc(b&quot;BQS?8F#ks-GB\\6`H#IhIF^eo7@rH3;H#IhIF^eor06T''Ch\\'(?XmbXF&gt;%9&lt;FC/iuG%G#jBOQ!ICLqcS5tQB2;gCZ)?UdXC;f$GR3)MM2&lt;(0&gt;O7mh!,G@+K5?SO9T@okV&quot;).decode()
  _smr = dc(b&quot;BQS?8F#ks-GB\\6`H#IhIF^eo7@rH3;H#IhIF^eor06T''Ch\\'(?XmbXF&gt;%9&lt;FC/iuG%G#jBOQ!iEb03+@&lt;k(QAU-F)8U=fDGsP557S5F7CiNH7;)D3N77^*B6YU@\\?WfBr0emZX=#^&quot;).decode()
  </code></pre>
  <p>These are links to YouTube with API keys as parameters. If you look at YouTube's own documentation for their API (or go looking anywhere else) you'll soon find that the youtubei/v1 API is no longer supported. In fact, I cannot find documentation for the old API anywhere. It seems I am at a dead end.</p>