LogVar 弹幕 API 服务器
一个人人都能部署的基于 js 的弹幕 API 服务器,支持爱优腾芒哔人弹幕直接获取,兼容弹弹play的搜索、详情查询和弹幕获取接口,并提供日志记录,支持vercel/cloudflare/docker/claw等部署方式,不用提前下载弹幕,没有nas或小鸡也能一键部署。
本项目仅为个人爱好开发,代码开源。如有任何侵权行为,请联系本人删除。
纯为爱发电,自用顺便分享,如果真要打赏,可以支付宝发口令红包到我的tg私信机器人 https://t.me/ddjdd_bot ,感谢😊,有问题提issue或私信机器人都ok。
功能
- API 接口:
GET /api/v2/search/anime?keyword=${queryTitle}:根据关键字搜索动漫。GET /api/v2/bangumi/:animeId:获取指定动漫的详细信息。GET /api/v2/comment/:commentId?withRelated=true&chConvert=1:获取指定弹幕评论,支持返回相关评论和字符转换。GET /api/logs:获取最近的日志(最多 500 行,格式为[时间戳] 级别: 消息)。
- 日志记录:捕获
console.log(info 级别)和console.error(error 级别),JSON 内容格式化输出。 - 部署支持:支持本地运行、Docker 容器化、Vercel 一键部署、Cloudflare 一键部署和 Docker 一键启动。
前置条件
- Node.js(v18 或更高版本)
- npm
- Docker(可选,用于容器化部署)
本地运行
-
克隆仓库:
git clone <仓库地址> cd <项目目录> -
安装依赖:
npm install -
启动服务器:
npm start服务器将在
http://{ip}:9321运行,默认token是87654321。 或者使用下面的命令# 启动 node ./danmu_api/server.js # 测试 node --test ./danmu_api/worker.test.js -
测试 API: 使用 Postman 或 curl 测试:
GET http://{ip}:9321/87654321GET http://{ip}:9321/87654321/api/v2/search/anime?keyword=Anime%20AGET http://{ip}:9321/87654321/api/v2/bangumi/1GET http://{ip}:9321/87654321/api/v2/comment/1?withRelated=true&chConvert=1GET http://{ip}:9321/87654321/api/logs
使用 Docker 运行
-
构建 Docker 镜像:
docker build -t danmu-api . -
运行容器:
docker run -d -p 9321:9321 --name danmu-api -e TOKEN=your_token_here danmu-api- 使用
-e TOKEN=your_token_here设置TOKEN环境变量,覆盖Dockerfile中的默认值。
- 使用
-
测试 API: 使用
http://{ip}:9321/{TOKEN}访问上述 API 接口。
Docker 一键启动
-
拉取镜像:
docker pull logvar/danmu-api:latest -
运行容器:
docker run -d -p 9321:9321 --name danmu-api -e TOKEN=your_token_here logvar/danmu-api:latest- 使用
-e TOKEN=your_token_here设置TOKEN环境变量。
- 使用
-
测试 API: 使用
http://{ip}:9321/{TOKEN}访问上述 API 接口。
部署到 Vercel
一键部署
点击以下按钮即可将项目快速部署到 Vercel:
注意:请将按钮链接中的 https://github.com/huangxd-/danmu_api 替换为你的实际 Git 仓库地址。编辑 README.md 并更新链接后,推送到仓库,点击按钮即可自动克隆和部署。
- 设置环境变量:部署后,在 Vercel 仪表板中:
- 转到你的项目设置。
- 在“Environment Variables”部分添加
TOKEN变量,输入你的 API 令牌值。 - 保存更改并重新部署。
部署到 Cloudflare
一键部署
点击以下按钮即可将项目快速部署到 Cloudflare:
注意:请将按钮链接中的 https://github.com/huangxd-/danmu_api 替换为你的实际 Git 仓库地址。编辑 README.md 并更新链接后,推送到仓库,点击按钮即可自动克隆和部署。
- 设置环境变量:部署后,在 Cloudflare 仪表板中:
- 转到你的 Workers 项目。
- 转到“Settings” > “Variables”。
- 添加
TOKEN环境变量,输入你的 API 令牌值。 - 保存并部署。
手动部署
创建一个worker,将danmu_api/worker.js里的代码直接拷贝到你创建的worker.js里,然后点击部署。
API食用指南
支持 forward/senplayer 等支持弹幕API的播放器。
以senplayer为例:
- 获取到部署之后的API地址,如
http://192.168.1.7:9321/87654321,其中87654321是默认token,前提是没有传TOKEN环境变量 - 将API地址填入自定义弹幕API,在
设置 - 弹幕设置 - 自定义弹幕API - 播放界面点击
弹幕按钮 - 搜索弹幕,选择你的弹幕API,会根据标题进行搜索,等待一段时间,选择剧集就行。

项目结构
danmu_api/
├── .github/
│ └── workflows/
│ └── docker-image.yml
├── danmu_api/
│ ├── README.md # 项目文档
│ ├── server.js # 本地node启动脚本
│ ├── worker.js # 主 API 服务器代码
│ ├── worker.test.js # 测试文件
├── .gitignore
├── Dockerfile
├── package.json
├── vercel.json
注意事项
- 日志存储在内存中,服务器重启后会清空。
/api/logs中的 JSON 日志会格式化显示,带缩进以提高可读性。- 确保
package.json中包含node-fetch依赖。 - 一键部署需要将项目推送到公开的 Git 仓库(如 GitHub),并更新按钮中的仓库地址。
- 运行 Docker 容器时,需通过
-e TOKEN=your_token_here传递TOKEN环境变量。 - cloudflare貌似被哔风控了。
- 如果想更换兜底第三方弹幕服务器,请添加环境变量
OTHER_SERVER,示例https://api.danmu.icu。 - 如果想更换vod站点,请添加环境变量
VOD_SERVER,示例https://www.caiji.cyou。 - 会返回所有跟title匹配的影片,所以主要使用场景是手动弹幕搜索场景。
- 推荐vercel和claw部署,cloudflare好像不稳定,当然最稳定还是自己本地docker部署最佳。