UniBarrage 是一款开源的高性能实时代理工具,专为开发者设计,旨在统一多平台(如抖音、哔哩哔哩、快手、斗鱼、虎牙)直播弹幕数据的采集、解析和转发。通过标准化的 WebSocket 消息协议和灵活的 API 接口,UniBarrage 将分散的多平台弹幕数据统一为一致的格式,帮助开发者更高效地构建跨平台互动功能。
- 多平台支持 🖥️:同时兼容多种主流直播平台,无需针对不同平台重复开发。
- 实时性强 ⚡:通过高性能 WebSocket 提供毫秒级延迟的弹幕转发服务。
- 统一数据结构 🔄:简化开发者工作,轻松实现跨平台互动功能。
- 灵活扩展性 🔧:支持多种启动参数和 API 调用,满足不同场景的定制化需求。
- 小巧的二进制体积 📦:高度优化的代码,编译后的二进制文件 ≈ 7MB ,便于分发和部署。
- 100% 不丢失弹幕消息 🛡️:得益于 Go 的通道机制和高性能队列,确保每条弹幕都能被安全、高效地处理和转发。
- 开源与社区支持 🌍:完全开源,拥有活跃的社区支持,开发者可轻松贡献或扩展功能。
UniBarrage 不仅适用于个人开发者快速构建项目,也为团队协作提供了一个稳定、可靠的基础设施,助力直播生态的创新发展。无论是实现跨平台弹幕墙、智能弹幕分析,还是与观众实时互动,UniBarrage 都是您的得力助手。
UniBarrage 是一个帮助开发者统一处理多平台直播弹幕数据的工具,支持高性能实时代理及标准化转发。
- 支持平台: 抖音、哔哩哔哩、快手、斗鱼、虎牙
- 核心功能: 统一格式的 WebSocket 消息流和灵活的 API 接口
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
-wsHost |
string |
127.0.0.1 |
WebSocket 服务的主机地址 |
-wsPort |
int |
7777 |
WebSocket 服务的端口号 |
-apiHost |
string |
127.0.0.1 |
API 服务的主机地址 |
-apiPort |
int |
8080 |
API 服务的端口号 |
-useProxy |
bool |
false |
是否启用代理服务 |
-authToken |
string |
"" |
Bearer Token (仅 API 使用) |
# 示例:启动 UniBarrage 服务
./UniBarrage -wsHost 127.0.0.1 -wsPort 7777 -apiHost 127.0.0.1 -apiPort 8080 -useProxy
- URL:
/
- 方法 Method:
GET
- 描述 Description: 返回欢迎信息,验证服务是否启动。
响应示例 Response Example:
{
"code": 200,
"message": "Hello, UniBarrage!",
"data": null
}
- URL:
/all
- 方法 Method:
GET
- 描述 Description: 获取所有正在运行的服务状态。
响应示例 Response Example:
{
"code": 200,
"message": "获取成功 Retrieved successfully",
"data": [
{
"platform": "douyin",
"rid": "123456"
},
{
"platform": "bilibili",
"rid": "789012"
}
]
}
- URL:
/{platform}
- 方法 Method:
GET
- 描述 Description: 获取指定平台的所有服务。
请求参数 Request Parameters:
platform
(路径参数 Path Parameter):需要查询的直播平台名称,例如douyin
,bilibili
,kuaishou
,douyu
,huya
.
响应示例 Response Example:
{
"code": 200,
"message": "获取成功 Retrieved successfully",
"data": [
{
"platform": "douyin",
"rid": "123456"
}
]
}
- URL:
/{platform}/{roomId}
- 方法 Method:
GET
- 描述 Description: 获取指定房间的服务状态。
请求参数 Request Parameters:
platform
(路径参数 Path Parameter):直播平台名称 Platform name.roomId
(路径参数 Path Parameter):房间 ID Room ID.
响应示例 Response Example:
{
"code": 200,
"message": "获取成功 Retrieved successfully",
"data": {
"platform": "douyin",
"rid": "123456"
}
}
- URL:
/{platform}
- 方法 Method:
POST
- 描述 Description: 启动指定平台的直播服务。
请求体 Request Body Example:
{
"rid": "123456",
"cookie": "可选的登录cookie Optional login cookie"
}
请求参数 Request Parameters:
platform
(路径参数 Path Parameter):直播平台名称 Platform name.rid
(请求体参数 Body Parameter):房间 ID Room ID.cookie
(请求体参数 Body Parameter, 可选 Optional):用于需要登录的服务 Used for services requiring login.
响应示例 Response Example:
{
"code": 201,
"message": "服务启动成功 Service started successfully",
"data": {
"platform": "douyin",
"rid": "123456"
}
}
- URL:
/{platform}/{roomId}
- 方法 Method:
DELETE
- 描述 Description: 停止指定平台房间的服务。
请求参数 Request Parameters:
platform
(路径参数 Path Parameter):直播平台名称 Platform name.roomId
(路径参数 Path Parameter):房间 ID Room ID.
响应示例 Response Example:
{
"code": 200,
"message": "服务已停止 Service stopped",
"data": {
"platform": "douyin",
"rid": "123456"
}
}
- rid: 房间号 Room ID
- platform: 来源平台 Platform (如 Douyin, Bilibili)
- type: 消息类型 Message Type
- Chat: 聊天消息
- Gift: 礼物消息
- Like: 点赞消息
- EnterRoom: 进入房间消息
- Subscribe: 订阅消息
- SuperChat: 超级聊天消息
- EndLive: 结束直播消息
{
"name": "发送者名称 Sender",
"avatar": "发送者头像 URL Avatar URL",
"content": "聊天内容 Content",
"emoticon": [
"表情URL Emoticon URLs"
],
"raw": "原始数据 Raw Data"
}
{
"name": "赠送者名称 Sender",
"avatar": "赠送者头像 URL Avatar URL",
"item": "礼物名称 Gift Name",
"num": "礼物数量 Gift Quantity",
"price": "礼物单价 Gift Price",
"giftIcon": "礼物图标 URL Gift Icon URL",
"raw": "原始数据 Raw Data"
}
{
"name": "点赞者名称 Liker",
"avatar": "点赞者头像 URL Avatar URL",
"count": "点赞次数 Like Count",
"raw": "原始数据 Raw Data"
}
{
"name": "进入者名称 Participant",
"avatar": "进入者头像 URL Avatar URL",
"raw": "原始数据 Raw Data"
}
{
"name": "订阅者名称 Subscriber",
"avatar": "订阅者头像 URL Avatar URL",
"item": "订阅项 Subscription Item",
"num": "订阅次数 Subscription Count",
"price": "订阅单价 Subscription Price",
"raw": "原始数据 Raw Data"
}
{
"name": "发送者名称 Sender",
"avatar": "发送者头像 URL Avatar URL",
"content": "超级聊天内容 Content",
"price": "金额 Price",
"raw": "原始数据 Raw Data"
}
{
"raw": "原始数据 Raw Data"
}
错误码 Code | 描述 Description |
---|---|
200 |
✅ 请求成功 Request successful |
201 |
✅ 服务创建成功 Service created |
400 |
|
404 |
❌ 服务未找到 Service not found |
500 |
❌ 服务器内部错误 Internal error |
💡 提示 Tips: 此文档整合了 API 和 WebSocket 消息结构的所有信息,提供开发者一个清晰、一致的参考框架!
❤️ Made with Love by BarryWang.