# -*- coding: utf-8 -*- import asyncio import blivedm class MyBLiveClient(blivedm.BLiveClient): # 演示如何自定义handler _COMMAND_HANDLERS = blivedm.BLiveClient._COMMAND_HANDLERS.copy() async def __on_vip_enter(self, command): print(command) _COMMAND_HANDLERS['WELCOME'] = __on_vip_enter # 老爷入场 async def _on_receive_popularity(self, popularity: int): print(f'当前人气值:{popularity}') async def _on_receive_danmaku(self, danmaku: blivedm.DanmakuMessage): print(f'{danmaku.uname}:{danmaku.msg}') async def _on_receive_gift(self, gift: blivedm.GiftMessage): print(f'{gift.uname} 赠送{gift.gift_name}x{gift.num} ({gift.coin_type}币x{gift.total_coin})') async def _on_buy_guard(self, message: blivedm.GuardBuyMessage): print(f'{message.username} 购买{message.gift_name}') async def _on_super_chat(self, message: blivedm.SuperChatMessage): print(f'醒目留言 ¥{message.price} {message.uname}:{message.message}') async def main(): # 直播间ID的取值看直播间URL # 如果SSL验证失败就把ssl设为False,B站真的有过忘续证书的情况 client = MyBLiveClient(room_id=21449083, ssl=True) future = client.start() try: # 5秒后停止,测试用 # await asyncio.sleep(5) # future = client.stop() await future finally: await client.close() if __name__ == '__main__': asyncio.get_event_loop().run_until_complete(main())