🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

竖屏短视频墙 imkingjh999/dsh-shorts-wall

DeepSeek Harnessv1.4.0
imkingjh99914 天前有提交已提供中文文档扫描:未发现敏感能力

DSH 插件:dsh-better-sidebar 的竖屏短视频墙——YouTube Shorts + Bilibili 竖屏,双源轮播,支持关键词包

31.5/100
综合分
2
GitHub 星标
472
npm 周下载
—/5
用户评分

数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-shorts-wall
npm 源 · dsh-shorts-wall 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-shorts-wall @ 1.4.0
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 11:37:29

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 发起网络请求
    lib/index.js:435
    const req = http.request({
  • 发起网络请求
    lib/index.js:470
    const tls = https.request({
  • 发起网络请求
    lib/index.js:526
    if (target.protocol !== "https:") return fetch(url, {
  • 发起网络请求
    lib/index.js:821
    }) : await fetch(currentUrl, {
  • 发起网络请求
    lib/index.js:927
    const scrapeFetch = ((url, init) => tunnel !== void 0 && isTunnelHost(url) ? tunnel(url, init) : fetch(url, init));
  • 发起网络请求
    src/client/feed-state.ts:33
    const res = await fetch("/shorts/api/feed", {
  • 发起网络请求
    src/client/feed-state.ts:90
    const res = await fetch("/shorts/api/play", {
  • 发起网络请求
    src/index.ts:43
    : fetch(url, init)) as unknown as typeof fetch;
  • 发起网络请求
    src/proxy-fetch.ts:183
    const req = http.request({
  • 发起网络请求
    src/proxy-fetch.ts:233
    const tls = https.request(
  • 发起网络请求
    src/proxy-fetch.ts:305
    return fetch(url, {
  • 发起网络请求
    src/server/media-proxy.ts:69
    : await fetch(currentUrl, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 双源竖屏短视频轮播
  • 支持关键词包
v1.3.12026-08-19
· dsh-shorts-wall v1.3.1 依赖同步版本。 · 变更 · dsh-float-window 依赖现在在 npm 上解析为 ^0.3.1(registry 上的 1.3.0 tarball 在版本号提升前就已发布,且不可修改)。 · 包含共享 shell 修复:最大化按钮位于 ne 缩放手柄上方。 · 同步 dsh.plugin.json 和 BUILD_TAG 到 1.3.1。 · 验证 · pnpm typecheck — 通过 · pnpm test — 23/23 通过 · pnpm run build — 通过 · node tests/smoke-client.mjs — 通过 · node tests/e2e-client.mjs — 通过 · review_audit — 90/100 · 安装 DSH: dsh plugin --profile web add github:imkingjh999/dsh-shorts-wall#v1.3.1 npm: npm install dsh-shorts-wall@1.3.1 --registry=
v1.1.02026-08-18
· dsh-shorts-wall v1.1.0 共享浮窗外壳版本。 · 变更 · 用共享 npm 包 dsh-float-window 替换原先定制的浮窗外壳。 · src/client/shell.tsx 现在只提供插件专属文案、强调样式、启动器图标、老板键判定和内容流。 · 依赖从本地 link:../dsh-float-window 改为 dsh-float-window@^0.1.0。 · 为源码包外壳新增显式的 Vitest esbuild.jsx: "automatic" 处理。 · 在两份 README 中记录共享外壳架构。 · dsh.plugin.json 同步到 1.1.0。 · 验证 · pnpm typecheck — 通过 · pnpm test — 23/23 通过 · pnpm run build — 通过 · node tests/smoke-client.mjs — 通过 · node tests/e2e-client.mjs — 通过 · pnpm install --frozen-lockfile — 通过 · review_audit — 90/100 · 安装 DSH: dsh plugin --profile web add github:imkingjh999/dsh-shorts-wall#v1.1.0 npm: npm install dsh-shorts-wall@1.1.0 --registry=
v1.0.42026-08-18
· dsh-shorts-wall v1.0.4 稳定的外壳几何版本。 · 变更 · 浮动模式和停靠模式现在共用同一视口位置(x、y)和同一尺寸(sizeW、sizeH)。 · 切换浮动不再移动或缩放窗口。 · 四角缩放现在在两种模式下都一致地锚定对角。 · v1.0.3 的旧外壳状态会迁移为真实视口坐标,可见窗口不会移动。 · 回归测试现在断言浮动/停靠切换后 left、top、width、height 保持不变。 · 更新了双语文档,说明共用的位置与尺寸行为。 · 验证 · pnpm typecheck — 通过 · pnpm test — 23/23 通过 · pnpm run build — 通过 · node tests/smoke-client.mjs — 通过 · node tests/e2e-client.mjs — 通过 · review_audit — 91/100 · 安装 DSH: dsh plugin --profile web add github:imkingjh999/dsh-shorts-wall#v1.0.4 npm: npm install dsh-shorts-wall@1.0.4 --registry=
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-shorts-wall 仓库:<https://github.com/imkingjh999/dsh-shorts-wall> · 欢迎提 Issue 竖屏短视频墙 —— 默认以贴边竖栏形态运行的 DeepSeek Harness(DSH)竖屏短视频插件:可切换为可拖拽/缩放浮窗,也能关闭后从右下角按钮唤回。双源:YouTube Shorts + B站竖屏,滚轮/键盘/按钮逐条切换,播完自动下一条,到尾自动续批。 仅供个人观看。全部走匿名公开接口与官方播放通道:不登录、不破解、不伪造签名。请遵守对应平台服务条款。 功能 双源轮播 顶栏 YT / B站 chip 一键切换(记住选择),切换时提示「切换中…」。
展开完整文档(README 剩余 1 节)
dsh-shorts-wall

仓库:<https://github.com/imkingjh999/dsh-shorts-wall> · 欢迎提 Issue

竖屏短视频墙 —— 默认以贴边竖栏形态运行的 DeepSeek Harness(DSH)竖屏短视频插件:可切换为可拖拽/缩放浮窗,也能关闭后从右下角按钮唤回。双源:YouTube Shorts + B站竖屏,滚轮/键盘/按钮逐条切换,播完自动下一条,到尾自动续批。

仅供个人观看。全部走匿名公开接口与官方播放通道:不登录、不破解、不伪造签名。请遵守对应平台服务条款。

功能

双源轮播

顶栏 YT / B站 chip 一键切换(记住选择),切换时提示「切换中…」。

| | YouTube Shorts | B站竖屏 |
| 播放方式 | 官方 iframe embed | 原生 mp4 (经宿主代理,Range 可拖进度) |
| 内容获取 | 匿名搜索页(shorts 过滤器) | 匿名搜索 + 竖屏预检(并发 view 确认 9:16,横版自动过滤) |
| 自动连播 | 播完事件 + 看门狗双保险 | 原生事件(最稳) |
| 续批 | 关键词重搜去重追加 | 分页续批 |

关键词体系

- 当前关键词以 chip 显示在顶栏(B站按钮右侧),点击弹出关键词选择列表,点选即切换加载
- 「换一批视频」:同关键词重新取一批新视频(不是换词)
- ⚙ 关键词面板:
- 预设词库(单击整组替换、+追加去重):KPOP 直拍 / 服饰穿搭 / 特色服饰 / 宠物萌宠 / 性别视角 / 沙滩泳装 / 舞台演出
- 自定义:地区 + 关键词逐条添加
- 行内编辑 / 上移 / 删除 / 恢复默认,两源词表各自独立持久化(localStorage)

播放体验

- 窗口模式:标题栏「浮动」toggle 开启为浮窗(拖拽移动 / 四角悬停出缩放光标),关闭为贴边竖栏(默认);两种模式共用同一份位置与尺寸记忆,切换时窗口不移动,「最小化」按钮统一位于窗口右下角
- 老板键:窗口标题栏会显示「老板键 Alt+S」;在浮窗或贴边状态下按 Alt+S 一键最小化,再按一次还原到最小化前的浮窗/贴边状态与尺寸,播放器保持挂载不重载;最小化期间自动暂停播放(YT embed 与 B站原生视频一致),还原后自动继续(本窗向浮窗注册表显式声明 Alt+S;同屏的 deepsea 等其它浮窗会自动领取不冲突的组合)
- 播放连续:浮窗/贴边/最小化切换时播放器保持挂载不重载
- 9:16 锁定:播放器按卡片实际尺寸计算内接竖屏矩形,宽高都不超视口,竖屏满幅
- 切换:滚轮(防抖)/ ↑↓ / j·k / ‹ › 按钮;iframe 上有滚轮捕获层(滚轮切换不被吞),单击临时交给播放器操作(6 秒后盖回)
- 自动连播:播完 → 下一条;到尾 → 自动续批;坏内容自动跳过(连跳 3 条刹车);YT 平台级不可用时显示「YouTube 暂不可用」横幅 + 一键切 B站
- 声音:「声音开/已静音」文字按钮(不用 emoji),偏好记住;也可用组合键 Alt+M 快速静音/开启声音
- 开局遮罩:封面 1 秒掀开、标题 2 秒隐藏(悬停可看),不挡画面
- 多语言:UI 跟随 DSH 宿主语言(中文 / English),实时切换

项目状态

当前 review_audit 综合评分:90 / 100(2026-08-19,v1.3.1 审查基线)。

审查标准

评分使用 DSH 的 review_audit 作为客观基线,再抽样复核入口、代理边界、窗口状态模块和生命周期测试。review_audit 不是安全认证;分数只说明当前可度量的工程健康度。

综合分计算

- 8 个维度等权平均后四舍五入
- 及格线:60 分
- 本仓库发布目标:≥ 90 分
- 任一维度低于 40 分视为需要优先整改

维度与扣分规则

| 维度 | 当前分 | 计分口径 |
| 结构 | 88 | 基线 88;每个超过 500 行的源码文件扣 6 分,无目录结构扣 15 分 |
| 可维护性 | 90 | 基线 90;每个含遗留标记的文件扣 2 分,每个超大文件扣 4 分,每 40 行超过 120 字符的长行扣 1 分(最多扣 30) |
| 一致性 | 90 | 基线 90;每个混用 Tab/空格缩进的文件扣 8 分,项目级 Tab/空格混用另扣 15 分 |
| 健壮性 | 85 | 基线 85;每个空 catch 扣 5 分,每个调试输出残留扣 2 分 |
| 测试 | 100 | 测试全部通过时为 60 + min(40, 测试文件数 × 10);测试失败记 20 分 |
| 文档 | 100 | README 40 分、LICENSE 25 分、.gitignore 20 分、README 内容完整性 15 分 |
| 性能 | 83 | 基线 85;每个超大文件扣 3 分,每 10 个依赖扣 4 分(最多扣 20),代码超过 2 万行另扣 15 分 |
| 安全 | 86 | 基线 90;按依赖数扣分(最多 25),调试残留与空 catch 另扣分;启用依赖审计时按高危/严重漏洞追加扣分 |

人工复核最低要求

- 运行 pnpm typecheck、pnpm test、pnpm run build
- 运行 node tests/smoke-client.mjs 与 node tests/e2e-client.mjs
- 抽样阅读宿主入口、媒体代理、浮窗状态、feed 生命周期和最近变更文件
- 确认无空 catch、无调试残留、无未解释的错误吞并
- 代理与权限边界必须有明确允许列表和失败路径

运行截图

| 浮窗模式 | 贴边模式 | 最小化 |
| 浮窗模式 | 贴边模式 | 最小化 |

安装

前置:DSH ≥ 0.1.0 的 web 配置档。不再需要 better-sidebar。

dsh plugin --profile web add github:imkingjh999/dsh-shorts-wall
重启 dsh web,浏览器硬刷新(⌘⇧R / Ctrl+Shift+R)

页面右下角会出现「Shorts」浮窗入口。

本地开发安装(link 方式)

cd ~/.dsh/profiles/web
pnpm add link:~/projects/dsh-plugins/dsh-shorts-wall
package.json 的 dsh.profile.bundles 里追加 "dsh-shorts-wall"
pnpm install && pnpm run build # 在插件目录

配置(可选)

配置档的 cordis.patch.yml:

- id: shorts-wall
config:
extraAllowSuffixes: [cdn.example.com] # 代理白名单追加域名后缀
resolveProxyUrl: http://127.0.0.1:7890 # 可选:YouTube 抓取/缩略图走个人代理(HTTP CONNECT)

未配置 resolveProxyUrl 时,自动回退读 HTTPS_PROXY / HTTP_PROXY(等)环境变量(仅 http:// 代理;Node fetch 不读这些变量,WSL 桌面环境常见)。无论哪种来源,只有 YouTube 系域名(youtube.com / ytimg.com 等)走隧道,B 站 API 与视频 CDN 始终直连。

架构

- 宿主半(src/index.ts):POST /shorts/api/feed(youtube shorts 搜索 · bilibili 竖屏搜索)+ POST /shorts/api/play(bilibili mp4 取流)+ GET /shorts/proxy(浏览器信任围栏 + CDN 白名单 + Range 直通)。旧 /bilibili/* 前缀保留兼容。
- 解析器(src/youtube.ts、src/bilibili-shorts.ts):YT 匿名搜索页 shortsLockupViewModel(兼容 reelItemRenderer);B站搜索 + 并发 view 竖屏预检 + html5 mp4 playurl。
- client 半(src/client/):窗口外壳来自 npm 包 dsh-float-window(浮动/贴边/最小化、四角缩放、老板键),本仓库只保留插件文案与内容;行为 hook 为 embed-events(YT 播放器事件/看门狗)、feed-state(双源批次/续批/关键词)、card-timers(封面/标题时序)+ i18n(zh/en)。不再依赖 better-sidebar。

已知限制

- YouTube 源需要本机浏览器能访问 YouTube;平台风控(bot 验证墙)期间该源不可用——插件会显示明确提示并可一键切到 B站;B站源不受影响。
- 匿名档画质:YT 由官方 embed 决定;B站约 480p/720p(更高需登录,超出范围)。
- YT 匿名搜索无分页:每批约 15-30 条,续批靠同词重搜去重。

开发

pnpm install
pnpm test # vitest:解析器 / 生命周期(jsdom) / i18n 词典
pnpm typecheck
pnpm run build # tsdown:宿主 ESM + 双通道 client CJS 工厂
node tests/smoke-client.mjs && node tests/e2e-client.mjs # 无头冒烟 + jsdom 渲染端到端

License

MIT
预览分享卡片长什么样 ↓imkingjh999/dsh-shorts-wall
分享 · DeepSeek Harness Hub
imkingjh999/dsh-shorts-wall

DSH 插件:dsh-better-sidebar 的竖屏短视频墙——YouTube Shorts + Bilibili 竖屏,双源轮播,支持关键词包

这是你的仓库?认领条目

回到顶部