dsh-cinema:在 DSH 左侧栏接入 TMDB 海报墙与 CMS 片源播放

前言

在 DeepSeek Harness(DSH)里做智能体或会话开发时,浏览器面板往往只承担对话与工具入口;若想在同一宿主里浏览片库、管理采集源并在面板内直接播放,通常要另开网页或 TVBox 类客户端,和 DSH 的左侧栏、同源代理体系是割裂的。

下面介绍社区插件 dsh-cinema(维护者 ObliviateOnline,分类为客户端):在 DSH 左侧栏增加「影音工作室」入口,打开后是原生 React 全页面板——TMDB 热门与片库元数据,以及使用者自行配置的 Apple CMS V10 片源管理、搜索、选集与 HLS/FLV/mp4 面板内播放。形态上可参考 CineFlow,但为独立实现,不内置任何片源。

这是什么

dsh-cinema 是发布在 npm 的 DSH Web 插件(当前资料中版本 1.4.2,许可证 MIT)。它通过 cordis.patch.yml 注入客户端,依赖 @deepseek-ai/dsh-client-ui-sidebar 等布局能力,在左侧栏挂胶片图标。

插件解决的核心问题是:在 DSH 进程内完成「元数据浏览 + 自备 CMS 源 + 代理出网/直连策略 + 播放器」,而不使用 iframe 嵌第三方站。接什么源、看什么内容由使用者自行配置并自负其责;插件声明不带遥测。

核心功能

片源(核心)

  • 内置 34 个常用采集接口:首次加载自动合并进源列表;手动删除的不会自动恢复,需要时可点「恢复内置源」。
  • 管理多个 CMS V10 接口:单条添加/删除,或整份 JSON、TVBox 配置、名称|地址 分行导入,也支持从配置 URL 拉取。
  • 源测速:并发测试并在列表中显示毫秒或「不通」。
  • 在源内搜索片名或翻页;搜索词云记录最近关键词,点击可重放。
  • 结果 → 选集弹窗(多线路、集数网格)→ 面板内播放:m3u8 走内置 hls.js,FLV 走 flv.js,mp4 直链经宿主媒体代理(支持拖动进度)。
  • 播放历史与续播:约每 5 秒记录进度(源、线路、集数、秒数);历史页续播、单条删除;播完可自动下一集。
  • 收藏:TMDB 条目与片源结果均可收藏,顶栏收藏面板直达。

TMDB 元数据(可选)

  • 热门电影/剧集海报墙与评分;分类片库(类型 × 年份、下滑续拉)。
  • /search/multi 搜索、详情弹窗、最近看过(最多 24 条);详情页可用自备片源起播。
  • 自然语言/场景搜索:如「回南天」「夜宵」等词会扩展到对应类型并合并结果。
  • 打开插件默认落在「电影」标签;未配置 TMDB 密钥也可选择「先看片源」。

宿主代理架构

浏览器面板经同源请求访问 Host 代理,再由 node:https 访问上游:

浏览器面板  ──同源请求──>  Host 代理  ──node:https──>  上游
路由 用途
/dsh-cinema/tmdb/... TMDB API,密钥经 x-tmdb-key / x-tmdb-token 请求头
/dsh-cinema/img TMDB 海报
/dsh-cinema/cms CMS V10 JSON(ac=detail&wd=...&pg=1)
/dsh-cinema/pic 片源海报(带 Referer)
/dsh-cinema/media mp4/ts 直通,支持 Range
/dsh-cinema/hls 拉取 m3u8 并重写分片地址到本代理
/dsh-cinema/vendor/hls.min.js 内置 hls.js(Apache-2.0)

出网策略:TMDB 代理优先(DSH_CINEMA_PROXY → HTTPS_PROXY → http://127.0.0.1:7897),失败回退直连;片源 直连优先,失败回退代理。直连使用显式 https.Agent,避免宿主全局 agent 被代理整体接管。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议在 GitHub 仓库 查看源码与 MIT 许可证(捆绑 hls.js 为 Apache-2.0)。目录页:SkillHub 插件页(社区目录,与 DeepSeek / 幻方无官方从属关系)。

从 npm(资料中的推荐方式)

在 DSH「插件 → 添加插件」中直接填写包名:

dsh-cinema

或在会话中使用插件管理器:

plugin_manager  action=install_bundle  target=dsh-cinema

开发态可从源码目录安装 bundle(改完即时生效),在会话中指定插件目录绝对路径,同样使用 plugin_manager action=install_bundle,不要手改 profile。具体 clone 路径见仓库 README,本文不展开。

典型用法

片源

  1. 左侧栏点胶片图标,面板默认在「片源」。
  2. 「管理源」:填写接口地址(形如 http://xxx.com/api.php/provide/vod),或粘贴 {"sources":[{"name":"…","url":"…"}]} / 选文件导入。
  3. 选择源 → 搜索或翻页 → 点海报 → 选集 → 播放。

TMDB(可选)

  1. 在 themoviedb.org/settings/api 申请免费 Developer Plan。
  2. 将 API Key (v3) 或 Read Access Token (v4) 填入面板;保存时实时校验(401 即密钥无效)。密钥存在浏览器 localStorage(键 dsh-cinema:key),随请求头发给本机宿主;宿主不缓存、不写日志。
  3. 首次打开有分步引导;不配 TMDB 也可直接看片源。

适用场景与注意

适合谁:已在 DSH Desktop / Web 客户端日常工作的开发者或重度用户,希望把 CMS V10 源与 TMDB 元数据收拢到同一左侧栏面板,并依赖宿主代理处理跨域、防盗链与 m3u8 重写。

安全与边界(据 README):代理路由对 TMDB 路径与 CMS/媒体等 u 参数做白名单(仅 http(s) 绝对地址);插件不内置片源。不同源的反盗链差异大,不能播的源宜在仓库开 issue 并附接口与报错。

验证状态:维护者在 Windows + DSH Desktop 0.2.2-rc.1 下验证了多条代理路由(TMDB/CMS/海报/HLS/分片等);README 标明浏览器内完整渲染与交互、各 CDN 兼容性尚未全覆盖验证。

结尾

经过上面的步骤,dsh-cinema 把 TMDB 浏览与自备 CMS 播放链路接到 DSH 客户端侧栏,出网策略按 TMDB 与片源分开处理,适合需要「面板内完成选源到播放」的场景。进一步说明与 issue 见 GitHub:ObliviateOnline/dsh-cinema,汇总入口见 SkillHub 目录页。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye