← 返回列表
未验证
DSH 插件:在聊天记录中自动将本地音视频路径渲染为可播放的预览组件
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/1 · 已提供中文文档
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
0
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/xiaokaizhou/dsh-media-preview.git数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-media-preview
中文 English npm
DSH 插件:在聊天记录中自动将本地/在线音视频/图片路径渲染为可播放的预览组件
当助手消息或工具结果中出现本地音频/视频/图片路径,或在线 http(s) 媒体链接时,自动将其替换为内联的 / / 预览。
默认模式为 unrestricted:DSH 进程可读的任何文件路径均可访问;权限 / IO 错误会以明确的 HTTP 状态码和原因字符串返回,方便浏览器原生播放器呈现有意义的错误提示。
功能特性
- Range 请求(bytes=start-end)→ 206 Partial Content,支持 进度拖拽
- 全文件 GET → 200 OK
- 缓存 → Cache-Control: private, max-age=60
- 客户端正则仅匹配 /Users|/tmp|/private/tmp|/var/folders|/var/tmp 根路径 + 15 种扩展名,避免误匹配外部 URL
- UTF-8 安全路径编码,支持非 ASCII 文件夹名
- 自动清理:插件卸载时客户端 Fiber 自动移除注入样式
支持格式(27 种)
本地路径与在线链接均支持以下扩展名:
音频/视频(15 种):mp3 wav m4a flac ogg opus aac mp4 mov mkv m4v webm avi 3gp ogv
图片(12 种):png jpg jpeg gif bmp webp svg tiff ico avif heic heif
在线链接示例:https://example.com/clip.mp4、https://cdn.site.com/img/photo.webp
Preview
Demo
安装
进入 DSH web profile
cd ~/.dsh/profiles/web
方式一(推荐):dsh 官方命令(自动写入 bundles 与 cordis.patch.yml)
dsh plugin --profile web add xiaokaizhou/dsh-media-preview
方式二:pnpm 直装(需手动补一步,见下方说明)
pnpm add xiaokaizhou/dsh-media-preview
package.json 位于 DSH profile 根目录:
- 默认路径:~/.dsh/profiles/web/package.json(macOS / Linux)
- Windows:%USERPROFILE%\.dsh\profiles\web\package.json
- 自定义路径:$DSH_HOME/profiles/web/package.json,可通过环境变量 DSH_HOME 覆盖
- 如有多个 profile,对应路径为 ~/.dsh/profiles//package.json
方式二手动补全:在上面的 package.json 中添加:
"dsh": {
"profile": {
"bundles": [
"media-preview"
]
}
}
源码修改后需重启 dsh web。
限制
- 全文件缓冲读取(上限 500 MB)。大视频首帧可能较慢;Range 请求在同一内存缓冲区上切片。
- 无目录列表。无符号链接策略(依赖 fs.stat)。
- 500 MB 限制是单请求的,不是会话级的。未来版本可能会通过 child_process dd 流式传输。
错误状态码
| 条件 | 状态码 | 原因 |
|------|--------|------|
| 文件不存在 | 404 | not found: |
| 权限不足 | 500 | permission denied: |
| 是目录 | 415 | is a directory, not a file |
| 符号链接循环 | 400 | symlink loop or too many links |
| 路径过长 | 400 | path too long |
| 不支持的扩展名 | 415 | unsupported media type: |
| 文件 > 500 MB | 413 | file too large: > 524288000 cap |
| Range 无效 | 416 | Content-Range: bytes */ |
开源协议
MIT
打赏支持
若这个插件帮到了你,欢迎用下面的二维码请我喝杯咖啡。
微信支付
支付宝同作者(xiaokaizhou)的其他插件
扫码进群