每个大主播都是满屏弹幕,怎么做到的?Python实战无限刷弹幕!

danmu 是一个开源的直播平台弹幕接口,使用他没什么基础的你也可以轻松的操作各平台弹幕。使用不到三十行代码,你就可以使用Python基于弹幕进一步开发。支持斗鱼、熊猫、战旗、全民、Bilibili多平台弹幕。支持各版本Python,无平台依赖,方便各类开发者、爱好者使用。一次开启,主播上线自动连接,下线后上线自动重连。

给喜欢的主播来个爱的轰炸。

经过深度优化,几乎不漏过任何一条弹幕;使用抽象构架,方便修改与开发。

Documents

你可以在官网获取使用帮助。

Installation

可以通过本命令安装 danmu:

pip install danmu

Simple uses

通过如下代码,可以初步通过Python对弹幕进行处理。

import time, sysfrom danmu import DanMuClientdef pp(msg): print(msg.encode(sys.stdin.encoding, 'ignore'). decode(sys.stdin.encoding))dmc = DanMuClient('http://www.douyu.com/lslalala')if not dmc.isValid(): print('Url not valid')@dmc.danmudef danmu_fn(msg): pp('[%s] %s' % (msg['NickName'], msg['Content']))@dmc.giftdef gift_fn(msg): pp('[%s] sent a gift!' % msg['NickName'])@dmc.otherdef other_fn(msg): pp('Other message received')dmc.start(blockThread = True)

Screenshot

Advanced uses

设置默认的消息处理方式

消息被分为三种类型注册:danmu, gift, other

分别对应:普通弹幕,礼物消息,其他消息

如果某种类型没有注册过,将会使用默认方法,默认方法的注册方式如下:

from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')@dmc.defaultdef default_fn(msg): pp('[%s] %s' % (msg['NickName'], msg['Content']))

取消已经注册过的方法

通过以下方式可以取消某一种类型的注册。

from danmu import DanMuClientdmc = DanMuClient('斗鱼网页')dmc.default(None)dmc.gift(None)

FAQ

Q: 获取的消息格式都是什么?

A: 消息为一个字典,必有三个键:NickName、Content、MsgType,对应用户名、消息内容、消息类型。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180607A22UWE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券