Docker 部署御坂网络弹幕服务 Misaka Danmu Server
什么是御坂网络弹幕服务
御坂网络弹幕服务(Misaka Danmu Server)是一个功能强大的自托管弹幕聚合与管理服务,兼容 dandanplay API 规范。它能够从多个视频平台实时获取弹幕数据,为你的私人媒体库(如 Emby、Jellyfin、Plex)提供弹幕支持。
核心功能
- 智能匹配:通过文件名或元数据(TMDB、TVDB 等)自动匹配媒体内容
- Web 管理界面:提供直观的 UI 用于搜索/导入弹幕、管理媒体源、创建 API Token、配置搜索优先级
- 弹幕源管理:支持从资源仓库安装或上传离线弹幕源包,具备备份/恢复功能
- 元数据整合:整合 TMDB、TVDB、Bangumi、豆瓣、IMDb 等多个元数据源
- 自动化支持:支持 Sonarr、Radarr、Emby 的 Webhook 通知,实现弹幕自动导入
- 多播放器兼容:支持 SenPlayer、Infuse、小幻、yamby、eplayerx 等播放器
与 danmu_api 对比
如果你只需要轻量级的弹幕服务,可以参考我之前写的 danmu_api 部署教程。两者的主要区别如下:
| 功能 | danmu_api | misaka_danmu_server |
|---|---|---|
| 基本弹幕抓取 | ✅ | ✅ |
| dandanplay API 兼容 | ✅ | ✅ |
| Web 管理界面 | ❌ | ✅ |
| 媒体库/元数据匹配 | ❌ | ✅ TMDB/TVDB/Bangumi/豆瓣/IMDb |
| Webhook 自动化 | ❌ | ✅ Sonarr/Radarr/Emby |
| 弹幕源管理 | 有限 | ✅ 完整的源管理系统 |
| Token 授权体系 | 简单 | ✅ 完整权限控制 |
| 部署复杂度 | 简单(无需数据库) | 中等(需要 MySQL) |
| 适用场景 | 个人轻量使用 | 完整媒体库管理 |
准备工作
服务器要求
- 内存:建议 2GB 以上
- 磁盘:建议 20GB 以上
- 网络:建议使用中国大陆 IP,海外 IP 可能因网络或版权限制导致部分弹幕源不可用
安装 Docker
如果还没有安装 Docker,执行以下命令:
如果你使用dokploy,也可以使用官方模版,我已经提交了PR,等待合并。
https://github.com/Dokploy/templates/pull/624#issuecomment-3686872830
curl -fsSL https://get.docker.com | shDocker Compose 部署
创建项目目录
mkdir -p ~/misaka-danmu && cd ~/misaka-danmu创建 docker-compose.yml
vim docker-compose.yml粘贴以下配置:
version: "3.8"services: mysql: image: mysql:8.1.0-oracle container_name: danmu-mysql restart: unless-stopped environment: # !!! 重要:请务必替换为您的强密码 !!! MYSQL_ROOT_PASSWORD: "your_strong_root_password" #数据库root密码 MYSQL_DATABASE: "danmuapi" #数据库名称 MYSQL_USER: "danmuapi" #数据库用户名 MYSQL_PASSWORD: "your_strong_user_password" #数据库密码 TZ: "Asia/Shanghai" volumes: - ./db-data:/var/lib/mysql command: - '--character-set-server=utf8mb4' - '--collation-server=utf8mb4_unicode_ci' - '--binlog_expire_logs_seconds=259200' # 自动清理超过3天的binlog日志 - '--default-authentication-plugin=mysql_native_password' # 使用传统密码认证方式 healthcheck: # 使用mysqladmin ping命令进行健康检查,通过环境变量引用密码 test: ["CMD-SHELL", "mysqladmin ping -u$${MYSQL_USER} -p$${MYSQL_PASSWORD}"] interval: 5s timeout: 3s retries: 5 start_period: 30s
networks: - misaka-net
danmu-app: image: l429609201/misaka_danmu_server:latest container_name: misaka-danmu-server restart: unless-stopped depends_on: mysql: condition: service_healthy environment: # 设置运行容器的用户和组ID,以匹配您宿主机的用户,避免挂载卷的权限问题。 - PUID=1000 - PGID=1000 - UMASK=0022 - TZ=Asia/Shanghai # --- 数据库连接配置 --- - DANMUAPI_DATABASE__TYPE=mysql # 数据库类型 - DANMUAPI_DATABASE__HOST=mysql # 使用服务名 - DANMUAPI_DATABASE__PORT=3306 # 端口号 - DANMUAPI_DATABASE__NAME=danmuapi # 数据库名称 # !!! 重要:请使用上面mysql容器相同的用户名和密码 !!! - DANMUAPI_DATABASE__USER=danmuapi #数据库用户名 - DANMUAPI_DATABASE__PASSWORD=your_strong_user_password #数据库密码 # --- 初始管理员配置 --- - DANMUAPI_ADMIN__INITIAL_USER=admin volumes: - ./config:/app/config ports: - "7768:7768" depends_on: - danmu-mysql networks: - misaka-net
networks: misaka-net: driver: bridge我使用的是云数据库,我也可以给个参考。
version: "3.8"services: danmu-app: image: l429609201/misaka_danmu_server:latest container_name: misaka-danmu-server restart: unless-stopped network_mode: "host" environment: - PUID=1000 - PGID=1000 - UMASK=0022 - TZ=Asia/Shanghai - DANMUAPI_DATABASE__TYPE=mysql - DANMUAPI_DATABASE__HOST=10.8.0.118 - DANMUAPI_DATABASE__PORT=3306 - DANMUAPI_DATABASE__NAME=misaka - DANMUAPI_DATABASE__USER=misaka - DANMUAPI_DATABASE__PASSWORD=PASSWORD - DANMUAPI_ADMIN__INITIAL_USER=admin volumes: - ./config:/app/config
启动服务
docker compose up -d查看启动日志:
docker compose logs -f danmu首次启动会显示初始管理员密码,请记录下来:
[INFO] Initial admin password: xxxxxx
初始配置
访问 Web 管理界面
浏览器访问 http://你的服务器IP:7768
使用管理员账户登录:
- 用户名:
admin(或你配置的DANMUAPI_ADMIN__INITIAL_USER) - 密码:启动日志中显示的初始密码
弹幕源配置
- 进入 系统设置 > 弹幕源管理
- 点击 从仓库安装 获取最新的弹幕源
- 根据需要启用或禁用特定源
- 可以调整源的优先级
Token 管理
为了让播放器访问弹幕 API,你需要创建 Token:
- 进入 系统设置 > Token 管理
- 点击 新建 Token
- 填写备注(如 “SenPlayer”)并保存
- 复制生成的 Token 用于播放器配置
播放器配置
SenPlayer
- 打开 SenPlayer,进入 设置 > 弹幕设置 > 自定义弹幕 API
- 填入 API 地址:
http://你的服务器IP:7768/{Token}- 将
{Token}替换为你在管理界面生成的 Token
- 将
- 播放视频时,点击 弹幕按钮 > 搜索弹幕
- 选择你的弹幕 API,等待搜索完成后选择对应剧集
Infuse
- 进入 设置 > 元数据 > 弹幕
- 选择 自定义
- 填入 API 地址:
http://你的服务器IP:7768/{Token}
小幻播放器
小幻需要在 API 地址后面加上 /api/v2:
http://你的服务器IP:7768/{Token}/api/v2Yamby (Android)
- 打开 Yamby,进入弹幕设置
- 选择自定义弹幕 API
- 填入 API 地址:
http://你的服务器IP:7768/api/v1/{Token} - 仅支持手动搜索弹幕
Hills (Android/Windows)
功能最全面的播放器之一:
- 进入设置 > 弹幕 > 自定义 API
- 填入 API 地址:
http://你的服务器IP:7768/api/v1/{Token} - 支持自动匹配和手动搜索
Afusekt (Android/Android TV)
支持双平台:
- 进入设置 > 弹幕设置
- 选择自定义弹幕服务器
- 填入 API 地址:
http://你的服务器IP:7768/api/v1/{Token}
dd-danmaku (浏览器插件)
适用于网页播放器:
- 安装浏览器插件
- 在插件设置中配置 API 地址
- 访问视频网站时自动加载弹幕
API 路径兼容性
服务已对路由进行特殊处理,以下格式都能正确响应:
http://IP:7768/api/v1/{Token}http://IP:7768/api/v1/{Token}/api/v2http://IP:7768/{Token}http://IP:7768/{Token}/api/v2
这确保了与各种播放器的兼容性。
高级配置
Webhook 自动化
御坂弹幕服务支持通过 Webhook 接收媒体服务器通知,自动获取弹幕。
Emby Webhook
- 在 Emby 中安装 Webhook 插件
- 配置 Webhook URL:
http://你的服务器IP:7768/webhook/emby - 选择需要触发的事件(如新增媒体)
Sonarr/Radarr Webhook
- 进入 Sonarr/Radarr 的 设置 > 连接
- 添加 Webhook 连接
- URL:
http://你的服务器IP:7768/webhook/sonarr或/webhook/radarr - 选择触发事件(如下载完成)
Webhook 详细配置
Jellyfin Webhook
- 在 Jellyfin 中安装 Webhook 插件
- 进入 控制台 > 插件 > Webhook
- 添加 Generic Destination
- 配置 Webhook URL:
http://你的服务器IP:7768/api/webhook/jellyfin?api_key=你的API密钥 - 仅勾选 Item Added 事件
- 启用 Send All Properties
Plex Webhook(通过 Tautulli)
Plex 原生 Webhook 需要 Plex Pass 订阅,且无法处理批量导入。推荐使用免费的 Tautulli:
- 安装 Tautulli
- 进入 设置 > 通知代理 > 添加 Webhook
- 配置 Webhook URL:
http://你的服务器IP:7768/api/webhook/plex?api_key=你的API密钥 - 触发器选择 Recently Added
- 配置 JSON 数据模板(参考官方文档)
媒体库获取
媒体库获取功能支持从多种来源读取媒体条目信息,用于自动化弹幕导入流程。


