woleigedouer
ec0cbda5ec
fix(iqiyi): 修复爱奇艺弹幕分片规则失效 ( #311 )
...
- 更新爱奇艺弹幕接口为 60 秒 Brotli 分片规则,支持 protobuf 弹幕解析,并将空分片 404 作为无弹幕处理。
2026-05-18 23:02:48 +08:00
Elegy233
d894ccdd3d
perf(match): 为 match 接口支持跨季集数顺延匹配,提高匹配成功率;新增 CUSTOM_MERGE_RULES 环境变量,用于自定义源合并行为 ( #310 )
...
* perf(api): 将数据源处理逻辑提取为公共函数,加入'跨季集数顺延映射'功能提高 match 接口匹配成功率
* feat(utils): 等价重组合并工具,使用12层清晰分层并补全所有函数必要注释,降低维护难度
我是超级重构大师()这一次真的好起来了结构清晰多了()
* perf(envs): 新增合并映射表('CUSTOM_MERGE_RULES')变量与解析函数
* feat(utils): 使合并工具支持合并映射表
* feat(ui): 新增CUSTOM_MERGE_RULES 合并映射表 专用编辑界面
* feat(env): 新增合并映射表配置说明
* feat(md): 新增合并映射表配置说明
2026-05-18 23:02:08 +08:00
huangxd-
d622a5be8d
修改小版本号
2026-05-18 23:01:51 +08:00
piaoyizy
4e5b7f69ad
feat: 为fongmi接口增强网盘命名集数识别能力 ( #307 )
...
- 新增 16 种集数提取正则模式 (EP/E/Episode/Emby/括号/分隔符等)
- 新增日期格式识别 (YYYY-MM-DD, 紧凑日期)
- 提升网盘文件名集数识别准确率
2026-05-16 09:31:57 +08:00
Elegy233
ffe4c68293
perf(search): 重构源多季场景匹配逻辑,大幅降低无效请求提升匹配速度;为人人源新增多端接口与智能路由,改善区域连通性问题 ( #303 )
...
* perf(api): 增加季参数透传与缓存隔离机制
- 在 `matchAnime` 重定向时提取 season 参数并隐式传递给 `searchAnime`。
- 修改所有源站 `handleAnimes` 调用,追加 `querySeason` 参数下发。
- 重构搜索缓存的 Key 生成规则,引入 `_S{season}` 后缀,实现按季度的缓存空间隔离,解决换季搜索时的旧缓存穿透 Bug。
* feat(utils): 升级季度混合匹配算法
- 升级 `titleMatches` 函数签名,新增 `parsedSeason` 参数支持。
- 统一向外部源站暴露 `getExplicitSeasonNumber` 与 `extractSeasonNumberFromAnimeTitle` 解析函数。
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 透传querySeason
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(sources): 实现详情请求前置拦截与短路回退
* perf(api): 补全 `querySeason` 参数下发
* feat(test): 增加 Bangumi Data 本地检索与季度参数的拦截检索测试
* fix(sources): 修复韩剧TV定义了多余的参数导致缓存错误赋值无法参与match匹配
* perf(sources): 人人源新增 Win 端接口与智能路由,改善区域连通性问题
https://github.com/huangxd-/danmu_api/issues/295
wni 接口的详情接口疑似存在验证密钥,暂时没能力获取目前只添加了它的搜索和弹幕接口
* Fix TV_DANMU_HOST URL in renren.js
* feat(utils): 新增 `validStatusCodes` 参数配置,允许外部主动接管特定的非 2xx 状态码
配合修复人人无弹幕状态码是404导致重试
* perf(sources): 修复人人源在“剧集无弹幕”时返回 HTTP 404导致无效重试的问题
* perf(sources): Animeko弹幕获取阶段引入人人一样的智能路由机制
* perf(sources): 使用曲线救国的方式补全人人 win 详情接口,同时增加 mac 接口,并调整了函数整体结构提高可读性
复杂化致歉()但是现在拥有了四个接口,完善的智能接口回退,希望这是最后一次更改这个源(
* perf(sources): 挂载 WIN 接口的别名,并支持识别会员提示弹窗用于智能偏移时长
https://github.com/huangxd-/danmu_api/issues/305
* perf(sources): 调整日志输出
* feat(utils): 修复合并后源的别名列表丢失
* perf(sources): 完善接口降级逻辑,防止误触发
Bug修呀修
* perf(api): 清理合并导致的 search 接口多余 links
* 1.19.5
2026-05-16 09:31:11 +08:00
Elegy233
8e3d208c2f
大幅优化 Bangumi Data 检索性能与速度,避免中低端机器开启为负优化 ( #301 )
...
* bangumi-data-util.js:大幅优化数据查询性能
* tmdb-util.js:异步查询本地 Bangumi Data
* animeko.js:异步查询本地 Bangumi Data
* bahamut.js:异步查询本地 Bangumi Data
* bilibili.js:异步查询本地 Bangumi Data
* dandan.js:异步查询本地 Bangumi Data
* bangumi-data-util.js:兼容旧版数据缓存
* tmdb-util.js:调整日志输出
* renren.js:捕获空弹幕数据,直接返回空数组
* renren.js:还原修改,因为并不有效
Removed checks for 'Document not found' error in response handling.
* merge-util.js:再次修复Re0最新季因共识差导致animeko映射错误
* bangumi-data-util.js:再次优化,引入倒排索引避免未来数据越来越多检索变慢
* dandan.js:如果结果命中用户需要的季,则跳过非目标季相关请求
减轻容易报错的详情接口压力
* merge-util.js:只有 1 个资源时不进行合并计算
* bahamut.js:如果结果命中用户需要的季,则跳过非目标季相关请求
* Add extractSeasonNumberFromAnimeTitle to imports
* Add extractSeasonNumberFromAnimeTitle to imports
* Add extractSeasonNumberFromAnimeTitle to imports
* bilibili.js:更新 Bangumi Data 数据对齐匹配逻辑,修复中配版对齐错误
* bahamut.js:同步更新 Bangumi Data 数据对齐匹配逻辑
* bahamut.js:补全 Bangumi Data 数据对齐标识,修复对齐后TMDB标题替换错误启动
* tmdb-util.js:调整智能标题替换执行逻辑,无有效资源时不再进行无效计算
2026-05-10 08:16:11 +08:00
huangxd-
a51fb8d408
首页增加完全免费声明
2026-05-10 08:14:10 +08:00
Wo254992
96377c9143
fix: 修复 b23.tv 短链重定向解析 ( #300 )
...
改为读取 b23.tv 第一跳 Location,避免继续请求最终页面时遇到风控失败;补充短链重定向回归测试。
2026-05-05 07:58:57 +08:00
Elegy233
87b7c468d1
调整合并工具极端情况下的集映射 ( #299 )
...
* merge-util.js:共识集计算加入一定判断,修复Re0最新季因共识差导致animeko映射错误
* merge-util.js:调整最终日志输出
2026-05-05 07:58:34 +08:00
huangxd-
8d84256f45
修改小版本号
2026-05-05 07:58:00 +08:00
piaoyizy
71075b554b
feat: 适配 FongMi影视 原生弹幕接口 ( #296 )
...
* feat: add FongMi native danmaku adapter
* feat: improve FongMi title and episode matching
2026-05-02 10:50:53 +08:00
huangxd-
e851d7495d
修复最近bangumi-data继承导致fw插件不可用的问题 ( #297 )
...
* fw插件删除bangumi-data-util.js的代码导入
* fw中删除bangumi-data-util引用语句
* GitHub默认需配置ENABLE_HF_SYNC为true才开启sync_hf.yml
* 修改readme
2026-05-02 10:50:10 +08:00
Wo254992
92fef384e6
分离 HF README 元数据:新增 README.hf.md,sync_hf.yml 推送前自动替换 ( #292 )
...
参考 hf-space-clean-readme 分支做法:
- README.md 保持干净文档,不放 HF YAML frontmatter
- README.hf.md 专门存放 HF metadata(title/emoji/sdk/port)
- GitHub Actions sync_hf.yml 在推送到 HF Space 前临时 cp 替换
2026-04-30 23:39:41 +08:00
huangxd-
0ab244b1c4
readme中增加 danmu_api 图文教程 链接
2026-04-30 23:08:09 +08:00
huangxd-
7581b929bb
claw下线,删除相关内容
2026-04-30 22:58:39 +08:00
woleigedouer
c4e6230bf8
fix(tencent): 支持别名匹配以提升搜索准确度 ( #291 )
...
- 新增 extractAliasesFromHintWords 方法从hintWords 提取别名
- 新增 titleOrAliasMatches 方法支持标题和别名匹配
- 在 getAnimeInfo 和 searchAnime 中添加 aliases 字段
- 优化搜索过滤逻辑,使用别名匹配替代单一标题匹配
2026-04-30 22:54:30 +08:00
Elegy233
b50af1f992
健壮 Bangumi Data 匹配与合并工具,修复相关问题 ( #289 )
...
* 修复开启 USE_BANGUMI_DATA 后《加油!中村同学!!》对齐 Bangumi-Data 数据后结果被抛弃
* 命中数据流程进行简繁转换,提升准确度
* Update bahamut.js
* bahamut.js:补全 retries: 1 重试参数,避免反代场景的一定风控
* dandan.js:补全 retries: 1 重试参数,避免接口不稳定
* merge-util.js:修复“终末起点”合并问题,并在判断季时深入到别名池
* animeko.js:补全别名传递
* dandan.js:补全别名传递
Added aliases to the data structure and improved title matching logic.
* common-util.js:引入繁简转化工具,用于标题匹配路由提升可靠性
修复开启 Bangumi Data 匹配后弹弹源始终不返回“终末起点 第二季”结果(因为 Bangumi Data 数据这一部使用的是繁体)
* Update common-util.js
* bangumi-data-util.js:精简裁切Bangumi Data 数据结构,大幅减少硬盘与内存占用
2026-04-30 22:53:17 +08:00
049e412748
Hugging配备ui管理 ( #288 )
...
* Create sync.yml
* Update README.md
* Add Hugging Face Spaces deployment support
* Update sync.yml
* Update README.md
* Update Dockerfile
* Update README.md
* Update README.md
* Update Dockerfile
* Rename sync.yml to sync_hf.yml
* Update README.md
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: huangxd- <649924757@qq.com >
2026-04-30 22:51:36 +08:00
huangxd-
b5da389605
修改小版本号
2026-04-30 22:50:40 +08:00
Elegy233
01fd9e15aa
集成 bangumi-data 项目,开启后提升动画源的检索与匹配速度并解锁隐藏/区域番剧 ( #283 )
...
* envs.js:新增 Bangumi Data 加速匹配开关 与 Bangumi Data 缓存有效期 配置
* 新增 Bangumi Data 管理工具,用于下载与管理Bangumi Data数据
感谢 https://github.com/bangumi-data/bangumi-data
* worker.js:参加Bangumi Data 辅助函数用于判断数据更新
* server.js:配合清理 Bangumi Data 关闭时占用的内存
* tmdb-util.js:Bangumi Data 开启时调用它大幅提升获取日语原名速度
实现获取动画日语原名零请求
* animeko.js:Bangumi Data 开启时调用它,节省一次搜索请求
已知问题:缺失imageUrl,问题不大
* bahamut.js:Bangumi Data 开启时调用它,补全别名与类型
Bangumi Data 给的是acg_sn,预期需要是video_sn,因此无法直接应用
https://github.com/bangumi-data/bangumi-data/issues/336
* bilibili.js:Bangumi Data 开启时调用它,补全缺失的隐藏结果与区域结果
实现港澳台番剧与隐藏番剧自由,例如《笨拙之极的上野》
* dandan.js:Bangumi Data 开启时调用它,节省一次搜索请求
弹弹其实当务之急是怎么节省详情接口的请求… 多结果风控错误概率大
* common-util.js:为标题匹配的相似度策略加入一定阻断
防止纯英文搜索时因相似度打乱字符匹配大量结果被放行
* .env.example:更新 Bangumi Data 相关变量
* README.md:更新 Bangumi Data 相关说明
* Enhance comments for USE_BANGUMI_DATA in .env.example
Updated comments to clarify the functionality of USE_BANGUMI_DATA.
* Enhance USE_BANGUMI_DATA description
Updated the description for USE_BANGUMI_DATA to include unlocking hidden/region-specific anime.
* README.md:补全目录
* bangumi-data-util.js:纯内存加载时使用原生 fetch ,并声明压缩头
* bangumi-data-util.js:增加云部署纯内存运行提示
* bangumi-data-util.js:更新配音版本正则
* merge-util.js:标准化正则
* tmdb-util.js:标准化正则
* animeko.js:标准化正则
* README.md:补充文件目录
* bangumi-data-util.js:修复CF部署下载请求被切断导致堵塞
Added download lock mechanism to prevent deadlocks in serverless environments and implemented a timeout for download operations.
* worker.js:透传ctx
* bangumi-data-util.js:调用 ctx.waitUntil 延长 Serverless 生命周期
* bilibili.js:补全md号解析链路
Add handling for media IDs starting with 'md' to fetch episodes.
* server.js:异步初始化 Bangumi Data 缓存,消除首个真实请求遭遇冷启动的等待延迟
* bangumi-data-util.js:双节点同时竞速下载数据,提升下载可用性与速度
2026-04-26 15:26:02 +08:00
huangxd-
b2afb2dbdc
修复ai匹配结果isMatched未设置为true的问题
2026-04-26 15:24:55 +08:00
huangxd-
871db792da
优化自动匹配和记住集episode偏移功能
2026-04-19 13:17:27 +08:00
huangxd-
028835c2c4
douban源搜索接口增加公开api兜底
2026-04-18 11:58:44 +08:00
Elegy233
59fff265cd
修复 match 接口因为标题清理导致故障 ( #282 )
...
* dandan-api.js:调整标题清理相关调用顺序
* common-util.js:调整标题清理相关调用顺序
* Enhance comment in extractSeasonNumberFromAnimeTitle
Add comment to clarify the process of extracting season number from anime title.
* globals.js 1.18.7
2026-04-14 20:28:51 +08:00
Elegy233
087c136b9b
修复合并工具特殊情况下集映射错误,更新标题匹配使用的正则,修复白日提灯因携带零宽字符导致无结果 ( #279 )
...
* bahamut.js:如果搜索关键词是日语则不经过common-util
获取不到原名信息作为别名所以直接放行
* common-util.js:清理标题时清理()括号
* merge-util.js:修复《一拳超人 第三季》关联时集映射错误
因为巴哈首集是“24.5集”番外集,所以判断错误,现在非整数集也视为番外集,番外集会找番外集去匹配
* common-util.js:清理标题时清理·点
* common-util.js:清理标题更改为白名单模式,使用Unicode区间正则囊括非常完整的文字内容
* dandan.js:使详情接口错误重试一次
* common-util.js:添加零宽字符清理函数
* vod.js:调用零宽字符清理函数,解决“白日提灯%E2%80%8B"搜索无结果
Added a function to sanitize search keywords before making API requests.
2026-04-13 22:57:32 +08:00
huangxd-
38cafc1d34
弹幕偏移百分比模式如果弹幕duration为0,则取最后一条弹幕作为视频时长 ( #281 )
2026-04-13 22:57:03 +08:00
huangxd-
5ce27183f1
修改readme
2026-04-11 14:09:08 +08:00
huangxd-
91cff0da83
修改reademe
2026-04-11 14:03:55 +08:00
Elegy233 and huangxd-
fe4a96f50b
因 related 接口废弃将合并工具的跨源时间轴对齐功能改回本地算法 ( #275 )
...
* merge-util.js:因 related 接口废弃将跨源时间轴对齐功能改回本地算法
天塌了(
* README.md:更新平台列表添加特别感谢栏
* merge-util.js:更新跨源时间轴对齐算法
* dandan-api.js:重写跨源时间轴对齐调用函数
* merge-util.js:精简跨源时间轴对齐算法
* merge-util.js:为弹弹豁免匹配率同时修复缺集导致的集映射错误
修复弹弹因为从零开始的异世界生活第四季因为集刮削错误缺2~4集导致的集映射错误
---------
Co-authored-by: huangxd- <649924757@qq.com >
2026-04-11 14:01:38 +08:00
dyphire
77ecdcf233
跟随弹弹上游 API 变动废弃 related 相关接口功能 ( #274 )
2026-04-11 13:56:01 +08:00
huangxd-
3495835e7c
新增弹幕时间偏移功能以及环境变量DOUBAN_COOKIE ( #276 )
...
* 弹幕偏移支持百分比模式
* 修复偏移配置保存之后不显示源选择的问题
* 增加豆瓣cookie环境变量
2026-04-11 13:55:39 +08:00
Elegy233
59533acfc9
使 match 接口匹配时检查源传入的别名,并优化别名替换相关逻辑 ( #271 )
...
* dandan-api.js:使 match 接口匹配时检查别名
* dandan.js:彻底删除内部api别名替换逻辑,因为别名已经传给需要的工具
* tmdb-util.js:全面优化tmdb智能标题替换逻辑
优先选择与用户传入的关键词相同的别名(https://github.com/huangxd-/danmu_api/pull/270 的拓展)
* envs.js:更新集过滤正则与aliases ai提示
* .env.example:更新集过滤正则
* Update README.md
2026-04-03 22:00:20 +08:00
huangxd-
eace9cfbd8
Merge branch 'main' of github.com:huangxd-/danmu_api
2026-04-03 21:59:38 +08:00
huangxd-
dce8dbbd18
修改小版本
2026-04-03 21:59:26 +08:00
dyphire
e7bdc3a831
360 源添加episodesv2分集获取接口 ( #272 )
2026-04-03 21:59:04 +08:00
Elegy233
b6926712f5
为弹弹源添加别名替换相关逻辑,使不同译名的结果能够参与match匹配 ( #270 )
...
* tmdb-util.js:将关键词清理函数提取为公共函数
* dandan.js:调用tmdb智能别名替换,并增加内部别名智能替换功能
使不同译名的结果能够参与match匹配
2026-04-02 22:50:27 +08:00
dyphire
d89ba7a1c2
提高 match 接口的匹配精度 ( #269 )
2026-04-02 22:50:18 +08:00
dyphire
3e02301b9f
修复 360 源的剧集获取 ( #268 )
2026-04-02 22:50:06 +08:00
dyphire
9fe76afc85
正确兼容弹弹的 url 弹幕获取接口 ( #267 )
2026-04-02 22:49:41 +08:00
huangxd-
afa0eb1c1f
修改小版本号
2026-04-02 22:48:15 +08:00
huangxd-
c049d1c312
修复aiyifan-util.js中部分语法在ios fw中不适配的问题
2026-03-31 23:49:34 +08:00
Wo254992
c2eeeb164b
重构爱壹帆签名工具并优化并发复用 ( #266 )
2026-03-31 22:25:07 +08:00
huangxd-
9bc48f2360
修改小版本号
2026-03-31 22:23:44 +08:00
huangxd-
c8fc8f1f65
修复aiyifan源fw报错的问题
2026-03-30 22:58:31 +08:00
huangxd-
de148bccb4
更新环境变量的说明
2026-03-30 22:29:47 +08:00
haode and huangxd-
2c3f574cd0
动漫标题缓存最大数量可配置化 ( #264 )
...
* Update vercel.json
* Update vercel.json
* Add files via upload
动漫标题缓存最大数量可配置化修改,在某些场景下通过接口获取的标题数会超过100,没有缓存到的标题无法通过id获取到弹幕,增加动漫标题缓存最大数量可配置化修改
---------
Co-authored-by: huangxd- <649924757@qq.com >
2026-03-30 22:27:20 +08:00
lilixu3
3956d80e98
修复爱壹帆源播放列表、视频信息、弹幕接口区域限制问题 ( #263 )
...
app-m10.tripdata.app 对部分地区返回"您所在的区域必须登录",
将 PLAYLIST_API、VIDEO_API、DANMU_API 域名替换为 m10.yfsp.tv
2026-03-30 22:23:34 +08:00
huangxd-
f7fc36f384
更新小版本号
2026-03-30 22:23:12 +08:00
huangxd-
6a715e6372
修复hanjutv分片不可用的问题
2026-03-30 00:20:01 +08:00
Wo254992
b5d41fb42d
重构韩剧TV弹幕源的核心逻辑,优化双链路(韩小圈 HXQ + 极速版 TV)架构的稳定性和代码质量,修复多个实际运行中的 bug ( #261 )
...
* feat(hanjutv): 重构韩剧TV源为双链路架构(韩小圈+极速版)
- 搜索:并行调用 s5(韩小圈)和 TV(极速版)接口,按标题匹配自动合并为 merged 候选,未匹配的保留为独立变体
- 详情/剧集:merged 变体并行拉取双端剧集列表,按集号合并;支持 3 层降级(merged → hxq → tv)
- 弹幕:merged 剧集 ID 编码为 base64url,拉取时按 ref 分别请求并打上细粒度来源标签(韩小圈/极速版)
- 弹幕分页:韩小圈端使用 60s 窗口滑动 + 多 host 容灾,TV 端使用全量范围分页
- 加密:统一 AES-CBC 加密参数,新增 TV 端请求头构建(buildLiteHeaders)和响应解密
- 搜索身份:闭包工厂模式缓存 mobile/tv 请求头,暖身请求实例内只执行一次
- 外层合并:fetchMergedComments 保留韩剧TV内部细粒度标签,仅在缺失时补充源标签
- 点赞阈值:handleDanmusLike 支持韩小圈/极速版变体标签的低阈值判定
- 公共工具:base64url 编解码移至 codec-util,正时间戳归一化移至 time-util
* 将韩剧TV专用函数从通用工具移到hanjutv-util
encodeBase64UrlText、decodeBase64UrlText、normalizePositiveTimestamp
三个函数只有hanjutv-util在用,放在通用工具里会导致部分运行环境
文件体积超限无法加载,移到hanjutv-util作为本地函数
2026-03-29 23:53:50 +08:00