【免费下载链接】kerkerker
🎬 这是壳儿 - 影视聚合平台 - 豆瓣集成/多源切换/智能匹配 | Next.js + TypeScript | Docker 部署 | Vercel 部署
Kerkerker 是一款免费的影视聚合平台,深度集成豆瓣数据:打开任意电影详情页,豆瓣评分、导演、演员、热门短评会自动展示出来,同时系统还会智能匹配多个视频源的播放资源,让你不用手动搜索就能一键开看。这篇文章带你搞懂 Kerkerker 豆瓣信息智能匹配的完整工作原理,以及如何在自己的服务器上部署起来。
豆瓣信息从哪里来:豆瓣服务集成
Kerkerker 的豆瓣数据由一套独立服务提供,前端通过 lib/douban-service.ts 这个客户端直连豆瓣 API 服务,无需经过额外的代理层:
- 影片详情:
getSubjectDetail(id)根据豆瓣 ID 拉取评分、导演、主演、地区、时长、短评、剧照等信息(见 lib/douban-service.ts) - 热映榜单:首页轮播和分类行通过
/api/v1/hero、/api/v1/latest等接口获取豆瓣实时热映 - 搜索联想:搜索框输入的候选项、高级搜索都走豆瓣搜索接口
- 图片代理:豆瓣海报图通过站内
/api/image-proxy中转加载,规避防盗链问题,组件在 components/DoubanCard.tsx 中实现
💡 如果你想像项目一样自建豆瓣代理,仓库里提供了现成的 Cloudflare Worker 方案和一键部署脚本:docs/cloudflare-douban-proxy.js 内置了按接口区分的响应缓存(影片详情缓存 1 小时、榜单 10 分钟),scripts/deploy-douban-proxy.sh 可以自动完成部署。
智能匹配的三步流程:从豆瓣影片到可播资源
进入电影详情页后,Kerkerker 会自动执行"标题清洗 → 多源并行搜索 → 置信度排序"三步匹配流程。
第一步:标题清洗与关键词提取
豆瓣的影片标题往往很长,例如"人偶之家 ドールハウス (2025)"。直接拿这种标题去视频源里搜索,命中率很低。
Kerkerker 在 lib/utils/title-utils.ts 中实现了cleanTitleForSearch函数:
- 剔除年份、Unicode 控制字符和不可见标记
- 分析标题的语言组成(中文/日文/韩文/英文占比)
- 优先提取中文主标题,跳过假名等干扰部分
- 可选地生成多种搜索变体(含副标题、去数字版、纯英文版),进一步提高匹配率
比如"复仇者联盟4:终局之战 (2019)"会被清洗为简短关键词,再发给视频源搜索。
第二步:多视频源并行搜索
清洗后的标题会发送给/api/douban/match-vod-stream接口。它的核心逻辑在 app/api/douban/match-vod-stream/route.ts:
- 从数据库读取你在后台配置的所有视频源
- 并行向每个源发起关键词搜索(10 秒超时,慢源不会拖垮整体)
- 采用流式响应(SSE):哪个源先找到结果,页面就立刻显示哪个,不用干等全部搜完
第三步:置信度评分与排序展示
找到结果还不够,还要判断"找没找对"。匹配算法按三级置信度打分:
| 置信度 | 判定条件 | 界面表现 |
|---|---|---|
| 高(精确) | 视频源片名与豆瓣标题完全一致 | 绿色"精确"标签 |
| 中 | 片名与标题互相包含(如含副标题差异) | 普通展示 |
| 低 | 仅取搜索列表第一条兜底 | 排在其后 |
最终所有可用源按源优先级 → 置信度排序展示,置信度计算逻辑可参考 app/api/douban/match-vod/route.ts。详情页还会把匹配结果缓存 30 分钟(app/movie/[id]/page.tsx),下次进入同一部影片秒出播放源。
找到资源后:一键播放与多源切换
匹配完成后,点击"立即播放"就进入播放页,默认使用排名第一的源;也可以在播放页随时切换到其他已匹配的源。
播放器支持 HLS、倍速与快捷键,同时还能自动匹配加载弹幕(见 lib/player/danmaku-service.ts),整体观影体验接近主流视频平台。
自己动手:部署 Kerkerker 的步骤
想体验完整的豆瓣匹配功能,只需三步:
git clone https://gitcode.com/gh_mirrors/ke/kerkerker cd kerkerker docker-compose up -d- 使用 docker-compose.yml 一键启动应用 + MongoDB,数据自动持久化
- 关键环境变量:
MONGODB_URI(数据库连接)、ADMIN_PASSWORD(后台密码);豆瓣服务有默认地址,一般无需额外配置 - 启动后访问
/login进入后台,在"视频源管理"中配置至少一个视频源,详情页的智能匹配就会生效(对应 app/admin/settings/page.tsx)
常见问题
Q:为什么有的影片详情页没有评分?评分来自豆瓣数据,影片越新、豆瓣收录越少,评分可能暂时为空;热门短评、剧照等字段同理,接口有返回就会展示。
Q:提示"未配置视频源"怎么办?智能匹配依赖你在后台添加的视频源列表,进入管理后台配置一个或更多视频源即可。
Q:匹配结果不精确是正常现象吗?视频源的片名与豆瓣标题经常有细微差异(年份后缀、副标题),此时结果会标注为中等置信度,你可以手动点选列表中更合适的源。
总结
Kerkerker 通过"豆瓣数据集成 + 标题智能清洗 + 多源并行匹配 + 置信度排序"四个环节,实现了豆瓣评分与播放资源的自动关联:你只负责选片,剩下的匹配工作交给它。整套方案基于 Next.js + TypeScript 构建,Docker 一条命令即可部署,非常适合喜欢折腾又想要省心观影体验的玩家。
【免费下载链接】kerkerker
🎬 这是壳儿 - 影视聚合平台 - 豆瓣集成/多源切换/智能匹配 | Next.js + TypeScript | Docker 部署 | Vercel 部署
相关推荐
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考