koishi-plugin-douyin-local-parser
v0.1.2
Published
Parse Douyin links and cards for Koishi.
Maintainers
Readme
koishi-plugin-douyin-parser
抖音链接解析 Koishi 插件,支持普通链接、短链和聊天平台卡片消息中的链接提取,可选合并转发。
解析逻辑参考了 fllesser/nonebot-plugin-parser 的抖音解析实现,并按本地 xhs-parser 的 Koishi 插件结构改写。
功能
- 解析
https://v.douyin.com/...、https://jx.douyin.com/...短链 - 解析
https://www.douyin.com/video/... - 解析
https://www.douyin.com/note/... - 解析
https://www.iesdouyin.com/share/video|note|slides/... - 解析
https://m.douyin.com/share/video|note|slides/... - 解析
https://jingxuan.douyin.com/m/video|note|slides/... - 从 Koishi 卡片元素的
data字段、转义 JSON、普通文本中提取抖音链接 - 支持图片、动图、视频、原文链接和作者信息返回
- 支持视频直链发送,或先下载首个视频后以 Buffer / base64 / file URL 模式发送
- 支持 OneBot / Red 适配器的合并转发元素
本地测试
npm install
npm test
npm run build也可以直接跑一次真实解析:
npm run dev -- "https://v.douyin.com/_2ljF4AmKL8/"Koishi 使用
构建后在 Koishi 配置中加载本地插件:
plugins:
/absolute/path/to/douyin-parser/lib:
enabled: true常用视频发送配置:
plugins:
/absolute/path/to/douyin-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:输出视频下载开始、下载结果、大小阈值判断、发送模式和失败原因等调试日志。
下载模式只处理每个作品的首个视频,避免多视频或动态图集一次性消耗过多带宽。
