# This is a sample Python script.

# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.

import os
import googleapiclient.discovery
import google_auth_oauthlib
import googleapiclient.errors
import threading
import csv

scopes = ["https://www.googleapis.com/auth/youtube.readonly",
          "https://www.googleapis.com/auth/youtube"]


def authorize():
    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

    api_service_name = "youtube"
    api_version = "v3"
    client_secrets_file = "client_secrets_file.json"

    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(client_secrets_file, scopes)

    credentials = flow.run_console()

    return googleapiclient.discovery.build(api_service_name, api_version, credentials=credentials)


def get_livechatid(token, url):
    youtube = token

    request = youtube.liveBroadcasts().list(
        part='snippet',
        id=url.split('/')[-1]
    )

    broadcast_response = request.execute()

    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']

    return live_chat_id

next_page_token = ''
bot_activate_interval = 20


class SongRequest:
    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):

    global next_page_token
    youtube = token

    request = youtube.liveChatMessages().list(
        liveChatId=live_chat_id,
        part="snippet",
        pageToken=next_page_token
    )

    live_chat_response = request.execute()

    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []

    print(next_page_token)

    print(messages_list)
    for message in messages_list:

        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)

        command = word_list[0]

        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]

            song_request = SongRequest(message['snippet']['authorChannelId'], song_title)
            song_request_list.append(song_request)

            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)

            if len(song_request_list) > 0:
                request = youtube.channels().list(
                    part='snippet',
                    id=','.join(channel_id_list)
                )

                channels_response = request.execute()

                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']

                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')

                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")

    else:
        print('working but empty')

    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):
    def func_wrapper(live_chat_id):
        set_interval(func,sec)
        func(live_chat_id)

    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')

        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


if __name__ == '__main__':

    token = authorize()

    url = input("Paste the url here: e.g 'https://www.youtube.com/watch?v=CDiInt5YJmk'")
    live_chat_id = get_livechatid(token, url)

    set_interval(get_latest_message, bot_activate_interval)


