npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

koishi-plugin-douyin-local-parser

v0.1.2

Published

Parse Douyin links and cards for Koishi.

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:输出视频下载开始、下载结果、大小阈值判断、发送模式和失败原因等调试日志。

下载模式只处理每个作品的首个视频,避免多视频或动态图集一次性消耗过多带宽。