dsh-douyin: An Immersive Short-Video Sidebar Plugin for DeepSeek Harness
anacondakc/dsh-douyin
A DSH plugin adding a short-video sidebar to WebUI with native player, series navigation, and precise history replay.
Browse short videos directly in the DeepSeek Harness WebUI sidebar, with a native player that resolves direct links, supporting precise replay and auto-play.
dsh plugin --profile web add github:anacondakc/dsh-douyin- Category
- Entertainment
- Platform
- DSH-Plugin
- Author
- anacondakc
- Distribution
- Plugin
dsh-douyin Key Features
dsh-douyin Repository

dsh-douyin Repo Summary
dsh-douyin is an entertainment DSH plugin for DeepSeek Harness (DSH), designed to bring an immersive short-video experience to the DSH WebUI sidebar. It solves the pain point of quickly browsing short videos within an AI workbench while enabling precise replay of the exact same clip: the native player directly resolves and plays video direct links instead of relying on third-party iframes. Core capabilities include 21 built-in series (senior, sweet girl, COS, dance, etc.), auto-play, wheel/gesture/keyboard switching, precise history replay, and failure self-healing. Maintained by AnacondaKC, licensed under BSD-3-Clause, last updated 2026-08.
What core features does the dsh-douyin DSH plugin support?
dsh-douyin offers dual-mode mounting: if dsh-better-sidebar is installed, it automatically registers a sidebar tab "Shua Video" (single instance); otherwise, it uses a built-in floating dock with a play button on the right edge that expands into an immersive playback panel. Playback operations are rich: click to pause, draggable progress bar, volume slider (0–100%), mobile swipe up/down to switch clips, desktop wheel switching (400ms debounce), and keyboard shortcuts (Space/K for play/pause, M for mute, left/right arrows to seek ±5s, up/down arrows to switch videos). Series navigation uses a Douyin-style horizontal track with the current series centered and highlighted, supporting scroll and snap-to-center.
How to install dsh-douyin?
The installation command is as follows; restart dsh web to take effect:
dsh plugin --profile web add github:anacondakc/dsh-douyin
How does dsh-douyin achieve precise replay and auto-play?
Each video is first resolved via the host route /dsh-douyin/resolve using Node fetch to obtain the real mp4 direct link after 302 redirects, then played by the native player. The history stack stores the direct link, so scrolling up replays the exact same clip (same URL) rather than a new random one from the API. Feed sources auto-advance after each clip finishes (preferring history, requesting new clips only at the end). If a single clip fails to load/decode, it increments backoff and automatically skips; after 3 consecutive failures, it stops requesting and shows an error screen.
What about dsh-douyin's UI design and performance optimization?
The interface is modeled after mobile short-video players: full-screen black background, lightweight category bar at top, media controls at bottom, with red #fe2c55 and cyan #25f4ee used only for selected and focus states, and Lucide icons for controls. Panel width = screen height × 9/16, capped at viewport width (min(100vw, clamp(380px, 100vh×9/16, 700px))); on 1080p fullscreen browsers it's about 607px wide. Videos use cover fill, so 9:16 vertical content has zero cropping. On-demand loading: when the floating dock is closed, the player or iframe is not mounted, so no media is resolved, downloaded, or played in the background; when expanded, the session area is automatically compressed (margin-right same formula + 200ms smooth animation).
What source types and built-in series does dsh-douyin support?
The source interface is data-driven, supporting three kinds: feed (built-in random video API, 302 to mp4, host whitelist resolution then auto-play), direct (fixed video file, plays once and can replay), and web (embeddable webpage, rendered via iframe). The selector includes 21 feed series verified via HTTPS 302, including senior, kawaii, tender, silky dance, perfect body, slow jam, pure, COS, street snap, sweet girl, hot dance, outfit, Zhang Ruonan, Ju Jingyi, etc. The feed resolver only accepts the built-in HTTPS endpoints and _t cache parameter, and will not request arbitrary URLs, loopback addresses, or internal services on behalf of the browser.
How to build and verify dsh-douyin?
The project uses pnpm for building, with the following commands:
pnpm install
pnpm build # tsc + tsdown + artifact validation
pnpm test # vitest (23 cases)
dsh plugin --profile web add . # mount
Browser verification (DevTools) can check that window.__DSH_BOOT__.entries contains id dsh-douyin, and that document.querySelector('video.vf-video') exists with paused === false. Known limitations include: feed sources depend on third-party API availability, content is random general entertainment short videos, horizontal/square content is center-cropped left/right, and headless environments may report Format error for some videos due to software decoding (real browsers have hardware decoding and are unaffected; the player still auto-skips).