# [{'kind': 'youtube#liveChatMessage',
#   'etag': 'SnwQ7nuB3GaZt6KnSG-kdLrIHog',
#   'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTEdLMmVIc2pPOENGYTAzclFZZGhLRUFSURIcQ0tHeHVzVFRqTzhDRlZFZnR3QWRtRm9HeUE3NQ',
#   'snippet': {
#       'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE',
#       'authorChannelId': 'UCtQDBCBadC3JEqqLWbbiTcw',
#       'publishedAt': '2021-02-28T15:03:02.348114+00:00',
#       'hasDisplayContent': True, 'displayMessage': '不过Nathan Hartono好像比赛时候唱过lemon tree',
#       'textMessageDetails': {'messageText': '不过Nathan Hartono好像比赛时候唱过lemon tree'}}},
#  {'kind': 'youtube#liveChatMessage',
#   'etag': 'RwwlXaI33X_j1_K3JEQPkoX4Ad8',
#   'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRIcChpDT3kzMk4zc2pPOENGWjBiclFZZEd1SUlwZw',
#   'snippet': {
#       'type': 'superChatEvent',
#       'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE',
#       'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg',
#       'publishedAt': '2021-02-28T15:03:07.822838+00:00',
#       'hasDisplayContent': True,
#       'displayMessage': 'SGD\xa010.00 from Linda Gui: "Since you sing this , I have no more excuse to not practice later hahahahhahaah"',
#       'superChatDetails': {'amountMicros': '10000000', 'currency': 'SGD', 'amountDisplayString': 'SGD\xa010.00', 'userComment': 'Since you sing this , I have no more excuse to not practice later hahahahhahaah', 'tier': 4}
#     }
#   },
#  {'kind': 'youtube#liveChatMessage', 'etag': '-s1TWCJJf9rICjsQeq5F_eOm-s8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTHIzOWVqc2pPOENGUWdUclFZZENud016URIcQ0tHeHVzVFRqTzhDRlZFZnR3QWRtRm9HeUE3Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCtQDBCBadC3JEqqLWbbiTcw', 'publishedAt': '2021-02-28T15:03:17.500888+00:00', 'hasDisplayContent': True, 'displayMessage': '我记得他穿着拖鞋在台上', 'textMessageDetails': {'messageText': '我记得他穿着拖鞋在台上'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'W35xcRid38igpKJnoHwCDaPm-f8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT0hNNk92c2pPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREExOA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:03:23.573906+00:00', 'hasDisplayContent': True, 'displayMessage': ':washhands::washhands::washhands:', 'textMessageDetails': {'messageText': ':washhands::washhands::washhands:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'yPVazEwTzb5rBc-jyjHzIAQh21w', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUGI1bnZIc2pPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2NA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:03:34.950197+00:00', 'hasDisplayContent': True, 'displayMessage': 'his mum is SVP of Tung Lok hahaha', 'textMessageDetails': {'messageText': 'his mum is SVP of Tung Lok hahaha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Sn6a-tEDHuBa9jQB0B9Gymz7_d8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI5ChpDS2Vna3Zic2pPOENGYWdEclFZZHQ1Z0UxURIbQ0piRjJvYnJqTzhDRmRuR1RBSWRoRHNON2cy', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCOCS0dfp90CrIP3bWXlcK2g', 'publishedAt': '2021-02-28T15:03:45.227853+00:00', 'hasDisplayContent': True, 'displayMessage': '雖互倫', 'textMessageDetails': {'messageText': '雖互倫'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'NaMsykqTox110MBkyonFYEdQyf8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSzYtc19mc2pPOENGUWdUclFZZENud016URIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2NQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:03:47.869529+00:00', 'hasDisplayContent': True, 'displayMessage': 'Soh Hui Lun', 'textMessageDetails': {'messageText': 'Soh Hui Lun'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3Ua9LgCZjDFu9xrSID9WyP57AZs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSzMybVlUdGpPOENGZVVPclFZZHdRa0V6URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0NjUzNjE4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:04:14.713681+00:00', 'hasDisplayContent': True, 'displayMessage': '👏👏👏👏👏👏👍👍👍👍', 'textMessageDetails': {'messageText': '👏👏👏👏👏👏👍👍👍👍'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'P6-dhGEwwvZPA6DX0iLLcrw8tpU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDS1dybG9idGpPOENGZVVPclFZZHdRa0V6URInQ043aTBhRHNqTzhDRlU3S2N3RWQ0RVVJd2cxNjE0NTI0NjU5MjA3', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:04:18.849226+00:00', 'hasDisplayContent': True, 'displayMessage': '!request my dear my friend', 'textMessageDetails': {'messageText': '!request my dear my friend'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'eoFTYJU7XaMT06zvCN_kr7lhebw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI5ChpDUEh0cm96dGpPOENGYTAzclFZZGhLRUFSURIbQ1BTTHVfdnNqTzhDRlJpTndnb2Q4SndFWkEw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCOCS0dfp90CrIP3bWXlcK2g', 'publishedAt': '2021-02-28T15:04:31.833883+00:00', 'hasDisplayContent': True, 'displayMessage': '框不住的愛', 'textMessageDetails': {'messageText': '框不住的愛'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '7gB2ciSMWLIluxfx3b3tm8XXeE0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBZeHBidGpPOENGUWdUclFZZENud016URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREExOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:04:53.195875+00:00', 'hasDisplayContent': True, 'displayMessage': '連名帶姓', 'textMessageDetails': {'messageText': '連名帶姓'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'r86bHYVO1ts-J2ibiI1cqpNNngE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTW1IczZUdGpPOENGYV9ad1FvZG5Dc0lpZxIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtNg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:05:22.234358+00:00', 'hasDisplayContent': True, 'displayMessage': '说散就散？', 'textMessageDetails': {'messageText': '说散就散？'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'mtQi9ZkTFsEyr3rAmvPLBrCTILw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS3JTMnFUdGpPOENGYWdEclFZZHQ1Z0UxURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:05:22.882891+00:00', 'hasDisplayContent': True, 'displayMessage': '唱一首情歌呼唤xueqi回来', 'textMessageDetails': {'messageText': '唱一首情歌呼唤xueqi回来'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'vDMSQoz0xsh1cKQgL8Y4AaM7I2o', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS19KczZydGpPOENGUzcyd1FvZHpFb0EtQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtNw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:05:34.825711+00:00', 'hasDisplayContent': True, 'displayMessage': '慢慢喜欢你？', 'textMessageDetails': {'messageText': '慢慢喜欢你？'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '25B2HLYWFU2bGqKE_fbYEtaZ3hY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTEx1eUtfdGpPOENGVWdfclFZZDFXSVBwURInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0NzQ0NTM5', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:05:45.660297+00:00', 'hasDisplayContent': True, 'displayMessage': '差不多姑娘', 'textMessageDetails': {'messageText': '差不多姑娘'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'GiFwig6DPntvJE0IdUzOaYYbwSY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS2EwcUxidGpPOENGZHNxclFZZDk3RU5xQRIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:05:59.808585+00:00', 'hasDisplayContent': True, 'displayMessage': '她生氣嚕', 'textMessageDetails': {'messageText': '她生氣嚕'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'T2vms8t9rlzsYnXOHurBXLu5as4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBLbGNmdGpPOENGVFRJd1FvZHRHVUdvQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtOA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:06:35.151732+00:00', 'hasDisplayContent': True, 'displayMessage': '邓紫棋 后会无期', 'textMessageDetails': {'messageText': '邓紫棋 后会无期'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'r4YNWVZhBw5sAiOvxczujQs0Shg', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS09aOGN6dGpPOENGVmJBd1FvZDZTME8tQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:06:47.13851+00:00', 'hasDisplayContent': True, 'displayMessage': '后会无期好听呢', 'textMessageDetails': {'messageText': '后会无期好听呢'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'V7xH5XZ0lAzTBz64_zfqBtom7G4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT2F5OWRidGpPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2Nw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:07:08.178846+00:00', 'hasDisplayContent': True, 'displayMessage': '应景哦，@Xueqi.Stella 多远都要在一起', 'textMessageDetails': {'messageText': '应景哦，@Xueqi.Stella 多远都要在一起'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'J4HVMnkWi7OiA3cLmjgj6xBZKD8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSWFLbE9IdGpPOENGYWdEclFZZHQ1Z0UxURInQ0lXWS03enRqTzhDRlZQRmp3b2RHTWtLbmcxNjE0NTI0ODUwMzE1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:07:29.653047+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'pNnk84gqo7sc1QwE_YmjNX5KBrk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTS1hLS1udGpPOENGU00wclFZZEQyb0F6dxInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0ODY3MDEz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:07:48.119961+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '6Y4eSlRyqFYAFf4yiu88_3lfn0I', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS0tOai16dGpPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:07:52.640197+00:00', 'hasDisplayContent': True, 'displayMessage': '是 Eric P. 蠻應景的/下周再點好了', 'textMessageDetails': {'messageText': '是 Eric P. 蠻應景的/下周再點好了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'V-dGA7Pn5SdfUTaM-yDLSXTkAw4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDS1dvdHZ2dGpPOENGUk1uclFZZGZWOEhGQRInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0OTAzNjMz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:08:24.73991+00:00', 'hasDisplayContent': True, 'displayMessage': ':elbowcough::elbowcough::elbowcough:', 'textMessageDetails': {'messageText': ':elbowcough::elbowcough::elbowcough:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'IDyHaJrwwz6WWo8gvkc-bcOFn-M', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTFd5b183dGpPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2OA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:08:30.721364+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis::yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis::yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'W0rOpn5ncL50L47F9Jmt3F8QVyU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBwcElQdWpPOENGVndCclFZZEJYQUtpQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2OQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:08:41.230569+00:00', 'hasDisplayContent': True, 'displayMessage': '有一点高', 'textMessageDetails': {'messageText': '有一点高'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'DGmfAZkagVtp3kQKY3DnCIV3nng', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTFNvbUxidWpPOENGU00wclFZZEQyb0F6dxInQ0pPdGpjampqTzhDRlVjbWp3b2R3X0VEb3cxNjE0NTI1MDI2OTM5', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:10:27.980435+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis::yougotthis::yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis::yougotthis::yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'WZUk76mmNDoqe3tMMpTlEKC0XJs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS0tRNHJudWpPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3MA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:10:35.481157+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho chosen the song already anot? haha', 'textMessageDetails': {'messageText': '@Ron Ho chosen the song already anot? haha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'p0GsNEnof0xJC0Vm44hiYDFajzU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTHUzNk1EdWpPOENGYTAzclFZZGhLRUFSURIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:10:50.264536+00:00', 'hasDisplayContent': True, 'displayMessage': '太棒了 太棒了', 'textMessageDetails': {'messageText': '太棒了 太棒了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3P-hCrwLkjLXkPesN87mbvrChrg', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTk9Yb01YdWpPOENGUWdUclFZZENud016URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI1MDU4NDU2', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:10:59.566583+00:00', 'hasDisplayContent': True, 'displayMessage': '👍👏👍👏👍👏👍👏👍👏👍👏', 'textMessageDetails': {'messageText': '👍👏👍👏👍👏👍👏👍👏👍👏'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'C4aaik42BHPNSH08pMwNUEWS6-s', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUExrNzhqdWpPOENGYTAzclFZZGhLRUFSURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EyOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:11:07.162261+00:00', 'hasDisplayContent': True, 'displayMessage': '👏👏👏👏👏👏', 'textMessageDetails': {'messageText': '👏👏👏👏👏👏'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'da1NbV2BYQjU5OOEGyX2NNRo_cs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTzJEbmN2dWpPOENGUk1uclFZZGZWOEhGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3MQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:11:12.097809+00:00', 'hasDisplayContent': True, 'displayMessage': 'chosen a song to practise, haha', 'textMessageDetails': {'messageText': 'chosen a song to practise, haha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'GYgD3xGIgOSfXjJSSxtGXzPv8oI', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVhac05mdWpPOENGU00wclFZZEQyb0F6dxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Mg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:11:37.585934+00:00', 'hasDisplayContent': True, 'displayMessage': 'still not yet leh', 'textMessageDetails': {'messageText': 'still not yet leh'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '39a85uqjHZAvQ7e7edmcg66QYEQ', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSVRzOHRqdWpPOENGUWdUclFZZENud016URInQ0xxZzdNWHVqTzhDRlVPN2p3b2RWLU1DRVExNjE0NTI1MTAxNDI4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:11:40.766752+00:00', 'hasDisplayContent': True, 'displayMessage': '女人花', 'textMessageDetails': {'messageText': '女人花'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'vKxCR1Bq1N6Y8HPI1xEo-KyRJS0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUGU1d3VfdWpPOENGVllfclFZZDBhSU1tZxInQ0l1OXFZWHVqTzhDRlFfOGp3b2RCUEFKSWcxNjE0NTI1MTQ2ODkz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:12:28.208423+00:00', 'hasDisplayContent': True, 'displayMessage': '学习宇哥的飞鸟和cha', 'textMessageDetails': {'messageText': '学习宇哥的飞鸟和cha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Jfmh5cvkZk7SLDPS2SX5oZxq1yU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSnUzMnZEdWpPOENGUWdUclFZZENud016URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI1MTQ5NTk1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:12:30.698426+00:00', 'hasDisplayContent': True, 'displayMessage': '謝謝你掰掰:yougotthis:', 'textMessageDetails': {'messageText': '謝謝你掰掰:yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'T2gaUiTbJAuG-nJHZre7kGoKsEY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTGUza2ZqdWpPOENGUk1uclFZZGZWOEhGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:12:46.279641+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho 好哦', 'textMessageDetails': {'messageText': '@Ron Ho 好哦'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'BuaACCNsmYXo0lfEmY_zeU3z2Ag', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVN2c1lidmpPOENGZHNxclFZZDk3RU5xQRIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:13:16.163055+00:00', 'hasDisplayContent': True, 'displayMessage': '太好了!', 'textMessageDetails': {'messageText': '太好了!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'MNaR77QRC8zYYhtoOq8fO9zawnU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTG5jb3IzdmpPOENGWjBiclFZZEd1SUlwZxIcQ1B5U3E1M1VqTzhDRmVLUjVnb2Q3YzRQdEE3Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCEvMyQHsqE2jE9dIfrvJmzw', 'publishedAt': '2021-02-28T15:15:11.266405+00:00', 'hasDisplayContent': True, 'displayMessage': 'yes yes', 'textMessageDetails': {'messageText': 'yes yes'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '1-CAXWxzTMcNvfiAreoiRTH34a8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUExQejhUdmpPOENGUk1uclFZZGZWOEhGQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1MzI1MzQz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:15:26.682133+00:00', 'hasDisplayContent': True, 'displayMessage': 'good to hear good news', 'textMessageDetails': {'messageText': 'good to hear good news'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'KagxazbXrBeLiGbckZPDti4RtP4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSTZxNHN6dmpPOENGUkVYZlFvZE84SUpGQRIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:15:43.765848+00:00', 'hasDisplayContent': True, 'displayMessage': 'Ok ... at least some good news', 'textMessageDetails': {'messageText': 'Ok ... at least some good news'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'wjpKDrUu38GDXuibZADp5M1pYDY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTlhOOU0zdmpPOENGZVVPclFZZHdRa0V6URIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3NA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:15:46.162428+00:00', 'hasDisplayContent': True, 'displayMessage': "yes it's a good news! rejoice!", 'textMessageDetails': {'messageText': "yes it's a good news! rejoice!"}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'sT25C6vP5rRw8zZMU-esDluT4jc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUEdTcmREdmpPOENGWjBiclFZZEd1SUlwZxInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1MzQ5OTUw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:15:51.2831+00:00', 'hasDisplayContent': True, 'displayMessage': '要去看什么歌下架了', 'textMessageDetails': {'messageText': '要去看什么歌下架了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'DS4qPKWjj_bsoNWYYeNx60IMTNM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmVvMmRQdmpPOENGYTAzclFZZGhLRUFSURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:15:58.298163+00:00', 'hasDisplayContent': True, 'displayMessage': 'nvm Isaac ..', 'textMessageDetails': {'messageText': 'nvm Isaac ..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'ry90Ogi_XZEQoklzeJ4UPw5aywU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTVdicC1fdmpPOENGUk1uclFZZGZWOEhGQRInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NDE1Mjg4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:16:56.197617+00:00', 'hasDisplayContent': True, 'displayMessage': '等你的原创~~', 'textMessageDetails': {'messageText': '等你的原创~~'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'svMA0XxlsfK6nUyBH7PzO3ndF5U', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmlHNXZqdmpPOENGYWdEclFZZHQ1Z0UxURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:17:16.101441+00:00', 'hasDisplayContent': True, 'displayMessage': 'do you know this platform known as Streetvoice ?', 'textMessageDetails': {'messageText': 'do you know this platform known as Streetvoice ?'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'xfpl9OZpb4_PgUQ-TAuLilbkdxk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTEQycWZudmpPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3NQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:17:17.213533+00:00', 'hasDisplayContent': True, 'displayMessage': '又经历一件事，又level up liao~', 'textMessageDetails': {'messageText': '又经历一件事，又level up liao~'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'cKpD4vjIBhYOcCxqMNG41x6ZIpM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUERZNGZfdmpPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:17:30.710162+00:00', 'hasDisplayContent': True, 'displayMessage': 'its also a music sharing platform ..', 'textMessageDetails': {'messageText': 'its also a music sharing platform ..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Obi7mpNS_5fxeLi607M3mG0TAtk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSXkxMG9Md2pPOENGUk1uclFZZGZWOEhGQRInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NDU3Mzkz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:17:36.751285+00:00', 'hasDisplayContent': True, 'displayMessage': '加油', 'textMessageDetails': {'messageText': '加油'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'VjnRKEVh6KCYoKECAb4UJrkIfH0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSm52bzRmd2pPOENGVndCclFZZEJYQUtpQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1NDY1MTM2', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:17:46.474443+00:00', 'hasDisplayContent': True, 'displayMessage': 'can make mv put on youtube.. we can be your logistic support...', 'textMessageDetails': {'messageText': 'can make mv put on youtube.. we can be your logistic support...'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'dxB1vd-RxQZdUaP2TrGn3cHqPws', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT0xVMTRyd2pPOENGWjBiclFZZEd1SUlwZxIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyNA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:17:53.614475+00:00', 'hasDisplayContent': True, 'displayMessage': '加油加油加油!', 'textMessageDetails': {'messageText': '加油加油加油!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'wIZ-K0YozW6K8ac2xOwvwGyB5iw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmp1bDVId2pPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:18:07.249209+00:00', 'hasDisplayContent': True, 'displayMessage': '現在可以比較安心了', 'textMessageDetails': {'messageText': '現在可以比較安心了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'yxd2wRJcqj3ky7thKrYM1XR5kUs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTFRNd1pUd2pPOENGVWdfclFZZDFXSVBwURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:18:14.224506+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho +1. we can be kelefeh', 'textMessageDetails': {'messageText': '@Ron Ho +1. we can be kelefeh'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'VdJTVbRXWMqmk5Jh2YI1kNE4ABE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1NRcHFyd2pPOENGZHNxclFZZDk3RU5xQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Nw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:18:59.911809+00:00', 'hasDisplayContent': True, 'displayMessage': '飞鸟和cha', 'textMessageDetails': {'messageText': '飞鸟和cha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'AeEeNxd6VeRCS4elgDQrrVv717c', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTHplaHF2d2pPOENGUkVYZlFvZE84SUpGQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1NTQwMTc1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:19:01.494623+00:00', 'hasDisplayContent': True, 'displayMessage': 'we can hold mic boom.. bring fan bring water..', 'textMessageDetails': {'messageText': 'we can hold mic boom.. bring fan bring water..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Z4GX2Tsh_pXM7hUmiu1tj_Env3k', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUFQyMEt2d2pPOENGVllfclFZZDBhSU1tZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3OA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:02.710185+00:00', 'hasDisplayContent': True, 'displayMessage': 'hahahaha', 'textMessageDetails': {'messageText': 'hahahaha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'G8IaxQLEzWNEjg9mZZtHIk_05lQ', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTzIyXzdEd2pPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3OQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:13.957776+00:00', 'hasDisplayContent': True, 'displayMessage': 'yes!!!', 'textMessageDetails': {'messageText': 'yes!!!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'bE07Ajv_Ha2Z6-ZjyPTUpvqg98w', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSXFBbzdYd2pPOENGUWdUclFZZENud016URInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NTYzNTcw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:19:22.929223+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安吧', 'textMessageDetails': {'messageText': '晚安吧'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'sqHJaKFtlLnF9Szl74M1w6ju4wc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1djMTdid2pPOENGUk1uclFZZGZWOEhGQRIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:19:25.88201+00:00', 'hasDisplayContent': True, 'displayMessage': 'Thanks Isaac for sharing !', 'textMessageDetails': {'messageText': 'Thanks Isaac for sharing !'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'PUQLWPqPrqNH920yVwqv96LSMBw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTTJvdmJqd2pPOENGYTAzclFZZGhLRUFSURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4MA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:29.651837+00:00', 'hasDisplayContent': True, 'displayMessage': 'everybody good month ahead k! March is an awesome month! 🙂', 'textMessageDetails': {'messageText': 'everybody good month ahead k! March is an awesome month! 🙂'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'D98yB1iUcYObvtn6TzFVzM4bmXE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI7ChpDT3JMMGJyd2pPOENGVFRJd1FvZHRHVUdvQRIdQ08tVjhyandqTzhDRllxZ1VRb2RqV0lHVkEtMTA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:19:34.17833+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安咯', 'textMessageDetails': {'messageText': '晚安咯'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'ImPfZIuaIUdJUMSavOoyOIchpRY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUE9waXJ6d2pPOENGVXdYclFZZERrMEVaZxInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NTc2Mjkw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:19:37.205053+00:00', 'hasDisplayContent': True, 'displayMessage': '飞鸟喝茶？ 哈哈哈哈', 'textMessageDetails': {'messageText': '飞鸟喝茶？ 哈哈哈哈'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Uy7klbqmCq5Xm8wjlBv5lc7bIUc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTXpscUxfd2pPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyNQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:19:43.995642+00:00', 'hasDisplayContent': True, 'displayMessage': '大家晚安安 @_@ 下周見嚕', 'textMessageDetails': {'messageText': '大家晚安安 @_@ 下周見嚕'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3KO2pOPSsQeuJna5VZkJK5GoXoM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1N4N2Jfd2pPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:19:45.119499+00:00', 'hasDisplayContent': True, 'displayMessage': 'Take care yah and goodnight everyone !', 'textMessageDetails': {'messageText': 'Take care yah and goodnight everyone !'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '4vzzYa1IqdIdBvTi955NaQ18aRA', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTWVyeDhUd2pPOENGVXdYclFZZERrMEVaZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4MQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:54.981875+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安！', 'textMessageDetails': {'messageText': '晚安！'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'M-aWSjlUDYxihlo3VLkaA3fxaKo', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTXFpNGNmd2pPOENGUWdUclFZZENud016URInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NjAwODEy', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:20:01.69816+00:00', 'hasDisplayContent': True, 'displayMessage': '大家晚安~ have a great week ahead everybody & thanks 宇哥 for the nice songs as always. ⛽加油，一切都会顺利的:goodvibes:', 'textMessageDetails': {'messageText': '大家晚安~ have a great week ahead everybody & thanks 宇哥 for the nice songs as always. ⛽加油，一切都会顺利的:goodvibes:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'kF2uxXqZRHFcqAKTlR-92KuOFm0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS2I1dWMzd2pPOENGVWdfclFZZDFXSVBwURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4Mg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:20:13.636844+00:00', 'hasDisplayContent': True, 'displayMessage': 'fly bird yumcha.', 'textMessageDetails': {'messageText': 'fly bird yumcha.'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '7Yd54pD4u44GtcN-7w9i_7bsLUc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSWpjdGREd2pPOENGVWdfclFZZDFXSVBwURInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NjIwNDg4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:20:19.859007+00:00', 'hasDisplayContent': True, 'displayMessage': 'bye 👋', 'textMessageDetails': {'messageText': 'bye 👋'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'OtcJGeAVCENXp2QNbg9FXudTIJE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT2JVdHVud2pPOENGVllfclFZZDBhSU1tZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:21:12.30324+00:00', 'hasDisplayContent': True, 'displayMessage': 'Bye!!', 'textMessageDetails': {'messageText': 'Bye!!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '1SUwsyqhM2sxzYPRqtiwhOrhQaY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTWJpal9Md2pPOENGWjBiclFZZEd1SUlwZxIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:21:30.540393+00:00', 'hasDisplayContent': True, 'displayMessage': 'Bye !', 'textMessageDetails': {'messageText': 'Bye !'}}}]
# Exception in thread Thread-280:
# Traceback (most recent call last):
#   File "C:\Python39\lib\threading.py", line 954, in _bootstrap_inner
#     self.run()
#   File "C:\Python39\lib\threading.py", line 1266, in run
#     self.function(*self.args, **self.kwargs)
#   File "C:\Users\isaac\Desktop\live-song-request-bot\main.py", line 119, in func_wrapper
#     func(live_chat_id)
#   File "C:\Users\isaac\Desktop\live-song-request-bot\main.py", line 79, in get_latest_message
#     word_list = message['snippet']['textMessageDetails']['messageText'].split(' ', 1)
# KeyError: 'textMessageDetails'
6f71c7ba9c09b9c3377ea6569da12292d5a56a44
<mask token>


