dsh-media-preview
界面增强 活跃维护

dsh-media-preview

tsonglew/dsh-media-preview

Audio/video preview viewer for dsh-better-sidebar: native playback with Range-seeking streaming route

3
Stars 标星
0
Forks 分支
3
Watchers 关注
1
Open Issues
JavaScript
主要语言
MIT
开源协议
10 KB
仓库大小
5 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:tsonglew/dsh-media-preview
git clone https://github.com/tsonglew/dsh-media-preview.git
git clone git@github.com:tsonglew/dsh-media-preview.git
README.md master

dsh-media-preview

Awesome DSH Plugin

Audio and video preview for the DeepSeek Harness (dsh) web GUI, registered as
a FileViewer inside
dsh-better-sidebar. Open an
.mp4/.webm/.mkv/.mov/… or .mp3/.flac/.wav/… file in the sidebar
file tree and it plays inline with native controls.

Video Audio
image image

Why a dedicated route

better-sidebar's built-in /sidebar/file media route reads whole files into
memory, has no HTTP Range support, and caps at an image-oriented size
limit. This package serves media through its own streaming route
(/media-preview/file) with:

  • HTTP Range (206) seeking — the browser can jump anywhere in a long video
  • Streamed responses (fs.createReadStream) — no whole-file buffering
  • Whole-filesystem scope behind the same browser trust fence the built-in
    /api documents (loopback Host + same-origin markers), matching the
    official directory-picker browse backend — the sidebar explorer browses
    outside the session cwd (e.g. a music folder in ~/Documents), and media
    files must play wherever the explorer can open them

Supported extensions

Video: mp4 webm mov m4v mkv avi ogv ts 3gp flv
Audio: mp3 wav ogg oga m4a aac flac opus weba wma

Extension-less media is still claimed via magic-byte sniffing (ftyp,
EBML, OggS, fLaC, RIFF/WAVE, RIFF/AVI, ID3, MP3 frames).

Install

dsh plugin --profile web add github:tsonglew/dsh-media-preview

(Requires dsh-better-sidebar ≥ 0.4.0, which exposes
ctx.betterSidebar.registerFileViewer.)

Configuration

All fields optional (profile patch layer):

- id: media-preview
  config:
    maxMediaBytes: 2147483648  # hard cap on one served file (default 2 GiB)
    trustedHosts: []           # extra non-loopback authorities

License

MIT