diff options
author | Jesus <heckyel@hyperbola.info> | 2025-03-08 16:37:33 -0500 |
---|---|---|
committer | Jesus <heckyel@hyperbola.info> | 2025-03-08 16:37:33 -0500 |
commit | 1153ac8f24fa775c367eec13a235b5cfca530a12 (patch) | |
tree | 744748cac4982d5c78a97082c22f37a24bff748b /youtube/comments.py | |
parent | c256a045f91d36463642af2f285d0b77cc3e9d3e (diff) | |
download | yt-local-1153ac8f24fa775c367eec13a235b5cfca530a12.tar.lz yt-local-1153ac8f24fa775c367eec13a235b5cfca530a12.tar.xz yt-local-1153ac8f24fa775c367eec13a235b5cfca530a12.zip |
Fix NoneType inside comments.py
Bug:
Traceback (most recent call last):
File "/home/rusian/yt-local/youtube/comments.py", line 180, in video_comments
post_process_comments_info(comments_info)
File "/home/rusian/yt-local/youtube/comments.py", line 81, in post_process_comments_info
comment['author'] = strip_non_ascii(comment['author'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/rusian/yt-local/youtube/util.py", line 843, in strip_non_ascii
stripped = (c for c in string if 0 < ord(c) < 127)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not iterable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "src/gevent/greenlet.py", line 900, in gevent._gevent_cgreenlet.Greenlet.run
File "/home/rusian/yt-local/youtube/comments.py", line 195, in video_comments
comments_info['error'] = 'YouTube blocked the request. IP address: %s' % e.ip
^^^^
AttributeError: 'TypeError' object has no attribute 'ip'
2025-03-08T01:25:47Z <Greenlet at 0x7f251e5279c0: video_comments('hcm55lU9knw', 0, lc='')> failed with AttributeError
Diffstat (limited to 'youtube/comments.py')
-rw-r--r-- | youtube/comments.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/youtube/comments.py b/youtube/comments.py index 92a89e1..1ff1a21 100644 --- a/youtube/comments.py +++ b/youtube/comments.py @@ -53,7 +53,7 @@ def request_comments(ctoken, replies=False): 'hl': 'en', 'gl': 'US', 'clientName': 'MWEB', - 'clientVersion': '2.20240328.08.00', + 'clientVersion': '2.20210804.02.00', }, }, 'continuation': ctoken.replace('=', '%3D'), @@ -78,7 +78,7 @@ def single_comment_ctoken(video_id, comment_id): def post_process_comments_info(comments_info): for comment in comments_info['comments']: - comment['author'] = strip_non_ascii(comment['author']) + comment['author'] = strip_non_ascii(comment['author']) if comment.get('author') else "" comment['author_url'] = concat_or_none( '/', comment['author_url']) comment['author_avatar'] = concat_or_none( @@ -189,10 +189,10 @@ def video_comments(video_id, sort=0, offset=0, lc='', secret_key=''): comments_info['error'] += '\n\n' + e.error_message comments_info['error'] += '\n\nExit node IP address: %s' % e.ip else: - comments_info['error'] = 'YouTube blocked the request. IP address: %s' % e.ip + comments_info['error'] = 'YouTube blocked the request. Error: %s' % str(e) except Exception as e: - comments_info['error'] = 'YouTube blocked the request. IP address: %s' % e.ip + comments_info['error'] = 'YouTube blocked the request. Error: %s' % str(e) if comments_info.get('error'): print('Error retrieving comments for ' + str(video_id) + ':\n' + |