媒体服务器集成
支持从 Emby、Jellyfin、Plex 等媒体服务器读取媒体库:
- 进入 设置 > 媒体获取
- 选择媒体服务器类型
- 填写服务器地址和 API Key
- 点击 测试连接 验证配置
- 保存后即可从媒体服务器同步条目
本地目录扫描
支持扫描本地文件夹识别媒体文件:
- 配置本地目录路径
- 系统会根据文件名和目录结构识别媒体
- 支持递归扫描子目录
推荐的目录结构:
媒体库/├── 电影/│ ├── 电影名 (2024)/│ │ └── 电影名 (2024).mkv│ └── ...└── 电视剧/ ├── 剧名/ │ ├── Season 01/ │ │ ├── 剧名 S01E01.mkv │ │ └── 剧名 S01E02.mkv │ └── Season 02/ │ └── ... └── ...本地弹幕文件扫描
支持检测并导入现有的 .xml 弹幕文件:
- 配置弹幕文件目录
- 系统会扫描并识别 dandanplay 格式的 XML 文件
- 自动关联到对应的媒体条目
弹幕文件命名规范:
- 电影:
电影名 (年份).xml - 剧集:
剧名 S01E01.xml或剧名 第1季第1集.xml
元数据源配置
在 系统设置 > 元数据配置 中可以配置各个元数据源:
TMDB(推荐,必选)
- 访问 TMDB 注册账号
- 进入 设置 > API > 申请开发者权限
- 获取 API v3 密钥
- 在弹幕服务的 搜索设置 中填入 API Key
TVDB
- 访问 TVDB 注册账号
- 进入 Dashboard 生成 API Key
- 在弹幕服务中配置
Bangumi(动画推荐)
支持两种认证方式:
- Access Token:简单方式,适合个人使用
- OAuth 认证:适合多用户场景
豆瓣
豆瓣使用网页抓取方式,无需官方 API。可选配置 Cookie 以提高稳定性。
IMDb
无需认证,支持第三方 API 和 HTML 解析两种方式。
优先级建议
根据你的媒体库类型调整优先级:
- 通用:TMDB > TVDB > Bangumi > 豆瓣 > IMDb
- 动画为主:Bangumi > TMDB > TVDB
- 华语内容:豆瓣 > TMDB > IMDb
AI 功能配置
御坂弹幕服务支持使用 AI 增强匹配能力,包括智能匹配、季度映射、别名验证等功能。
支持的 AI 提供商
| 提供商 | 推荐度 | 说明 |
|---|---|---|
| DeepSeek | ⭐⭐⭐⭐⭐ | 性价比最高的国产大模型,响应快 |
| SiliconFlow | ⭐⭐⭐⭐ | 支持多种开源模型,国内访问友好 |
| OpenAI | ⭐⭐⭐ | 效果好,但国内需要代理 |
| Google Gemini | ⭐⭐⭐ | 效果好,但国内需要代理 |
配置步骤
- 进入 设置 > AI 辅助增强
- 选择 AI 提供商
- 填写 API Key
- 设置 Base URL(通常使用默认值)
- 选择模型名称
- 点击 测试连接 验证配置
费用参考:DeepSeek 输入 ¥1/百万tokens,输出 ¥2/百万tokens。由于每次调用消耗的 tokens 很少,通常每月费用不超过几元。
Telegram 机器人
可以通过 Telegram Bot 远程管理弹幕服务,支持搜索导入、库管理、任务监控等功能。
要求:弹幕库版本 > v2.0.4
详细配置请参考项目文档。
弹幕源管理
在线仓库安装
- 进入 系统设置 > 弹幕源管理
- 配置资源仓库地址(支持 GitHub 或 CDN 加速)
https://github.com/l429609201/Misaka-Scraper-Resources- 点击 从仓库安装
- 系统会自动备份当前源、下载最新文件、安装并重载

