import asyncio from TikTokLive import TikTokLiveClient from TikTokLive.client.logger import LogLevel from TikTokLive.events import ConnectEvent, GiftEvent client: TikTokLiveClient = TikTokLiveClient( unique_id="@tv_asahi_news" ) # 加入直播间 @client.on(JoinEvent) async def on_join(event: JoinEvent) -> None: client.logger.info(f"User {event.user.unique_id} joined the live room!") print(f"User {event.user.unique_id} joined the live room!") # You can also access the user object directly # print(event.user) # 点赞 @client.on(LikeEvent) async def on_like(event: LikeEvent) -> None: client.logger.info(f"Received {event.like_count} likes from {event.user.unique_id}!") print(f"Received {event.like_count} likes from {event.user.unique_id}!") # You can also access the user object directly # print(event.user) # 监听礼物打赏 @client.on(GiftEvent) async def on_gift(event: GiftEvent): client.logger.info("Received a gift!") # Can have a streak and streak is over if event.gift.streakable and not event.streaking: print(f"{event.user.unique_id} sent {event.repeat_count}x \"{event.gift.name}\"") # Cannot have a streak elif not event.gift.streakable: print(f"{event.user.unique_id} sent \"{event.gift.name}\"") # 检查用户直播是否在线 @client.on(ConnectEvent) async def on_connect(event: ConnectEvent): client.logger.info(f"Connected to @{event.unique_id}!") print(f"Connected to @{event.unique_id}!") async def check_loop(): # Run 24/7 while True: # Check if they're live while not await client.is_live(): client.logger.info("Client is currently not live. Checking again in 60 seconds.") await asyncio.sleep(60) # Spamming the endpoint will get you blocked # Connect once they become live client.logger.info("Requested client is live!") await client.connect() if __name__ == '__main__': client.logger.setLevel(LogLevel.INFO.value) asyncio.run(check_loop()) # Set the login session ID token BEFORE connecting # client.web.set_session("session-id-here") # Connect client.run()