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
huangxd-
ae4f20c9c9
增加爱壹帆源 ( #262 )
...
* 增加爱壹帆源
* 修复爱壹帆源自动匹配
2026-03-29 23:53:14 +08:00
huangxd-
b4511e501e
优化镜像构建yml ( #258 )
...
* 优化镜像构建yml
* 继续优化镜像构建
2026-03-28 00:04:07 +08:00
Wo254992
ba88bc03a5
fix: 修复匹配与过滤误读全局缓存 ( #257 )
...
- 复现:全局 animes 被旧详情污染时,/api/v2/match 可能把 E42 错配到第45集;开启剧集过滤时,同 animeId 跨源候选也可能被误过滤
- 修复:匹配、bangumi 解析、剧集过滤统一优先使用当前请求详情快照,并补充回归测试
2026-03-27 23:46:54 +08:00
Elegy233
a5fb406596
为dandan实时拉取功能支持related的合并分P格式 ( #256 )
...
* bilibili.js:处理合并分P链接格式
https://www.bilibili.com/combine?cid32908181970=0-583&cid32908250608=0-378&cid32908314947=0-440
* dandan.js:修复实时拉取时b站分p参数被截断,并放行合并分P格式
* merge-util.js:同步更新dandan related 接口对接相关函数
* globals.js:1.17.7
2026-03-27 23:46:38 +08:00
Wo254992
df9696515b
修复快速切集时 lastSearch 竞态导致 offset 写入错误 ( #255 )
...
问题复现:连续看同一部剧的第6集再切第5集时,match请求会覆盖
lastSearchMap中的上下文(按IP只存一条),导致第6集的comment请求
读到第5集的episode信息,算出错误的offset写入lastSelectMap,
后续自动匹配全部偏移。
修复:
- setLastSearch 移到 match 成功后调用,附带 episodeId
- getComment 读取 lastSearch 时校验 episodeId 是否与当前 commentId 一致
- 不一致则跳过 offset 计算,避免写入错误数据
2026-03-25 22:23:06 +08:00
Elegy233
57987959c2
放宽合并工具3D2D的处理,增强API路径前缀智能处理逻辑(适配danmaku-anywhere项目请求),修复链接解析错误占位符字符串 ( #254 )
...
* dandan.js:从tags中提取3D/2D追加到类型
* merge-util.js:放宽没有3D2D标识时的处理
* worker.js:增强API路径前缀智能处理逻辑,适配Danmaku Anywhere项目仅/v2/的请求
旧逻辑面对http://127.0.0.1:9321/********/v2/search/anime会错误补全为http://127.0.0.1:9321/********/api/v2/v2/search/anime
* dandan-api.js:修复了当请求直链 URL 时,API 错误返回占位符字符串
这个问题导致了danmaku-anywhere项目在解析图片时报错,详情:https://github.com/Mr-Quin/danmaku-anywhere/issues/343
2026-03-25 22:20:42 +08:00
huangxd-
e74749b3f9
更新小版本
2026-03-25 22:19:37 +08:00
huangxd-
85771eeb06
优化Tencent源搜索,如果是多语言版本,anime标题增加语言版本
2026-03-22 09:48:43 +08:00
Mr-Quin
9c3efe058e
统一dandan useragent ( #253 )
2026-03-22 08:04:51 +08:00
Elegy233
832d604aed
为合并支持判断3D2D,修复带有不同配音的结果合集判断失误,增加简易的内部特殊条目映射规则 ( #252 )
...
* animeko.js:从tags中提取3D/2D追加到类型
* iqiyi.js:从metaTags中提取3D/2D追加到类型
* tencent.js:从richTags中提取3D/2D追加到类型
* merge-util.js:支持判断3D2D,修复带有不同配音的结果合集判断失误,增加简易的内部特殊条目映射规则
2026-03-22 08:04:32 +08:00
huangxd-
42ae6b8a61
优化Tencent源搜索,补充国粤多语言版本场景下返回多版本
2026-03-22 08:03:47 +08:00
huangxd-
c8b42221aa
回退edgeone相关修改并修复edgeone 405问题 ( #251 )
...
* Revert "修复 EdgeOne token 路由 match 405 (#248 )"
This reverts commit e29c9848bc .
* 修复edgeone 405问题
2026-03-21 00:41:07 +08:00
huangxd-
33a0a37831
修改变量描述
2026-03-20 22:11:40 +08:00
Celestials316
e29c9848bc
修复 EdgeOne token 路由 match 405 ( #248 )
2026-03-20 21:42:10 +08:00
Celestials316
6d587d910e
修复搜索结果超过 100 条时详情与弹幕失效 ( #246 )
...
* 修复搜索缓存详情解析
* 修复搜索缓存详情快照读取与隔离问题
2026-03-20 21:41:37 +08:00
huangxd-
554fc14084
修改小版本号
2026-03-20 21:40:49 +08:00
Wo254992 and Claude Opus 4.6
b267db281d
新增自定义颜色池功能,CONVERT_COLOR为color时支持自定义颜色 ( #243 )
...
- 新增 COLOR_POOL 环境变量,支持自定义弹幕随机颜色池
- 前端新增色轮选色器、随机添加、批量添加弹窗(支持十进制和#hex格式)
- 颜色池样式提取到 components.css.js,JS 中仅保留动态样式
- 不配置时使用默认颜色池,行为与原来一致
- 同步更新 forward-widget、README、.env.example
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-19 22:39:27 +08:00
huangxd-
8e1487409d
兼容ios环境下WebAssembly不存在的场景,适配peekpili搭建本地服务 ( #245 )
2026-03-19 22:38:56 +08:00