def get_livechatid(token, url):
    youtube = token
    request = youtube.liveBroadcasts().list(part='snippet', id=url.split(
        '/')[-1])
    broadcast_response = request.execute()
    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']
    return live_chat_id


<mask token>


class SongRequest:

    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):
    global next_page_token
    youtube = token
    request = youtube.liveChatMessages().list(liveChatId=live_chat_id, part
        ='snippet', pageToken=next_page_token)
    live_chat_response = request.execute()
    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []
    print(next_page_token)
    print(messages_list)
    for message in messages_list:
        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'
                ].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)
        command = word_list[0]
        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]
            song_request = SongRequest(message['snippet']['authorChannelId'
                ], song_title)
            song_request_list.append(song_request)
            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)
            if len(song_request_list) > 0:
                request = youtube.channels().list(part='snippet', id=','.
                    join(channel_id_list))
                channels_response = request.execute()
                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']
                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')
                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")
    else:
        print('working but empty')
    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):

    def func_wrapper(live_chat_id):
        set_interval(func, sec)
        func(live_chat_id)
    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')
        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


<mask token>

<mask token>


def authorize():
    os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
    api_service_name = 'youtube'
    api_version = 'v3'
    client_secrets_file = 'client_secrets_file.json'
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    credentials = flow.run_console()
    return googleapiclient.discovery.build(api_service_name, api_version,
        credentials=credentials)


def get_livechatid(token, url):
    youtube = token
    request = youtube.liveBroadcasts().list(part='snippet', id=url.split(
        '/')[-1])
    broadcast_response = request.execute()
    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']
    return live_chat_id


<mask token>


class SongRequest:

    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):
    global next_page_token
    youtube = token
    request = youtube.liveChatMessages().list(liveChatId=live_chat_id, part
        ='snippet', pageToken=next_page_token)
    live_chat_response = request.execute()
    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []
    print(next_page_token)
    print(messages_list)
    for message in messages_list:
        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'
                ].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)
        command = word_list[0]
        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]
            song_request = SongRequest(message['snippet']['authorChannelId'
                ], song_title)
            song_request_list.append(song_request)
            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)
            if len(song_request_list) > 0:
                request = youtube.channels().list(part='snippet', id=','.
                    join(channel_id_list))
                channels_response = request.execute()
                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']
                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')
                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")
    else:
        print('working but empty')
    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):

    def func_wrapper(live_chat_id):
        set_interval(func, sec)
        func(live_chat_id)
    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')
        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


<mask token>

<mask token>


def authorize():
    os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
    api_service_name = 'youtube'
    api_version = 'v3'
    client_secrets_file = 'client_secrets_file.json'
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    credentials = flow.run_console()
    return googleapiclient.discovery.build(api_service_name, api_version,
        credentials=credentials)


def get_livechatid(token, url):
    youtube = token
    request = youtube.liveBroadcasts().list(part='snippet', id=url.split(
        '/')[-1])
    broadcast_response = request.execute()
    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']
    return live_chat_id


<mask token>


class SongRequest:

    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):
    global next_page_token
    youtube = token
    request = youtube.liveChatMessages().list(liveChatId=live_chat_id, part
        ='snippet', pageToken=next_page_token)
    live_chat_response = request.execute()
    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []
    print(next_page_token)
    print(messages_list)
    for message in messages_list:
        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'
                ].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)
        command = word_list[0]
        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]
            song_request = SongRequest(message['snippet']['authorChannelId'
                ], song_title)
            song_request_list.append(song_request)
            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)
            if len(song_request_list) > 0:
                request = youtube.channels().list(part='snippet', id=','.
                    join(channel_id_list))
                channels_response = request.execute()
                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']
                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')
                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")
    else:
        print('working but empty')
    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):

    def func_wrapper(live_chat_id):
        set_interval(func, sec)
        func(live_chat_id)
    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')
        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


if __name__ == '__main__':
    token = authorize()
    url = input(
        "Paste the url here: e.g 'https://www.youtube.com/watch?v=CDiInt5YJmk'"
        )
    live_chat_id = get_livechatid(token, url)
    set_interval(get_latest_message, bot_activate_interval)

<mask token>
scopes = ['https://www.googleapis.com/auth/youtube.readonly',
    'https://www.googleapis.com/auth/youtube']


def authorize():
    os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
    api_service_name = 'youtube'
    api_version = 'v3'
    client_secrets_file = 'client_secrets_file.json'
    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
        client_secrets_file, scopes)
    credentials = flow.run_console()
    return googleapiclient.discovery.build(api_service_name, api_version,
        credentials=credentials)


def get_livechatid(token, url):
    youtube = token
    request = youtube.liveBroadcasts().list(part='snippet', id=url.split(
        '/')[-1])
    broadcast_response = request.execute()
    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']
    return live_chat_id


next_page_token = ''
bot_activate_interval = 20


