DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

rUrU516 /

rUrU516/dsh-quicktime-player

Verified

Sidebar video player for DeepSeek Harness: streaming playback with seek, wheel zoom, drag pan and a custom control bar

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1a4b7b71

dsh-quicktime-player

A sidebar video player for DeepSeek Harness — streaming playback with seek, wheel zoom and drag pan.

the player docked in the right sidebar

Features

  • Plays from anywhere. Registers its own right-sidebar tab type, so any video opened through DSH — Files tab, chat file reference, another sidebar plugin's tree, sidebar_open — lands in this player. Nothing else needs to be installed, and no other plugin needs adapting.
  • Seekable. A Host route streams bytes with HTTP Range (206), so the progress bar scrubs instead of snapping back. Bytes stay on disk — a multi-GB video is never read into memory.
  • Seek works on Desktop too. The Electron shell serves the page from dsh-app://, where Chromium cannot seek a <video> response; the player therefore streams from a tokenized 127.0.0.1 port and falls back to the same-origin route when that port is unavailable.
  • Zoom and pan. Wheel zooms around the pointer (1× – 8×), drag pans while zoomed, double-click toggles fullscreen.
  • Own controls. Play/pause, time ⇄ frame number, speed slider (0.2× – 5×, 0.2 steps), loop, vertical volume popup, mute, picture-in-picture, fullscreen. The chrome fades out while the mouse is idle.
  • Frame stepping. ← / → step one frame; the frame rate is measured from delivered frames.
  • Keyboard is never stolen. While focus is inside the pane — even on a slider — Space and the arrows stay with the player.

Install

dsh plugin --profile <profile> add dsh-quicktime-player

Reopen the window once so the client bundle is picked up.

Controls

Input Action
Space / K play / pause
← → one frame back / forward
Shift + ← → ±1 s
↑ ↓ volume
M mute
F / Enter fullscreen
0 reset zoom
+ / − zoom in / out
click the clock switch between time and frame numbers

Configuration

Optional, on the quicktime-player row:

Key Default Meaning
routePrefix /quicktime same-origin route prefix
loopback true tokenized 127.0.0.1 media source (what makes Desktop seek work)
maxBytes 4 GiB larger files are refused with 413
extraRoots [] extra path roots allowed besides the session working directory

How it works

  • One tab type. ctx.sidebarRightTabs.register claims video addresses with per-suffix globs (dsh-resource://file/**/*.mp4, …). The registry ranks tab types by band, then by pattern length, then by registration order — a longer, video-only glob outranks a sidebar plugin's generic dsh-resource://file/**, so videos route here and every other file keeps its usual viewer.
  • One Host route. ctx.webServer.register serves /quicktime/source, /quicktime/stream and the tokenized loopback port. Paths are confined to the session working directory.
  • No dependency on any other plugin: the core is the tab type plus that route.

.mkv, .avi, .wmv and .flv are accepted but Chromium cannot decode them; the player reports that instead of pretending to play.

Troubleshooting

  • ~/.dsh/quicktime-player.log — one JSON line per player event (source resolved, metadata, decode errors).
  • GET /quicktime/_graph — dev probe for whether the client bundle is in the module graph.

License

MIT. The icon follows QuickTime Player's silhouette with our own colourway; it contains no Apple artwork.

—/ 5

No ratings yet

Verified DSH bundle

Commit 1a4b7b71cd27

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout