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

哔哩哔哩小组件 CloudWoR/dsh-bilibili

DeepSeek Harness
CloudWoR32 天前有提交已提供中文文档扫描:未发现敏感能力

在 DSH 界面右下角刷 B 站视频并站内播放

29.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add CloudWoR/dsh-bilibili
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    index.js:162
    const response = await fetch(url, { headers: BILI_HEADERS });
  • 发起网络请求
    index.js:288
    return fetch(url, { headers, signal: AbortSignal.timeout(BILI_TIMEOUT_MS) });
  • 发起网络请求
    index.js:893
    const response = await fetch(NAV_URL, {
  • 发起网络请求
    index.js:1420
    upstream = await fetch(target, { headers, signal: controller.signal });
  • 发起网络请求
    client.js:598
    const response = await fetch(target, init);
  • 发起网络请求
    client.js:837
    const response = await fetch(MEDIA + '?u=' + encodeURIComponent(url), {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

dsh-web嵌入B站视频插件,可登录,但建议使用小号。

README

由 DeepSeek 最新模型翻译生成
dsh-bilibili 常驻 DSH Web 界面右下角的哔哩哔哩小组件:扫码登录 → 推荐流 → 站内播放。 一个 DSH 插件(bundle)。浏览器不直连 B 站(其 API 不发 CORS 头),所有出网请求都由插件的 Host 半侧代理。 功能 | 🔐 扫码登录 | 面板内生成二维码,手机 B 站 App 扫码即登录;也可手动粘贴 SESSDATA | | 👤 登录态常驻右下角 | 收起态圆形入口直接显示你的头像 | | 🎬 推荐流 | 登录后主页为 B 站推荐视频,2 列卡片(封面 / 时长 / UP 主 / 播放量) | | 🔁 换一批 / 刷新 | 换一批走下一批;刷新重载当前视图。
展开完整文档(README 剩余 1 节)
dsh-bilibili

常驻 DSH Web 界面右下角的哔哩哔哩小组件:扫码登录 → 推荐流 → 站内播放。

一个 DSH 插件(bundle)。浏览器不直连 B 站(其 API 不发 CORS 头),所有出网请求都由插件的 Host 半侧代理。

功能

| 🔐 扫码登录 | 面板内生成二维码,手机 B 站 App 扫码即登录;也可手动粘贴 SESSDATA |
| 👤 登录态常驻右下角 | 收起态圆形入口直接显示你的头像 |
| 🎬 推荐流 | 登录后主页为 B 站推荐视频,2 列卡片(封面 / 时长 / UP 主 / 播放量) |
| 🔁 换一批 / 刷新 | 换一批走下一批;刷新重载当前视图。Host 侧带批次缓存与下一批预取,常态下瞬间返回 |
| 🔍 搜索 | 顶部搜索框,回车或点「搜索」提交(接口需 wbi 签名) |
| 🕘 历史 | 阅读观看历史(游标分页) |
| ⭐ 收藏 | 读取「默认收藏夹」(分页) |
| ▶️ 站内播放 | 点卡片在面板内播放,支持拖动进度与续播;中键/Ctrl+点击仍在新标签打开 B 站 |

界面

┌─────────────────────────────────────┐
│ [头像] 昵称 [退出] [×] │
├─────────────────────────────────────┤
│ [ 搜索 B 站视频… ] [搜索] │
│ 为你推荐 [历史][收藏][换一批][刷新] │ ├─────────────────────────────────────┤ │ 卡片 卡片 │ │ 卡片 卡片 │ └─────────────────────────────────────┘

- 历史 / 收藏 是可切换的 chip,高亮表示当前视图,再点一次回到推荐。
- 非「推荐」视图下,换一批 自动变成 下一页;刷新 始终重载当前视图。
- 右上角 × 收起为右下角圆形入口;入口显示头像表示已登录。

安装

1. 放进 DSH profile(示例:web)
cd ~/.dsh/profiles/web
pnpm add /path/to/dsh-bilibili # 或以 link: 依赖登记

2. cordis.patch.yml 追加
- insert:
- id: dsh-bilibili
name: dsh-bilibili

3. 重启 setsid bash ~/.dsh/restart-dsh.sh </dev/null >/dev/null 2>&1 & # 或你自己的重启方式

Host 半侧代码只在 DSH 启动时加载。 改动 index.js 后禁用/启用插件不会生效(只会从缓存的模块重放 apply),必须重启。client.js 会随 dsh-client-hmr 热更新。

登录

方式一:扫码(推荐) 点开面板 → 出现二维码 → 手机哔哩哔哩 App 扫码 → 手机点确认。成功后凭据由 Host 校验并落盘。

方式二:粘贴 Cookie 面板右下角「改为手动粘贴 Cookie」→ 从浏览器 F12 复制 SESSDATA 的值,或直接整行 Cookie → 保存。

凭据存放在:

<DSH_HOME>/dsh-bilibili/session.json # 权限 0600,目录 0700

只保留 SESSDATA / bili_jct / DedeUserID / DedeUserID__ckMd5 / sid / buvid3 / buvid4 / b_nut, 先经 nav 校验通过才写入,从不回传浏览器、不写日志。

⚠️ 代价与风险

- SESSDATA 等同于该账号的完整登录权限。落盘意味着这台机器能冒充该账号。
- 属于非官方接口。B 站可能对该账号限流或风控,建议使用小号。
- 凭据约数月过期,失效后面板会提示重新导入。

架构

client.js Client 半侧:shell.overlay 槽位,渲染面板;只请求本包的同源路由 index.js Host 半侧:持有凭据、出网、转发视频流

| 路由 | 作用 |
| GET/POST/DELETE /dsh-bilibili/session | 登录态读取 / 校验并保存 / 退出 |
| GET /dsh-bilibili/login/qrcode | 生成二维码(返回模块矩阵,前端画 SVG) |
| GET /dsh-bilibili/login/poll | 轮询扫码状态,成功后收 Set-Cookie 并落盘 |
| GET /dsh-bilibili/feed?cursor= | 推荐流(登录则个性化) |
| GET /dsh-bilibili/library/{history,fav,search} | 历史 / 默认收藏夹 / 搜索 |
| GET /dsh-bilibili/play?bvid=&cid= | 解析播放地址(cid 可省,会自动补齐) |
| GET /dsh-bilibili/media?u= | Range-aware 视频流代理 |

三个必须知道的实现约束

1. 视频流必须代理。 实测 CDN 只认 bilibili 的 Referer:带它 206,不带或外来 403。所以 指向本包的 media 路由,由 Host 带着正确头部转发。
2. 媒体代理必须做背压。 res.write() 返回 false 时要 await drain。浏览器缓冲够了会主动暂停读,若仍按 CDN 速度拉取,整个视频会堆进 DSH 进程内存(实测单个 447MB 视频涨 140MB), GC 压力会让播放和整个界面一起卡。修好后暂停期间从 CDN 的拉取会收敛到 0。
3. 搜索必须 wbi 签名。 不签名会返回 412。签名 = 排序 + 转义 + wts + md5(query + mixin) 的 w_rid,密钥从 nav 的 wbi_img 推导,缓存 6 小时。

已知限制

- 只读「默认收藏夹」,不能切换其他收藏夹。
- 仅支持视频(archive)。番剧 / 直播 / 动态不出现在历史里。
- 播放清晰度固定 qn=64(720p,mp4 durl);未做清晰度切换。
- 未实现:投币、点赞、弹幕、评论区、稍后再看。
- 面板宽度 380px,信息密度按此调校。

目录结构

dsh-bilibili/
├── package.json # bundle 清单:dsh.bundle.patch + dsh.client ├── cordis.patch.yml # 插入插件行 ├── index.js # Host 半侧(登录 / 流 / 播放 / 搜索 / 历史 / 收藏) ├── client.js # Client 半侧(面板 / 二维码 / 卡片 / 播放器) ├── icon.svg # 插件管理器图标 ├── locale/{en,zh}.json # 插件显示名称与描述 └── node_modules/ # 仅 qrcode-generator(零依赖)

依赖

- qrcode-generator(MIT,零依赖)— 二维码编码。
仅使用其 ESM 默认导出;注意它的 stringToBytes 默认是 latin1,本插件用 TextEncoder 覆盖以保证字节正确。

License

MIT © 2026 CloudWoR
预览分享卡片长什么样 ↓CloudWoR/dsh-bilibili
分享 · DeepSeek Harness Hub
CloudWoR/dsh-bilibili

在 DSH 界面右下角刷 B 站视频并站内播放

这是你的仓库?认领条目

回到顶部