鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-media-preview

在 DSH 聊天记录中自动将本地音视频路径渲染为可播放预览:将路径替换为同源 /api/media-preview/* 路由支持的 <audio>/<video> 播放器,并返回明确的错误状态码。

界面增强
访问 GitHub
文档README

dsh-media-preview

DSH 插件:在聊天记录中自动将本地/在线音视频/图片路径渲染为可播放的预览组件

当助手消息或工具结果中出现本地音频/视频/图片路径,或在线 http(s) 媒体链接时,自动将其替换为内联的 <audio> / <video controls playsInline> / <img> 预览。

默认模式为 unrestricted:DSH 进程可读的任何文件路径均可访问;权限 / IO 错误会以明确的 HTTP 状态码和原因字符串返回,方便浏览器原生播放器呈现有意义的错误提示。


功能特性

  • Range 请求(bytes=start-end)→ 206 Partial Content,支持 <video> 进度拖拽
  • 全文件 GET → 200 OK
  • 缓存 → Cache-Control: private, max-age=60
  • 客户端正则仅匹配 /Users|/tmp|/private/tmp|/var/folders|/var/tmp 根路径 + 15 种扩展名,避免误匹配外部 URL
  • UTF-8 安全路径编码,支持非 ASCII 文件夹名
  • <style> 自动清理:插件卸载时客户端 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


安装

▼
bash
复制代码
# 进入 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/<profile-name>/package.json

方式二手动补全:在上面的 package.json 中添加:

▼
json
复制代码
"dsh": { "profile": { "bundles": [ "media-preview" ] } }

源码修改后需重启 dsh web。


限制

  • 全文件缓冲读取(上限 500 MB)。大视频首帧可能较慢;Range 请求在同一内存缓冲区上切片。
  • 无目录列表。无符号链接策略(依赖 fs.stat)。
  • 500 MB 限制是单请求的,不是会话级的。未来版本可能会通过 child_process dd 流式传输。

错误状态码

条件状态码原因
文件不存在404not found: <errno>
权限不足500permission denied: <errno>
是目录415is a directory, not a file
符号链接循环400symlink loop or too many links
路径过长400path too long
不支持的扩展名415unsupported media type: <ext>
文件 > 500 MB413file too large: <bytes> > 524288000 cap
Range 无效416Content-Range: bytes */<total>

开源协议

MIT

打赏支持

若这个插件帮到了你,欢迎用下面的二维码请我喝杯咖啡。

WeChat Pay
微信支付
Alipay
支付宝
界面增强

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:xiaokaizhou/dsh-media-preview

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
DSH-agent-bridge
在 Web 输入框中切换原生 DSH Agent 与 Grok Build,并通过 ACP 代理 Grok Build 会话及斜杠命令。
dsh-gui-hanhua
DeepSeek Harness 界面信息汉化插件:工具调用卡片、插件列表、命令菜单与权限选择器显示中文,保留英文原名。
ai-plugin#dsh-plugin
aipx 工具包:技能之外还有 Hub Console 控制台——用约 4 个元工具代理全部 MCP 服务器,含服务器池健康、工具级启停、工具目录,以及直观展示 mcp_search 返回结果的搜索试验场。
dsh-gpu-pulse
DSH Web 界面内置的悬浮 GPU 监控:紧凑可拖动的条带,每张独立 GPU 一行(精确名称、利用率、显存、温度、功耗),数据来自 nvidia-smi;侧边面板或侧边卡片打开时保持在最上层;驱动支持时还列出显存占用最高的进程;无 NVIDIA 驱动的机器会退化为 n/a 胶囊。
dsh-sticky-notes
泡泡猫的即时便签 — 支持彩色标签、置顶、定时提醒与密码保护。