koishi-plugin-xhs-parser
v0.1.4
Published
Parse Xiaohongshu links and cards for Koishi.
Maintainers
Readme
koishi-plugin-xhs-parser
小红书 / RedNote 链接解析插件,支持普通链接、xhslink.com 短链和聊天平台卡片消息中的链接提取,可选合并转发。
功能
- 解析
https://www.xiaohongshu.com/explore/... - 解析
https://www.xiaohongshu.com/discovery/item/... - 解析
https://xhslink.com/...,例如http://xhslink.com/m/AixEkyLwpfs - 从 Koishi 卡片元素的
data字段、转义 JSON、普通文本中提取小红书链接 - 支持图片、视频链接、原文链接和基础互动数据返回
- 支持视频直链发送,或先下载首个视频后以 Buffer / base64 / file URL 模式发送
- 支持 OneBot / Red 适配器的合并转发元素
本地测试
npm install
npm test
npm run build也可以直接跑一次真实解析:
npm run dev -- "http://xhslink.com/m/AixEkyLwpfs"Koishi 使用
构建后在 Koishi 配置中加载本地插件:
plugins:
/absolute/path/to/xhs-parser/lib:
enabled: true常用视频发送配置:
plugins:
/absolute/path/to/xhs-parser/lib:
enabled: true
showVideo: true
downloadVideoAsFile: false
videoDownloadMode: buffer
maxDownloadedVideoSizeMB: 20
maxVideoSendSizeMB: 100说明:
downloadVideoAsFile: false:默认行为,不下载视频,直接发送小红书视频直链。downloadVideoAsFile: true:先用 Koishi 的ctx.http.file()下载首个视频,下载失败会自动回退直链。videoDownloadMode: buffer:以二进制 Buffer 传给h.video(),通常最推荐。videoDownloadMode: base64:转换成base64://...发送,适合部分 OneBot 实现。videoDownloadMode: file:写入系统临时目录并以file://URL 发送,适合部分 Napcat / 本地网关场景。maxDownloadedVideoSizeMB: 20:下载后的视频超过该大小时,自动回退为发送小红书视频直链,避免大视频转 base64 时超过 Node 字符串长度限制。设为0表示不限制。maxVideoSendSizeMB: 100:视频超过该大小时不发送视频,包括直链。设为0表示不限制。loggerinfo: true:输出视频下载开始、下载结果、大小阈值判断、发送模式和失败原因等调试日志。
下载模式只处理每个笔记的首个视频,避免一次消息消耗过多带宽。