离线包安装
如果无法访问在线仓库:
- 从 Releases 页面 下载对应平台的离线包
- 在 Web UI 中上传离线包
- 系统会自动安装并重载
备份与恢复
- 自动备份:更新时系统会自动备份当前源
- 手动备份:在源管理页面点击备份按钮
- 恢复:选择备份文件进行恢复
弹幕库管理
条目管理
在 弹幕库 页面可以:
- 查看、编辑、删除条目
- 按标题搜索
- 按类型筛选(电影、电视剧、动画等)
每个条目包含:
- 基础信息(标题、年份等)
- 别名列表
- 多个弹幕来源(B站、爱奇艺等)
手动创建条目
对于不在弹幕源中的作品,可以手动创建条目:
- 点击 新建条目
- 填写作品信息
- 可以导入本地 XML 弹幕文件
XML 弹幕导入
支持导入 dandanplay 格式的弹幕文件:
- 单文件导入:选择单个 XML 文件
- 批量导入:选择多个 XML 文件
TMDB 自动增强
启用后,系统会通过 TMDB 定时任务自动为条目添加别名,提升播放器匹配成功率。
弹幕 API 功能配置
Token 高级设置
创建 Token 时可以配置:
- 有效期:Token 的过期时间
- 每日调用限制:防止滥用
弹幕输出设置
- 采样限制:建议设置 3000-5000(桌面端),移动端可以更低
- 随机颜色:为弹幕随机分配颜色
- 黑名单过滤:支持关键词和正则表达式
存储路径自定义
可以使用变量自定义弹幕存储路径:
${title}- 作品标题${season}- 季度${episode}- 集数${episodeId}- 集数 ID
自动回退选项
- 匹配回退:本地无结果时自动从源获取
- 搜索回退:主源无结果时尝试备用源
- 顺序回退:主源无有效分集时尝试其他源
- 预下载:后台自动下载下一集弹幕
指令系统
在搜索界面可以使用特殊指令(不区分大小写):
| 指令 | 说明 |
|---|---|
@ | 查看可用指令列表 |
@QLHC | 清除缓存 |
@SXDM | 刷新弹幕(多步选择) |
@CXLK | 检查限流状态 |
@CXRW | 查询任务状态 |
过滤配置
条目标题过滤
在搜索结果页面,可以通过关键词过滤条目:
- 支持部分匹配
- 不区分大小写
- 支持中英文混合
分集名过滤
在条目详情页,可以过滤分集列表:
S01、第一季- 筛选季度E05、第5集- 筛选集数特别篇、OVA- 筛选特殊内容
更新服务
cd ~/misaka-danmudocker compose pulldocker compose up -d注意事项
网络环境
- 建议使用中国大陆 IP 部署,海外服务器可能因网络限制导致部分弹幕源无法正常工作
- 如果使用海外服务器,可能需要配置代理
合理使用
项目作者在文档中明确指出:
所有弹幕数据均来自第三方公开 API 或网站,请合理使用,避免滥用导致 IP 被封禁。
版权声明
御坂弹幕服务仅提供弹幕数据的聚合、存储和 API 访问功能,不生产、修改、存储或分发视频内容本身。用户需自行承担使用责任。