Skip to content

shanmiteko/wsBiliLiveComment

Repository files navigation

BiliBili 直播间信息流

包括评论, 醒目留言, 入场信息, 投喂送礼, 全区礼物广播, 总榜排行, 人气值等

展示信息

全局安装

$ npm i bili-live-comment-ws -g

使用

$ danmaku

更新

$ npm upgrade -g

卸载

$ npm uninstall bili-live-comment-ws -g

原理

初始化

GET https://api.live.bilibili.com/xlive/web-room/v1/index/getDanmuInfo

获取所需的参数

HostList WebSocket主机列表
key 身份验证

连接至WebSocket服务器

解码数据

直播间WebSocket传输数据格式

Packet Header Format

 0                   1           
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  PL   |HL |PV |  Op   |Seq ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
|             Data              |
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


PL:  4 Bytes

  Packet Length


HL:  2 Bytes

  Header Length

    16 - HEADER_TOTAL_LENGTH


PV:  2 Bytes

  Protocol Version
  
    1 - HEADER_DEFAULT_VERSION
    0 - BODY_PROTOCOL_VERSION_NORMAL
    2 - BODY_PROTOCOL_VERSION_DEFLATE


Op:  4 Bytes

  Operation

    1 - HEADER_DEFAULT_OPERATION
    2 - HEARTBEAT
    3 - HEARTBEAT_REPLY
    5 - MESSAGE
    7 - USER_AUTHENTICATION
    8 - CONNECT_SUCCESS


Seq ID:  4 Bytes

  Sequence Id

    1 - HEADER_DEFAULT_SEQUENCE


Data: ANY Bytes

  if PV = 0 then Data is utf-8 encoded format json string
  if PV = 2 then Data is Gzip(deflate)
    Unzip: Data -> Header0 + Data0 + Header1 + Data1 + ...
      Here, in header(n) the value of the PV field is 0

About

命令行直播弹幕显示(弹幕流ws处理库)

Resources

Stars

Watchers

Forks

Packages

No packages published