介绍

Misaka Danmu Server(御坂网络弹幕服务)是一个自托管的弹幕聚合与管理服务,源码在 https://github.com/l429609201/misaka_danmu_server。它会从主流视频网站刮削弹幕,给个人媒体库提供一个统一、私有的弹幕 API,自带 Web 管理界面,并且兼容弹弹play API 规范。

说直白点:你用 Emby / Jellyfin 之类看本地番剧,播放器(SenPlayer、yamby、hills、小幻影视等)就能通过它加载弹幕。它支持按文件名或者 TMDB / TVDB 元数据去智能匹配,也能接 Sonarr / Radarr / Emby 的 Webhook 自动导入弹幕。

自己部署

部署需要两样东西:一个 MySQL 数据库,和弹幕服务本身。

准备数据库

服务用 MySQL 存弹幕库、令牌和任务,先在宿主机或已有的 MySQL 上建库建用户:

CREATE DATABASE danmuapi CHARACTER SET utf8mb4;
CREATE USER 'danmuapi'@'%' IDENTIFIED BY 'danmuapi';
GRANT ALL PRIVILEGES ON danmuapi.* TO 'danmuapi'@'%';
FLUSH PRIVILEGES;

用 Docker Compose 启动

官方提供了 docker-compose.yml,服务使用 host 网络模式,直接占用宿主机 7768 端口,默认连接 127.0.0.1:3306 的 MySQL。下面直接用官方镜像,省去本地构建:

version: '3.8'
services:
  app:
    image: l429609201/danmu_api_server:latest
    container_name: danmu-api
    restart: unless-stopped
    network_mode: "host"
    environment:
      - PUID=1000
      - PGID=1000
      - DANMUAPI_SERVER__HOST=0.0.0.0
      - DANMUAPI_SERVER__PORT=7768
      - DANMUAPI_DATABASE__HOST=127.0.0.1
      - DANMUAPI_DATABASE__PORT=3306
      - DANMUAPI_DATABASE__USER=danmuapi
      - DANMUAPI_DATABASE__PASSWORD=danmuapi
      - DANMUAPI_DATABASE__NAME=danmuapi
      - DANMUAPI_JWT__SECRET_KEY=换成你自己的密钥
      - DANMUAPI_ADMIN__INITIAL_USER=admin
    volumes:
      - ./config:/app/config

保存为 docker-compose.yml,执行:

docker compose up -d

启动后访问 http://宿主机IP:7768,用上面设置的 admin 登录,在 Web 界面里搜索媒体、导入弹幕、创建 API 令牌,把令牌填到播放器即可。

缓存默认是内存加数据库的混合模式,不需要额外装 Redis;想要更激进的缓存也可以配 DANMUAPI_CACHE__BACKEND=redis 指向一个 Redis 实例。

更细的部署步骤可参考项目 README 里提到的部署文章,以及官方文档 https://docs.misaka10876.top。

不想自建?直接用 hub.saintic.com

如果你只是想在播放器里看点弹幕,并不打算自己维护一套服务、数据库和刮削任务,可以直接用我部署的在线服务。

地址是 https://hub.saintic.com/danmu,弹幕能力由我在后端接入的 Misaka Danmu Server 提供,本质上就是个开箱即用的弹幕 SaaS:你不用管服务器、不用装 MySQL、不用配置刮削源。

使用步骤很简单:

  1. 打开 hub.saintic.com,用 OIDC(GitHub QQ 等)登录。
  2. 进入控制台,创建一个弹幕 Token(每个账号最多 5 个)。Token 名称只允许英文加数字且字母开头,比如 SenPlayer。
  3. 在「弹幕库」页面搜索你想看的番剧或影视,把结果导入弹幕库,后台会异步去抓取弹幕,任务进度可在页面里跟踪。
  4. 控制台会给你一个形如 https://danmu.satic.cn/api/v1/{token} 的链接,把它填进播放器(如 SenPlayer)的弹幕源,就能加载弹幕了。

Token 有每日调用上限(默认 100 次 / 天),对个人观影足够用。播放器端和自建服务走的是同一套 API 规范(兼容弹弹play),所以客户端配置方法完全一样。

总结

想深度定制、长期维护自己的弹幕库,就按上面的 docker-compose 自建 Misaka Danmu Server;只想省事在播放器里看看弹幕,注册个 hub.saintic.com 直接用就行,两种方式的客户端配置是互通的。


·End·