/fetch_danmu

LibreTV 的无痛弹幕伴侣(LibreTV 使用onlyapi 分支)

Primary LanguagePythonMIT LicenseMIT

弹幕获取 API (Danmu Fetch API)

一个基于 Fastapi 的异步弹幕聚合服务,支持从多个主流视频平台获取弹幕数据,具体支持的平台请看provides文件目录,返回用于weizhenye/Danmaku的弹幕数据。

功能特性

  • 🌐 UI 界面: 支持通过 UI 界面获取弹幕数据,基于reflex实现
  • 🚀 异步并行处理: 使用 asyncio 并行获取多平台弹幕,提高响应速度
  • 🔍 多种获取方式: 支持豆瓣 ID、标题搜索和直接 URL 三种弹幕获取方式
  • 🎯 平台聚合: 一次请求获取所有支持平台的弹幕数据
  • 📊 标准化输出: 统一的弹幕数据格式,便于后续处理
  • 🛡️ 异常容错: 单个平台失败不影响其他平台数据获取
  • 📖 完整文档: 内置 Swagger UI 文档

UI 界面演示:

弹幕播放器

点击查看更多截图 主页 搜索页 详情页 播放页

快速开始

Docker 运行

docker run -d -p 8080:8080 --name fetch-danmu ghcr.io/seqcrafter/fetch-danmu:2.4.0

服务将在 http://127.0.0.1:8080 启动。

注意:由于由于 Reflex 的限制,通过我构建的 Docker 镜像,只能本地访问或者使用 https 访问,无法通过 http 远程访问,因为会提示无法找到后端 API.如果你想通过 http 远程访问,需要构建你自己的 Docker 镜像,参考Dockerfile, 修改 REFLEX_API_URL 为你的后端 API 地址。

API 文档

点击导航栏的API文档,即可访问 API 文档。 或者访问http://127.0.0.1:8080/docpage

API 接口

1. 通过豆瓣 ID 获取弹幕

GET /douban_id

参数:

  • douban_id (必需): 豆瓣电影/剧集 ID
  • episode_number (可选): 指定集数

示例:

## 子夜归第一集弹幕
curl "http://127.0.0.1:8080/douban_id?douban_id=36481469&episode_number=1"

2. 通过标题搜索获取弹幕

新增一个测试接口用来为魔改版 zyplayer 提供弹幕数据

GET /test/title

参数:

  • title (必需): 视频标题
  • season_number (可选): 季数,默认为 1
  • season (可选): 是否是连续剧,默认为 True,电视剧选 True,电影选 False
  • episode_number (可选): 集数

示例:

curl "http://127.0.0.1:8080/test/title?title=子夜归&season_number=1&episode_number=1&season=true"
GET /title

参数:

  • title (必需): 视频标题
  • season_number (可选): 季数,默认为 1
  • season (可选): 是否是连续剧,默认为 True,电视剧选 True,电影选 False
  • episode_number (可选): 集数

示例:

curl "http://127.0.0.1:8080/title?title=子夜归&season_number=1&episode_number=1&season=true"

3. 通过 URL 直接获取弹幕

GET /url

参数:

  • url (必需): 视频页面 URL

示例:

curl "http://127.0.0.1:8080/url?url=https://v.qq.com/x/cover/mzc002009y0nzq8/z4101m43ng6.html"

响应格式

成功响应

{
  "code": 0,
  "name": "36172040",
  "danmu_data": 13223,
  "danmuku": [
    [0.0, "right", "#FFFFFF", "25px", "恭迎师祖出山"],
    [0.0, "right", "#FFFFFF", "25px", "来支持献鱼啦"]
  ]
}

错误响应

{ "error": "douban_id is required" }

许可证

本项目基于 MIT 许可证开源。详见 LICENSE 文件。

贡献

所有弹幕获取和豆瓣搜索的代码都是从thshu/fnos-tv仓库中 1:1 复制的,感谢作者的贡献。 本仓库由于使用了 fastapi, 所以将原本所有的同步代码全部修改为异步类型。 同时本仓库将弹幕接口解耦,并适配了weizhenye/Danmaku的格式。

注意事项

  • 本项目仅用于学习和研究目的
  • 请遵守相关平台的使用条款
  • 弹幕数据版权归原平台所有