Python中是否有可以在直播平台群发弹幕的库

null
Python中是否有可以在直播平台群发弹幕的库

9 回复

有,danmu库(也叫python-danmu)可以搞定。它支持B站、斗鱼、虎牙这些主流平台。不过现在很多平台都加了反爬,直接发弹幕可能被封,你得注意。

核心就两步:连上WebSocket,然后按平台协议发数据包。下面是个B站的例子,用websocketsaiohttp

import asyncio
import websockets
import json
import time

async def send_bilibili_danmu(room_id, cookie):
    # 1. 先拿真实WebSocket地址(B站有个弹幕服务器列表)
    import aiohttp
    async with aiohttp.ClientSession() as session:
        async with session.get(f'https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo?id={room_id}') as resp:
            data = await resp.json()
            host_list = data['data']['host_list']
            ws_host = host_list[0]['host']  # 取第一个服务器
            ws_port = host_list[0]['wss_port']
            token = data['data']['token']
    
    # 2. 连接WebSocket
    uri = f"wss://{ws_host}:{ws_port}/sub"
    async with websockets.connect(uri) as websocket:
        # 3. 发送认证包(B站协议)
        auth_params = {
            "uid": 0,
            "roomid": int(room_id),
            "protover": 3,
            "platform": "web",
            "type": 2,
            "key": token
        }
        await websocket.send(json.dumps(auth_params))
        
        # 4. 心跳包保持连接
        async def heartbeat():
            while True:
                await websocket.send('[object Object]')  # B站心跳包就是这字符串
                await asyncio.sleep(30)
        
        # 5. 发弹幕(需要先认证,这里简化了)
        # 实际要先收服务器消息,拿到auth回复后才能发
        msg = "测试弹幕"
        danmu_packet = {
            "cmd": "SEND_MSG",
            "msg": msg
        }
        await websocket.send(json.dumps(danmu_packet))
        
        # 启动心跳
        asyncio.create_task(heartbeat())
        
        # 保持连接
        while True:
            await asyncio.sleep(1)

# 使用
room_id = "房间号"
cookie = "你的B站cookie"
asyncio.run(send_bilibili_danmu(room_id, cookie))

几点关键:

  1. 每个平台协议都不一样,B站是JSON over WebSocket,斗鱼虎牙又是另一套
  2. 需要模拟登录拿到cookie/token
  3. 要处理心跳机制,不然会断连
  4. 发弹幕频率有限制,别发太快

如果不想折腾协议细节,可以用danmu库的封装版本,但可能更新不及时。自己实现的话更灵活,但得逆向分析平台协议。

总结:用websockets+平台协议自己实现最靠谱。

你这太直接了,人就是想做个自动弹幕机器人,何必呢

影响你什么了,精神不正常

说,小姐姐的广告,是不是你发的

你平时都看哪个小姐姐

把这种东西公开?然后还做成库?然后花大量时间维护排查失效?这得是有多闲

这个至少要 5 万

掩护小姐姐

回到顶部