Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pandaGao/bilibili-live
A Node.js Toolkit for Bilibili live service. Bilibili直播相关工具包
https://github.com/pandaGao/bilibili-live
bilibili bilibili-live
Last synced: about 2 months ago
JSON representation
A Node.js Toolkit for Bilibili live service. Bilibili直播相关工具包
- Host: GitHub
- URL: https://github.com/pandaGao/bilibili-live
- Owner: pandaGao
- License: mit
- Created: 2017-01-26T04:14:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-08-26T07:57:39.000Z (over 1 year ago)
- Last Synced: 2024-10-20T03:12:07.437Z (about 2 months ago)
- Topics: bilibili, bilibili-live
- Language: JavaScript
- Homepage:
- Size: 554 KB
- Stars: 68
- Watchers: 4
- Forks: 10
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-bilibili-extra - Bilibili-live - Bilibili 直播相关工具包.![JavaScript](svg/javascript.svg?raw=true) (开发 / 直播脚本)
README
# Bilibili live
![Node.js Package](https://github.com/pandaGao/bilibili-live/workflows/Node.js%20Package/badge.svg)
[![npm version](https://badge.fury.io/js/bilibili-live.svg)](https://badge.fury.io/js/bilibili-live)
[![npm](https://img.shields.io/npm/dw/localeval.svg)](https://www.npmjs.com/package/bilibili-live)
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)
[![gitmoji](https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67.svg)](https://gitmoji.carloscuesta.me)A Node.js Toolkit for Bilibili Live
## Install
```bash
npm install bilibili-live --save
```## Docs
### DanmakuService
监听直播间消息的服务
```javascript
import { DanmakuService } from 'bilibili-live'
new DanmakuService({ options })
```
#### Options
| 属性 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| roomId | Number | - | `必需` 直播间真实ID (非短位ID) |
| userId | Number | 随机值 | 用户ID |#### Usage
```javascript
import { DanmakuService } from 'bilibili-live'new DanmakuService({
roomId: 92052
}).connect()
.on('open', () => {
console.log('正在连接至弹幕服务器')
})
.on('data', (msg) => {
// msg结构参见下方文档说明
if (msg.op === 'AUTH_REPLY') {
console.log('成功连接至弹幕服务器')
} else {
console.log(msg)
}
})
.on('close', () => {
console.log('已断开与弹幕服务器的连接')
})
.on('error', () => {
console.log('与弹幕服务器的连接出现错误')
})
}
```### 消息结构
```javascript
{
op: '...' // 可能的取值: AUTH_REPLY, HEARTBEAT_REPLY, SEND_SMS_REPLY
...
}
```#### 鉴权包回复消息
```javascript
{ op: 'AUTH_REPLY' }
```#### 心跳包回复消息
```javascript
{
op: 'HEARTBEAT_REPLY',
online: 21066 // 房间人气值
}
```#### 弹幕消息
```javascript
{
op: 'SEND_SMS_REPLY',
...
}// 示例消息
{
cmd: 'INTERACT_WORD',
data: {
uid: 1326986,
uname: '清古',
uname_color: '',
identities: [ 1 ],
msg_type: 1,
roomid: 92052,
timestamp: 1596879220,
score: 1596868220864411100
},
op: 'SEND_SMS_REPLY'
}
```### Client
HTTP请求客户端
```javascript
import { Client } from 'bilibili-live'let client = new Client({ options })
```
#### Options| 属性 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| cookie | String | - | `必需` 用户Cookie |
| userAgent | String | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36 | 请求UA |
| referer | String | https://live.bilibili.com | 请求referer |`Client` uses [got](https://github.com/sindresorhus/got) as HTTP client internally. See [got](https://github.com/sindresorhus/got)'s document for request options
#### getCSRFToken()
Return `csrf token` in cookie#### get(url, [options])
Returns a Promise with `text` response```javascript
client.get('https://live.bilibili.com').then(res => {
console.log(res) // html string
})
```#### getJSON(url, [options])
Returns a Promise with `json` response```javascript
client.get('https://api.bilibili.com/nav').then(res => {
console.log(res) // json response
})
```#### post(url, [options])
Returns a Promise with `json` response```javascript
client.get('https://api.live.bilibili.com/ajax/msg', {
form: {
roomid: 92052
}
}).then(res => {
console.log(res) // json response
})
```## License
MIT