dsh-tv
DSH-TV — a right-sidebar short-video/TV panel for DeepSeek Harness (Douyin / Short-drama / YouTube / Bilibili / Instagram / HackerTube, plus a random global TV player). Desktop uses an Electron webview with a real browser engine.
What it is
DSH-TV — a right-sidebar short-video/TV panel for DeepSeek Harness (Douyin / Short-drama / YouTube / Bilibili / Instagram / HackerTube, plus a random global TV player). Desktop uses an Electron webview with a real browser engine.
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add dsh-tv@0.0.1
DSH versions accepted
>=0.2.0 <0.3.0
Author and traction
MathewWuZJ · ★ 2 · Updated 2026-11-08
About this plugin
dsh-tv
English | [中文](README.zh.md)
> Mirror: if github.com web pages are slow or blocked (504) in your network, read this README via jsDelivr: . Git-based installs are unaffected.
A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH) plugin that opens a short-video / TV panel in the right sidebar, so you can watch something while an agent works. On Desktop it embeds a real Electron `` (real browser engine), not an iframe.
> Not affiliated with DeepSeek, Douyin, YouTube, Bilibili, Instagram or any listed site. Site names and icons belong to their owners.
Features
- One entry, top-right: a
DSH-TVicon button in the conversation header opens / collapses the panel. - Tab bar with real favicons (no text labels): Douyin, Short-drama, YouTube, Bilibili, Instagram, HackerTube, plus Global TV pinned first.
- Global TV (random): a self-hosted player picks a random public IPTV channel from public playlists (iptv-org / community lists), validates the stream (HLS + first segment fetch, prefers H.264, skips DRM/HEVC-only) before playing, with a "换台 / next" button and a channel picker (countries + search).
- Settings panel (gear): edit each site's URL, choose mobile/desktop UA, drag to reorder, delete, and add from a built-in catalog of mainstream video sites. Saved to
localStorage. - Per-tab keep-alive: switching tabs does not reload the page; last URL / scroll / playback position is remembered.
- Global volume + mute memory: one slider/mute for all tabs; starts muted at 1/3 volume; your changes are remembered.
- Purposely no cookies from Chrome: each site runs in an isolated session; log in once inside the panel.
Screenshots
| Douyin | YouTube |
|---|---|
| | |
| Bilibili | Short-drama |
| | |
| Global TV | HackerTube |
| | |
Settings panel
Install
1) From GitHub (recommended)
dsh plugin --profile desktop add git+https://github.com/MathewWuZJ/dsh-tv.git
Use --profile web instead if you run dsh web (the Web profile). The shorter github:MathewWuZJ/dsh-tv also works on setups whose pnpm accepts GitHub shorthands.
Installation enables the bundle automatically. Fully quit and relaunch DeepSeek Harness, and the DSH-TV button appears in the chat header (top-right). If it does not, open Plugins → Installed and check that dsh-tv is enabled.
2) As a plugin-market index entry
DSH has no central third-party marketplace; third parties publish packages and custom plugin indexes. This repo ships market-index.json (format 1). Switch on the experimental Custom plugin indexes bundle (Plugins → Experimental plugins), then open Discover → Manage index sources… and add:
https://cdn.jsdelivr.net/gh/MathewWuZJ/dsh-tv@main/market-index.json
then install from the Discover tab.
Compatibility & avoiding "plugin disappeared after DSH upgrade"
DSH enforces each plugin's engines.dsh range; a bundle that does not match is silently skipped (no entry, cannot open). This package declares:
"engines": { "dsh": ">=0.2.0 <0.3.0" }
- The range intentionally allows every
0.2.x. If DSH later moves to0.3.x(or a new major), a new release of this plugin must widen the range. - When a version is skipped you can temporarily allow it per-version:
dsh plugin allow-version(plugin manager) — exact-version exemption only. - Best practice for authors: keep
engines.dsha range (not an exact prerelease), test against the newest DSH, and publish updated releases on major bumps.
Usage
- Open the panel from the
DSH-TVbutton in the chat header (top-right). - Switch sites via favicon tabs. The first visit shows a spinner; the page is revealed only after it loads.
- Global TV: opens a random validated channel; 地图 opens the map/channel picker, 换台 picks another.
- Gear: edit sites; 地图 (player) can fall back to the built-in picker when the external map is unreachable.
- Volume: click the speaker to mute; hover/click to adjust; settings persist.
FAQ / Q&A
Q: After upgrading DSH, the DSH-TV entry disappeared and I can't open it.
A: DSH skipped the bundle because its engines.dsh is incompatible with the new runtime. Update to a plugin release that matches, or grant an exact-version exemption with dsh plugin allow-version. See "Compatibility" above.
Q: A site shows a blank page or stays on the spinner.
A: Many sites refuse to be embedded or are region/network restricted. The panel reports a load failure instead of hiding it; try the site's desktop/mobile mode in Settings, or open it in your system browser.
Q: Can it use my Chrome cookies / logins?
A: No. The embedded browser is an isolated session and is not allowed to read Chrome's cookie store. Log in once inside the panel; some login state can be remembered locally on a best-effort basis (non-HttpOnly cookies + localStorage).
Q: Where does Global TV come from?
A: Public IPTV playlists (mostly iptv-org and community lists). Streams are community-maintained; some are offline or geo-blocked. The player validates a channel before returning it and auto-switches on failure. No streams are hosted by this project.
Q: Is there an official plugin marketplace?
A: Not for third-party plugins. For dsh-tv the available install paths are exactly the two above: a GitHub install with dsh plugin add, or adding our market-index.json in Discover. No npm package is published — the npm name dsh-tv belongs to an unrelated package, so do not run dsh plugin add dsh-tv. Official bundles are shipped by DSH itself.
Q: Is my data sent anywhere?
A: The plugin only loads the sites you open and the global TV playlists. Session snapshots (for best-effort login resume) are written under ~/.dsh/social-session/; the TV playlist is cached there too. Nothing is sent to the author.
Disclaimer
- This is a personal, non-official plugin. It does not host or
Compare in this category
The five most-starred plugins in the same category.
| Plugin | Author | Stars | Version | Updated |
|---|---|---|---|---|
| open-design | nexu-io | 106.9K | 0.25.1 | 2026-11-10 |
| huashu-design | alchaincyf | 29.1K | 3.3.0 | 2026-11-10 |
| dsh-web | zhu1090093659 | 10.3K | 0.0.1 | 2026-11-10 |
| baoyu-design | JimLiu | 6.3K | 2.12.2 | 2026-11-10 |
| dsh-wallpaper-engine | elysia395 | 6.3K | 1.4.2 | 2026-11-10 |