class SongRequest:

    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):
    global next_page_token
    youtube = token
    request = youtube.liveChatMessages().list(liveChatId=live_chat_id, part
        ='snippet', pageToken=next_page_token)
    live_chat_response = request.execute()
    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []
    print(next_page_token)
    print(messages_list)
    for message in messages_list:
        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'
                ].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)
        command = word_list[0]
        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]
            song_request = SongRequest(message['snippet']['authorChannelId'
                ], song_title)
            song_request_list.append(song_request)
            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)
            if len(song_request_list) > 0:
                request = youtube.channels().list(part='snippet', id=','.
                    join(channel_id_list))
                channels_response = request.execute()
                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']
                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')
                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")
    else:
        print('working but empty')
    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):

    def func_wrapper(live_chat_id):
        set_interval(func, sec)
        func(live_chat_id)
    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')
        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


if __name__ == '__main__':
    token = authorize()
    url = input(
        "Paste the url here: e.g 'https://www.youtube.com/watch?v=CDiInt5YJmk'"
        )
    live_chat_id = get_livechatid(token, url)
    set_interval(get_latest_message, bot_activate_interval)

# This is a sample Python script.

# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.

import os
import googleapiclient.discovery
import google_auth_oauthlib
import googleapiclient.errors
import threading
import csv

scopes = ["https://www.googleapis.com/auth/youtube.readonly",
          "https://www.googleapis.com/auth/youtube"]


def authorize():
    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

    api_service_name = "youtube"
    api_version = "v3"
    client_secrets_file = "client_secrets_file.json"

    flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(client_secrets_file, scopes)

    credentials = flow.run_console()

    return googleapiclient.discovery.build(api_service_name, api_version, credentials=credentials)


def get_livechatid(token, url):
    youtube = token

    request = youtube.liveBroadcasts().list(
        part='snippet',
        id=url.split('/')[-1]
    )

    broadcast_response = request.execute()

    print(broadcast_response['items'])
    live_chat_id = broadcast_response['items'][0]['snippet']['liveChatId']

    return live_chat_id

next_page_token = ''
bot_activate_interval = 20


class SongRequest:
    def __init__(self, author_id, song_title):
        self.author_id = author_id
        self.song_title = song_title
        self.name = None


def get_latest_message(live_chat_id):

    global next_page_token
    youtube = token

    request = youtube.liveChatMessages().list(
        liveChatId=live_chat_id,
        part="snippet",
        pageToken=next_page_token
    )

    live_chat_response = request.execute()

    messages_list = live_chat_response['items']
    channel_id_list = []
    song_request_list = []

    print(next_page_token)

    print(messages_list)
    for message in messages_list:

        if message['snippet']['type'] == 'textMessageEvent':
            word_list = message['snippet']['textMessageDetails']['messageText'].split(' ', 1)
        elif message['snippet']['type'] == 'superChatEvent':
            word_list = message['snippet']['userComment'].split(' ', 1)

        command = word_list[0]

        if command == '!request' and len(word_list) > 1:
            song_title = word_list[1]

            song_request = SongRequest(message['snippet']['authorChannelId'], song_title)
            song_request_list.append(song_request)

            for song_request in song_request_list:
                channel_id_list.append(song_request.author_id)

            if len(song_request_list) > 0:
                request = youtube.channels().list(
                    part='snippet',
                    id=','.join(channel_id_list)
                )

                channels_response = request.execute()

                for song_request in song_request_list:
                    for item in channels_response['items']:
                        if item['id'] == song_request.author_id:
                            song_request.name = item['snippet']['title']

                if len(word_list) > 1:
                    for song_request in song_request_list:
                        print(f'{song_request.song_title} is requested')

                    write_to_csv(song_request_list)
        else:
            print("It's a super chat event")

    else:
        print('working but empty')

    next_page_token = live_chat_response['nextPageToken']


def set_interval(func, sec):
    def func_wrapper(live_chat_id):
        set_interval(func,sec)
        func(live_chat_id)

    t = threading.Timer(sec, func_wrapper, args=[live_chat_id])
    t.start()
    return t


def write_to_csv(song_request_list):
    with open('./song_request.csv', 'a', newline='', encoding='utf-8') as f:
        writer = csv.writer(f, delimiter=',')

        for song_request in song_request_list:
            writer.writerow([song_request.song_title, song_request.name, 1])


if __name__ == '__main__':

    token = authorize()

    url = input("Paste the url here: e.g 'https://www.youtube.com/watch?v=CDiInt5YJmk'")
    live_chat_id = get_livechatid(token, url)

    set_interval(get_latest_message, bot_activate_interval)


# [{'kind': 'youtube#liveChatMessage',
#   'etag': 'SnwQ7nuB3GaZt6KnSG-kdLrIHog',
#   'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTEdLMmVIc2pPOENGYTAzclFZZGhLRUFSURIcQ0tHeHVzVFRqTzhDRlZFZnR3QWRtRm9HeUE3NQ',
#   'snippet': {
#       'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE',
#       'authorChannelId': 'UCtQDBCBadC3JEqqLWbbiTcw',
#       'publishedAt': '2021-02-28T15:03:02.348114+00:00',
#       'hasDisplayContent': True, 'displayMessage': '不过Nathan Hartono好像比赛时候唱过lemon tree',
#       'textMessageDetails': {'messageText': '不过Nathan Hartono好像比赛时候唱过lemon tree'}}},
#  {'kind': 'youtube#liveChatMessage',
#   'etag': 'RwwlXaI33X_j1_K3JEQPkoX4Ad8',
#   'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRIcChpDT3kzMk4zc2pPOENGWjBiclFZZEd1SUlwZw',
#   'snippet': {
#       'type': 'superChatEvent',
#       'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE',
#       'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg',
#       'publishedAt': '2021-02-28T15:03:07.822838+00:00',
#       'hasDisplayContent': True,
#       'displayMessage': 'SGD\xa010.00 from Linda Gui: "Since you sing this , I have no more excuse to not practice later hahahahhahaah"',
#       'superChatDetails': {'amountMicros': '10000000', 'currency': 'SGD', 'amountDisplayString': 'SGD\xa010.00', 'userComment': 'Since you sing this , I have no more excuse to not practice later hahahahhahaah', 'tier': 4}
#     }
#   },
#  {'kind': 'youtube#liveChatMessage', 'etag': '-s1TWCJJf9rICjsQeq5F_eOm-s8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTHIzOWVqc2pPOENGUWdUclFZZENud016URIcQ0tHeHVzVFRqTzhDRlZFZnR3QWRtRm9HeUE3Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCtQDBCBadC3JEqqLWbbiTcw', 'publishedAt': '2021-02-28T15:03:17.500888+00:00', 'hasDisplayContent': True, 'displayMessage': '我记得他穿着拖鞋在台上', 'textMessageDetails': {'messageText': '我记得他穿着拖鞋在台上'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'W35xcRid38igpKJnoHwCDaPm-f8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT0hNNk92c2pPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREExOA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:03:23.573906+00:00', 'hasDisplayContent': True, 'displayMessage': ':washhands::washhands::washhands:', 'textMessageDetails': {'messageText': ':washhands::washhands::washhands:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'yPVazEwTzb5rBc-jyjHzIAQh21w', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUGI1bnZIc2pPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2NA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:03:34.950197+00:00', 'hasDisplayContent': True, 'displayMessage': 'his mum is SVP of Tung Lok hahaha', 'textMessageDetails': {'messageText': 'his mum is SVP of Tung Lok hahaha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Sn6a-tEDHuBa9jQB0B9Gymz7_d8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI5ChpDS2Vna3Zic2pPOENGYWdEclFZZHQ1Z0UxURIbQ0piRjJvYnJqTzhDRmRuR1RBSWRoRHNON2cy', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCOCS0dfp90CrIP3bWXlcK2g', 'publishedAt': '2021-02-28T15:03:45.227853+00:00', 'hasDisplayContent': True, 'displayMessage': '雖互倫', 'textMessageDetails': {'messageText': '雖互倫'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'NaMsykqTox110MBkyonFYEdQyf8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSzYtc19mc2pPOENGUWdUclFZZENud016URIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2NQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:03:47.869529+00:00', 'hasDisplayContent': True, 'displayMessage': 'Soh Hui Lun', 'textMessageDetails': {'messageText': 'Soh Hui Lun'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3Ua9LgCZjDFu9xrSID9WyP57AZs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSzMybVlUdGpPOENGZVVPclFZZHdRa0V6URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0NjUzNjE4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:04:14.713681+00:00', 'hasDisplayContent': True, 'displayMessage': '👏👏👏👏👏👏👍👍👍👍', 'textMessageDetails': {'messageText': '👏👏👏👏👏👏👍👍👍👍'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'P6-dhGEwwvZPA6DX0iLLcrw8tpU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDS1dybG9idGpPOENGZVVPclFZZHdRa0V6URInQ043aTBhRHNqTzhDRlU3S2N3RWQ0RVVJd2cxNjE0NTI0NjU5MjA3', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:04:18.849226+00:00', 'hasDisplayContent': True, 'displayMessage': '!request my dear my friend', 'textMessageDetails': {'messageText': '!request my dear my friend'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'eoFTYJU7XaMT06zvCN_kr7lhebw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI5ChpDUEh0cm96dGpPOENGYTAzclFZZGhLRUFSURIbQ1BTTHVfdnNqTzhDRlJpTndnb2Q4SndFWkEw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCOCS0dfp90CrIP3bWXlcK2g', 'publishedAt': '2021-02-28T15:04:31.833883+00:00', 'hasDisplayContent': True, 'displayMessage': '框不住的愛', 'textMessageDetails': {'messageText': '框不住的愛'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '7gB2ciSMWLIluxfx3b3tm8XXeE0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBZeHBidGpPOENGUWdUclFZZENud016URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREExOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:04:53.195875+00:00', 'hasDisplayContent': True, 'displayMessage': '連名帶姓', 'textMessageDetails': {'messageText': '連名帶姓'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'r86bHYVO1ts-J2ibiI1cqpNNngE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTW1IczZUdGpPOENGYV9ad1FvZG5Dc0lpZxIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtNg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:05:22.234358+00:00', 'hasDisplayContent': True, 'displayMessage': '说散就散？', 'textMessageDetails': {'messageText': '说散就散？'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'mtQi9ZkTFsEyr3rAmvPLBrCTILw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS3JTMnFUdGpPOENGYWdEclFZZHQ1Z0UxURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:05:22.882891+00:00', 'hasDisplayContent': True, 'displayMessage': '唱一首情歌呼唤xueqi回来', 'textMessageDetails': {'messageText': '唱一首情歌呼唤xueqi回来'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'vDMSQoz0xsh1cKQgL8Y4AaM7I2o', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS19KczZydGpPOENGUzcyd1FvZHpFb0EtQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtNw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:05:34.825711+00:00', 'hasDisplayContent': True, 'displayMessage': '慢慢喜欢你？', 'textMessageDetails': {'messageText': '慢慢喜欢你？'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '25B2HLYWFU2bGqKE_fbYEtaZ3hY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTEx1eUtfdGpPOENGVWdfclFZZDFXSVBwURInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0NzQ0NTM5', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:05:45.660297+00:00', 'hasDisplayContent': True, 'displayMessage': '差不多姑娘', 'textMessageDetails': {'messageText': '差不多姑娘'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'GiFwig6DPntvJE0IdUzOaYYbwSY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS2EwcUxidGpPOENGZHNxclFZZDk3RU5xQRIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:05:59.808585+00:00', 'hasDisplayContent': True, 'displayMessage': '她生氣嚕', 'textMessageDetails': {'messageText': '她生氣嚕'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'T2vms8t9rlzsYnXOHurBXLu5as4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBLbGNmdGpPOENGVFRJd1FvZHRHVUdvQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtOA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:06:35.151732+00:00', 'hasDisplayContent': True, 'displayMessage': '邓紫棋 后会无期', 'textMessageDetails': {'messageText': '邓紫棋 后会无期'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'r4YNWVZhBw5sAiOvxczujQs0Shg', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS09aOGN6dGpPOENGVmJBd1FvZDZTME8tQRIcQ091RzBxSHRqTzhDRmNQNHRBb2RfZFFNQVEtOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:06:47.13851+00:00', 'hasDisplayContent': True, 'displayMessage': '后会无期好听呢', 'textMessageDetails': {'messageText': '后会无期好听呢'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'V7xH5XZ0lAzTBz64_zfqBtom7G4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT2F5OWRidGpPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2Nw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:07:08.178846+00:00', 'hasDisplayContent': True, 'displayMessage': '应景哦，@Xueqi.Stella 多远都要在一起', 'textMessageDetails': {'messageText': '应景哦，@Xueqi.Stella 多远都要在一起'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'J4HVMnkWi7OiA3cLmjgj6xBZKD8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSWFLbE9IdGpPOENGYWdEclFZZHQ1Z0UxURInQ0lXWS03enRqTzhDRlZQRmp3b2RHTWtLbmcxNjE0NTI0ODUwMzE1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:07:29.653047+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'pNnk84gqo7sc1QwE_YmjNX5KBrk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTS1hLS1udGpPOENGU00wclFZZEQyb0F6dxInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0ODY3MDEz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:07:48.119961+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '6Y4eSlRyqFYAFf4yiu88_3lfn0I', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS0tOai16dGpPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:07:52.640197+00:00', 'hasDisplayContent': True, 'displayMessage': '是 Eric P. 蠻應景的/下周再點好了', 'textMessageDetails': {'messageText': '是 Eric P. 蠻應景的/下周再點好了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'V-dGA7Pn5SdfUTaM-yDLSXTkAw4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDS1dvdHZ2dGpPOENGUk1uclFZZGZWOEhGQRInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI0OTAzNjMz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:08:24.73991+00:00', 'hasDisplayContent': True, 'displayMessage': ':elbowcough::elbowcough::elbowcough:', 'textMessageDetails': {'messageText': ':elbowcough::elbowcough::elbowcough:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'IDyHaJrwwz6WWo8gvkc-bcOFn-M', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTFd5b183dGpPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2OA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:08:30.721364+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis::yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis::yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'W0rOpn5ncL50L47F9Jmt3F8QVyU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVBwcElQdWpPOENGVndCclFZZEJYQUtpQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE2OQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:08:41.230569+00:00', 'hasDisplayContent': True, 'displayMessage': '有一点高', 'textMessageDetails': {'messageText': '有一点高'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'DGmfAZkagVtp3kQKY3DnCIV3nng', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTFNvbUxidWpPOENGU00wclFZZEQyb0F6dxInQ0pPdGpjampqTzhDRlVjbWp3b2R3X0VEb3cxNjE0NTI1MDI2OTM5', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:10:27.980435+00:00', 'hasDisplayContent': True, 'displayMessage': ':yougotthis::yougotthis::yougotthis:', 'textMessageDetails': {'messageText': ':yougotthis::yougotthis::yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'WZUk76mmNDoqe3tMMpTlEKC0XJs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS0tRNHJudWpPOENGWjBiclFZZEd1SUlwZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3MA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:10:35.481157+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho chosen the song already anot? haha', 'textMessageDetails': {'messageText': '@Ron Ho chosen the song already anot? haha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'p0GsNEnof0xJC0Vm44hiYDFajzU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTHUzNk1EdWpPOENGYTAzclFZZGhLRUFSURIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:10:50.264536+00:00', 'hasDisplayContent': True, 'displayMessage': '太棒了 太棒了', 'textMessageDetails': {'messageText': '太棒了 太棒了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3P-hCrwLkjLXkPesN87mbvrChrg', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTk9Yb01YdWpPOENGUWdUclFZZENud016URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI1MDU4NDU2', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:10:59.566583+00:00', 'hasDisplayContent': True, 'displayMessage': '👍👏👍👏👍👏👍👏👍👏👍👏', 'textMessageDetails': {'messageText': '👍👏👍👏👍👏👍👏👍👏👍👏'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'C4aaik42BHPNSH08pMwNUEWS6-s', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUExrNzhqdWpPOENGYTAzclFZZGhLRUFSURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EyOQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:11:07.162261+00:00', 'hasDisplayContent': True, 'displayMessage': '👏👏👏👏👏👏', 'textMessageDetails': {'messageText': '👏👏👏👏👏👏'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'da1NbV2BYQjU5OOEGyX2NNRo_cs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTzJEbmN2dWpPOENGUk1uclFZZGZWOEhGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3MQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:11:12.097809+00:00', 'hasDisplayContent': True, 'displayMessage': 'chosen a song to practise, haha', 'textMessageDetails': {'messageText': 'chosen a song to practise, haha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'GYgD3xGIgOSfXjJSSxtGXzPv8oI', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVhac05mdWpPOENGU00wclFZZEQyb0F6dxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Mg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:11:37.585934+00:00', 'hasDisplayContent': True, 'displayMessage': 'still not yet leh', 'textMessageDetails': {'messageText': 'still not yet leh'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '39a85uqjHZAvQ7e7edmcg66QYEQ', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSVRzOHRqdWpPOENGUWdUclFZZENud016URInQ0xxZzdNWHVqTzhDRlVPN2p3b2RWLU1DRVExNjE0NTI1MTAxNDI4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:11:40.766752+00:00', 'hasDisplayContent': True, 'displayMessage': '女人花', 'textMessageDetails': {'messageText': '女人花'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'vKxCR1Bq1N6Y8HPI1xEo-KyRJS0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUGU1d3VfdWpPOENGVllfclFZZDBhSU1tZxInQ0l1OXFZWHVqTzhDRlFfOGp3b2RCUEFKSWcxNjE0NTI1MTQ2ODkz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:12:28.208423+00:00', 'hasDisplayContent': True, 'displayMessage': '学习宇哥的飞鸟和cha', 'textMessageDetails': {'messageText': '学习宇哥的飞鸟和cha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Jfmh5cvkZk7SLDPS2SX5oZxq1yU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSnUzMnZEdWpPOENGUWdUclFZZENud016URInQ0stenQ0RHFqTzhDRlpNRllBb2RzQm9PZ0ExNjE0NTI1MTQ5NTk1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCzyccCO9R-XyRJM1F8ZqcZg', 'publishedAt': '2021-02-28T15:12:30.698426+00:00', 'hasDisplayContent': True, 'displayMessage': '謝謝你掰掰:yougotthis:', 'textMessageDetails': {'messageText': '謝謝你掰掰:yougotthis:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'T2gaUiTbJAuG-nJHZre7kGoKsEY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTGUza2ZqdWpPOENGUk1uclFZZGZWOEhGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:12:46.279641+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho 好哦', 'textMessageDetails': {'messageText': '@Ron Ho 好哦'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'BuaACCNsmYXo0lfEmY_zeU3z2Ag', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTVN2c1lidmpPOENGZHNxclFZZDk3RU5xQRIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyMw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:13:16.163055+00:00', 'hasDisplayContent': True, 'displayMessage': '太好了!', 'textMessageDetails': {'messageText': '太好了!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'MNaR77QRC8zYYhtoOq8fO9zawnU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTG5jb3IzdmpPOENGWjBiclFZZEd1SUlwZxIcQ1B5U3E1M1VqTzhDRmVLUjVnb2Q3YzRQdEE3Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCEvMyQHsqE2jE9dIfrvJmzw', 'publishedAt': '2021-02-28T15:15:11.266405+00:00', 'hasDisplayContent': True, 'displayMessage': 'yes yes', 'textMessageDetails': {'messageText': 'yes yes'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '1-CAXWxzTMcNvfiAreoiRTH34a8', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUExQejhUdmpPOENGUk1uclFZZGZWOEhGQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1MzI1MzQz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:15:26.682133+00:00', 'hasDisplayContent': True, 'displayMessage': 'good to hear good news', 'textMessageDetails': {'messageText': 'good to hear good news'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'KagxazbXrBeLiGbckZPDti4RtP4', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSTZxNHN6dmpPOENGUkVYZlFvZE84SUpGQRIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:15:43.765848+00:00', 'hasDisplayContent': True, 'displayMessage': 'Ok ... at least some good news', 'textMessageDetails': {'messageText': 'Ok ... at least some good news'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'wjpKDrUu38GDXuibZADp5M1pYDY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTlhOOU0zdmpPOENGZVVPclFZZHdRa0V6URIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3NA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:15:46.162428+00:00', 'hasDisplayContent': True, 'displayMessage': "yes it's a good news! rejoice!", 'textMessageDetails': {'messageText': "yes it's a good news! rejoice!"}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'sT25C6vP5rRw8zZMU-esDluT4jc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUEdTcmREdmpPOENGWjBiclFZZEd1SUlwZxInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1MzQ5OTUw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:15:51.2831+00:00', 'hasDisplayContent': True, 'displayMessage': '要去看什么歌下架了', 'textMessageDetails': {'messageText': '要去看什么歌下架了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'DS4qPKWjj_bsoNWYYeNx60IMTNM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmVvMmRQdmpPOENGYTAzclFZZGhLRUFSURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:15:58.298163+00:00', 'hasDisplayContent': True, 'displayMessage': 'nvm Isaac ..', 'textMessageDetails': {'messageText': 'nvm Isaac ..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'ry90Ogi_XZEQoklzeJ4UPw5aywU', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTVdicC1fdmpPOENGUk1uclFZZGZWOEhGQRInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NDE1Mjg4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:16:56.197617+00:00', 'hasDisplayContent': True, 'displayMessage': '等你的原创~~', 'textMessageDetails': {'messageText': '等你的原创~~'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'svMA0XxlsfK6nUyBH7PzO3ndF5U', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmlHNXZqdmpPOENGYWdEclFZZHQ1Z0UxURIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:17:16.101441+00:00', 'hasDisplayContent': True, 'displayMessage': 'do you know this platform known as Streetvoice ?', 'textMessageDetails': {'messageText': 'do you know this platform known as Streetvoice ?'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'xfpl9OZpb4_PgUQ-TAuLilbkdxk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTEQycWZudmpPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3NQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:17:17.213533+00:00', 'hasDisplayContent': True, 'displayMessage': '又经历一件事，又level up liao~', 'textMessageDetails': {'messageText': '又经历一件事，又level up liao~'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'cKpD4vjIBhYOcCxqMNG41x6ZIpM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUERZNGZfdmpPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzMw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:17:30.710162+00:00', 'hasDisplayContent': True, 'displayMessage': 'its also a music sharing platform ..', 'textMessageDetails': {'messageText': 'its also a music sharing platform ..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Obi7mpNS_5fxeLi607M3mG0TAtk', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSXkxMG9Md2pPOENGUk1uclFZZGZWOEhGQRInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NDU3Mzkz', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:17:36.751285+00:00', 'hasDisplayContent': True, 'displayMessage': '加油', 'textMessageDetails': {'messageText': '加油'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'VjnRKEVh6KCYoKECAb4UJrkIfH0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSm52bzRmd2pPOENGVndCclFZZEJYQUtpQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1NDY1MTM2', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:17:46.474443+00:00', 'hasDisplayContent': True, 'displayMessage': 'can make mv put on youtube.. we can be your logistic support...', 'textMessageDetails': {'messageText': 'can make mv put on youtube.. we can be your logistic support...'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'dxB1vd-RxQZdUaP2TrGn3cHqPws', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT0xVMTRyd2pPOENGWjBiclFZZEd1SUlwZxIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyNA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:17:53.614475+00:00', 'hasDisplayContent': True, 'displayMessage': '加油加油加油!', 'textMessageDetails': {'messageText': '加油加油加油!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'wIZ-K0YozW6K8ac2xOwvwGyB5iw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDSmp1bDVId2pPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:18:07.249209+00:00', 'hasDisplayContent': True, 'displayMessage': '現在可以比較安心了', 'textMessageDetails': {'messageText': '現在可以比較安心了'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'yxd2wRJcqj3ky7thKrYM1XR5kUs', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTFRNd1pUd2pPOENGVWdfclFZZDFXSVBwURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Ng', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:18:14.224506+00:00', 'hasDisplayContent': True, 'displayMessage': '@Ron Ho +1. we can be kelefeh', 'textMessageDetails': {'messageText': '@Ron Ho +1. we can be kelefeh'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'VdJTVbRXWMqmk5Jh2YI1kNE4ABE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1NRcHFyd2pPOENGZHNxclFZZDk3RU5xQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3Nw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:18:59.911809+00:00', 'hasDisplayContent': True, 'displayMessage': '飞鸟和cha', 'textMessageDetails': {'messageText': '飞鸟和cha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'AeEeNxd6VeRCS4elgDQrrVv717c', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTHplaHF2d2pPOENGUkVYZlFvZE84SUpGQRInQ1BmRm1iUHZqTzhDRmFYbWN3RWRfQkVBUncxNjE0NTI1NTQwMTc1', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCNDm7N8ajNcukEveTST_g-w', 'publishedAt': '2021-02-28T15:19:01.494623+00:00', 'hasDisplayContent': True, 'displayMessage': 'we can hold mic boom.. bring fan bring water..', 'textMessageDetails': {'messageText': 'we can hold mic boom.. bring fan bring water..'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Z4GX2Tsh_pXM7hUmiu1tj_Env3k', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDUFQyMEt2d2pPOENGVllfclFZZDBhSU1tZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3OA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:02.710185+00:00', 'hasDisplayContent': True, 'displayMessage': 'hahahaha', 'textMessageDetails': {'messageText': 'hahahaha'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'G8IaxQLEzWNEjg9mZZtHIk_05lQ', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTzIyXzdEd2pPOENGUkVYZlFvZE84SUpGQRIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE3OQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:13.957776+00:00', 'hasDisplayContent': True, 'displayMessage': 'yes!!!', 'textMessageDetails': {'messageText': 'yes!!!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'bE07Ajv_Ha2Z6-ZjyPTUpvqg98w', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSXFBbzdYd2pPOENGUWdUclFZZENud016URInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NTYzNTcw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:19:22.929223+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安吧', 'textMessageDetails': {'messageText': '晚安吧'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'sqHJaKFtlLnF9Szl74M1w6ju4wc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1djMTdid2pPOENGUk1uclFZZGZWOEhGQRIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:19:25.88201+00:00', 'hasDisplayContent': True, 'displayMessage': 'Thanks Isaac for sharing !', 'textMessageDetails': {'messageText': 'Thanks Isaac for sharing !'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'PUQLWPqPrqNH920yVwqv96LSMBw', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTTJvdmJqd2pPOENGYTAzclFZZGhLRUFSURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4MA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:29.651837+00:00', 'hasDisplayContent': True, 'displayMessage': 'everybody good month ahead k! March is an awesome month! 🙂', 'textMessageDetails': {'messageText': 'everybody good month ahead k! March is an awesome month! 🙂'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'D98yB1iUcYObvtn6TzFVzM4bmXE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI7ChpDT3JMMGJyd2pPOENGVFRJd1FvZHRHVUdvQRIdQ08tVjhyandqTzhDRllxZ1VRb2RqV0lHVkEtMTA', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCWxeeoTNHZy-HfG9KVOSEDw', 'publishedAt': '2021-02-28T15:19:34.17833+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安咯', 'textMessageDetails': {'messageText': '晚安咯'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'ImPfZIuaIUdJUMSavOoyOIchpRY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDUE9waXJ6d2pPOENGVXdYclFZZERrMEVaZxInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NTc2Mjkw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:19:37.205053+00:00', 'hasDisplayContent': True, 'displayMessage': '飞鸟喝茶？ 哈哈哈哈', 'textMessageDetails': {'messageText': '飞鸟喝茶？ 哈哈哈哈'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'Uy7klbqmCq5Xm8wjlBv5lc7bIUc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTXpscUxfd2pPOENGZVVPclFZZHdRa0V6URIcQ01UeWpPUG5qTzhDRmNWNml3b2RHMEFLREEyNQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UC_ZGLFY7hPWtfxiASa97arw', 'publishedAt': '2021-02-28T15:19:43.995642+00:00', 'hasDisplayContent': True, 'displayMessage': '大家晚安安 @_@ 下周見嚕', 'textMessageDetails': {'messageText': '大家晚安安 @_@ 下周見嚕'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '3KO2pOPSsQeuJna5VZkJK5GoXoM', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT1N4N2Jfd2pPOENGUWdUclFZZENud016URIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:19:45.119499+00:00', 'hasDisplayContent': True, 'displayMessage': 'Take care yah and goodnight everyone !', 'textMessageDetails': {'messageText': 'Take care yah and goodnight everyone !'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '4vzzYa1IqdIdBvTi955NaQ18aRA', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTWVyeDhUd2pPOENGVXdYclFZZERrMEVaZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4MQ', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:19:54.981875+00:00', 'hasDisplayContent': True, 'displayMessage': '晚安！', 'textMessageDetails': {'messageText': '晚安！'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'M-aWSjlUDYxihlo3VLkaA3fxaKo', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDTXFpNGNmd2pPOENGUWdUclFZZENud016URInQ0xDUHRlWHVqTzhDRlZUUmp3b2RyMlFNRFExNjE0NTI1NjAwODEy', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCUntXRCpan7ENPqFiQZ424g', 'publishedAt': '2021-02-28T15:20:01.69816+00:00', 'hasDisplayContent': True, 'displayMessage': '大家晚安~ have a great week ahead everybody & thanks 宇哥 for the nice songs as always. ⛽加油，一切都会顺利的:goodvibes:', 'textMessageDetails': {'messageText': '大家晚安~ have a great week ahead everybody & thanks 宇哥 for the nice songs as always. ⛽加油，一切都会顺利的:goodvibes:'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'kF2uxXqZRHFcqAKTlR-92KuOFm0', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDS2I1dWMzd2pPOENGVWdfclFZZDFXSVBwURIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4Mg', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:20:13.636844+00:00', 'hasDisplayContent': True, 'displayMessage': 'fly bird yumcha.', 'textMessageDetails': {'messageText': 'fly bird yumcha.'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '7Yd54pD4u44GtcN-7w9i_7bsLUc', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRJFChpDSWpjdGREd2pPOENGVWdfclFZZDFXSVBwURInQ1BXV292YnZqTzhDRlFsTWp3b2Q5bmNQancxNjE0NTI1NjIwNDg4', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCG5TLLGZAdt82jfiDTYEw7g', 'publishedAt': '2021-02-28T15:20:19.859007+00:00', 'hasDisplayContent': True, 'displayMessage': 'bye 👋', 'textMessageDetails': {'messageText': 'bye 👋'}}}, {'kind': 'youtube#liveChatMessage', 'etag': 'OtcJGeAVCENXp2QNbg9FXudTIJE', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDT2JVdHVud2pPOENGVllfclFZZDBhSU1tZxIcQ0tTbnFJSGdqTzhDRlcwS3R3QWRqdjRLTlE4Mw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCIgYx7aH7_XwlzYq3SFafCA', 'publishedAt': '2021-02-28T15:21:12.30324+00:00', 'hasDisplayContent': True, 'displayMessage': 'Bye!!', 'textMessageDetails': {'messageText': 'Bye!!'}}}, {'kind': 'youtube#liveChatMessage', 'etag': '1SUwsyqhM2sxzYPRqtiwhOrhQaY', 'id': 'LCC.CikqJwoYVUNyTnJOWHBHR2JkZ2FwSHV5ZmR1Znp3Egt3RzV3dmZXREFiQRI6ChpDTWJpal9Md2pPOENGWjBiclFZZEd1SUlwZxIcQ05hTndPM2pqTzhDRlpneXR3QWRPVUFES1EzNw', 'snippet': {'type': 'textMessageEvent', 'liveChatId': 'KicKGFVDck5yTlhwR0diZGdhcEh1eWZkdWZ6dxILd0c1d3ZmV0RBYkE', 'authorChannelId': 'UCM2bYa0i0YEzAgopbZSY-Tg', 'publishedAt': '2021-02-28T15:21:30.540393+00:00', 'hasDisplayContent': True, 'displayMessage': 'Bye !', 'textMessageDetails': {'messageText': 'Bye !'}}}]
# Exception in thread Thread-280:
# Traceback (most recent call last):
#   File "C:\Python39\lib\threading.py", line 954, in _bootstrap_inner
#     self.run()
#   File "C:\Python39\lib\threading.py", line 1266, in run
#     self.function(*self.args, **self.kwargs)
#   File "C:\Users\isaac\Desktop\live-song-request-bot\main.py", line 119, in func_wrapper
#     func(live_chat_id)
#   File "C:\Users\isaac\Desktop\live-song-request-bot\main.py", line 79, in get_latest_message
#     word_list = message['snippet']['textMessageDetails']['messageText'].split(' ', 1)
# KeyError: 'textMessageDetails'