Skip to content

弹幕API配置

OmniBox 支持弹幕功能,可以为视频播放添加弹幕显示。弹幕功能需要独立部署 danmu_api 服务。

什么是弹幕?

弹幕是一种在视频播放时显示用户评论的功能,评论会以滚动文字的形式叠加在视频画面上,增强观看体验和互动性。

部署弹幕API服务

方案一:Vercel 部署(推荐)

Vercel 提供免费的服务器less 部署,适合个人用户。

部署步骤

  1. 访问 danmu_api 项目

  2. 部署到 Vercel

    • 访问 Vercel Dashboard
    • 点击 Add New Project
    • 选择您 Fork 的 danmu_api 项目
    • 点击 Deploy
  3. 设置环境变量

    • 在 Vercel 项目设置中找到 Environment Variables
    • 添加环境变量:
      • Key: TOKEN
      • Value: 自定义的 token(例如:87654321
    • 保存并重新部署
  4. 获取 API 地址

    • 部署完成后,获得类似 https://danmuapi-blond-nine.vercel.app 的地址
    • 完整的弹幕 API 地址为:https://danmuapi-blond-nine.vercel.app/87654321
    • 其中 87654321 是您设置的 TOKEN

提示

TOKEN 用于保护您的弹幕 API,建议使用复杂的随机字符串。

方案二:Docker 部署

适合拥有服务器或 VPS 的用户。

部署步骤

bash
docker run -d \
  -p 9321:9321 \
  --name danmu-api \
  -e TOKEN=87654321 \
  --restart unless-stopped \
  logvar/danmu-api:latest

访问地址

  • 本地访问:http://localhost:9321/87654321
  • 公网访问:http://your-server-ip:9321/87654321

方案三:Cloudflare Workers

适合需要全球加速的用户。

部署步骤

  1. 安装 Wrangler CLI

    bash
    npm install -g wrangler
  2. 登录 Cloudflare

    bash
    wrangler login
  3. 部署 Worker

    • 参考 danmu_api 项目的 Cloudflare Workers 部署文档
    • 设置环境变量 TOKEN
  4. 获取 API 地址

    • 部署完成后获得 Worker 地址
    • 完整地址为:https://your-worker.workers.dev/your-token

方案四:EdgeOne Pages

EdgeOne Pages 是腾讯云提供的边缘计算服务。

部署步骤

  1. 访问 EdgeOne Pages
  2. 创建新项目
  3. 上传 danmu_api 代码
  4. 设置环境变量 TOKEN
  5. 部署并获取地址

配置弹幕API

在 OmniBox 中配置

方法一:初始化时配置

在 OmniBox 初始化界面,使用 JSON 配置:

json
{
  "PROXY_BASE_URL": "https://your-proxy-domain.com/proxy/",
  "DANMU_API_URL": "https://your-danmu-api.vercel.app/87654321"
}

方法二:在设置中配置

  1. 进入 OmniBox 设置页面
  2. 找到 弹幕设置
  3. 输入弹幕 API 地址
  4. 保存配置

配置格式说明

弹幕 API 地址格式:

https://your-danmu-api-domain.com/TOKEN

重要提示

  • 完整 URL 必须包含 TOKEN 参数
  • TOKEN 是您在部署时设置的环境变量值
  • 示例:https://danmuapi-blond-nine.vercel.app/87654321

使用弹幕功能

发送弹幕

  1. 在视频播放页面,找到弹幕输入框
  2. 输入弹幕内容
  3. 点击发送或按 Enter 键
  4. 弹幕会显示在视频画面上

查看弹幕

  • 弹幕会自动从右侧滚动到左侧
  • 可以调整弹幕显示位置(顶部、中部、底部)
  • 可以调整弹幕字体大小和透明度

弹幕设置

在播放器设置中可以配置:

  • 弹幕开关:开启/关闭弹幕显示
  • 弹幕速度:调整弹幕滚动速度
  • 弹幕透明度:调整弹幕透明度
  • 弹幕字体大小:调整弹幕字体大小
  • 弹幕区域:选择弹幕显示区域(顶部/中部/底部)

测试弹幕API

测试方法

使用 curl 或浏览器访问弹幕 API:

bash
# 获取弹幕列表
curl "https://your-danmu-api.vercel.app/87654321/v3/?id=test-video-id"

# 发送弹幕(POST 请求)
curl -X POST "https://your-danmu-api.vercel.app/87654321/v3/" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "test-video-id",
    "author": "test-user",
    "time": 10.5,
    "text": "这是一条测试弹幕",
    "color": "#FFFFFF",
    "type": 0
  }'

预期响应

获取弹幕列表应该返回 JSON 格式的数据:

json
{
  "code": 0,
  "data": [
    {
      "id": 1,
      "author": "user1",
      "time": 10.5,
      "text": "这是一条弹幕",
      "color": "#FFFFFF",
      "type": 0
    }
  ]
}

故障排除

问题:弹幕无法显示

可能原因

  • 弹幕 API 地址配置错误
  • 弹幕 API 服务未启动
  • 网络连接问题

解决方案

  1. 检查弹幕 API 地址是否正确(包含 TOKEN)
  2. 确认弹幕 API 服务正常运行
  3. 在浏览器中直接访问弹幕 API 测试
  4. 检查浏览器控制台是否有错误信息

问题:弹幕发送失败

可能原因

  • TOKEN 不正确
  • 弹幕 API 服务限制
  • 请求格式错误

解决方案

  1. 确认 TOKEN 与部署时设置的一致
  2. 检查弹幕 API 服务日志
  3. 验证请求格式是否正确
  4. 尝试使用 curl 测试发送弹幕

问题:弹幕加载缓慢

可能原因

  • 弹幕 API 服务器性能问题
  • 网络延迟
  • 弹幕数据量过大

解决方案

  1. 使用性能更好的部署方案(如 Cloudflare Workers)
  2. 检查网络连接
  3. 考虑添加缓存机制
  4. 优化弹幕数据查询

安全建议

TOKEN 安全

  • 使用复杂的随机字符串作为 TOKEN
  • 不要将 TOKEN 提交到公开的代码仓库
  • 定期更换 TOKEN
  • 使用环境变量存储 TOKEN

API 限流

建议在弹幕 API 服务中添加限流功能,防止滥用:

javascript
// 示例:限制每个 IP 每分钟最多 10 条弹幕
const rateLimit = require('express-rate-limit');

const limiter = rateLimit({
  windowMs: 60 * 1000, // 1 分钟
  max: 10 // 限制 10 次请求
});

内容过滤

建议添加内容过滤功能,过滤不当内容:

javascript
// 示例:简单的关键词过滤
const blockedWords = ['spam', 'advertisement'];

function filterContent(text) {
  return blockedWords.some(word => text.includes(word));
}

相关资源

下一步

基于 MIT 许可发布