ShimWeave 是一个运行在浏览器端的媒体兼容层。它通过可插拔站点适配器接收播放意图, 直接从媒体源读取 Range 数据,并在播放设备本地完成格式探测、转封装和必要的音频转码。
项目的首个宿主是 Chrome Manifest V3 扩展,首个站点适配器是 Plex。核心运行时不依赖 Plex、具体 CDN 或单一媒体引擎,后续可以复用于其他媒体服务器和网页播放器。
- 媒体数据保持
媒体源/CDN → 浏览器,不经过 NAS 或云端中继。 - 优先原生播放,其次仅转封装,再其次只转码浏览器不支持的音频。
- 视频默认保持原始编码,不以浏览器软件转码 4K 视频作为常规能力。
- 格式决策基于实际容器、轨道和浏览器能力,不维护无限增长的客户端名称特判。
- 站点适配器只负责会话接入、播放控制和观看状态,不参与媒体格式实现。
- Chrome 120 及以上版本中的 Plex Web。
- 支持普通 302 STRM。配合 Cirvel 时,可在播放过程中持续获取有效的临时媒体地址。
- 继续使用 Plex 原生播放器、控制栏、时间轴、续播、拖动进度和上下集切换。
- 浏览器直接读取媒体源 Range 数据,并在本地完成 MKV 转封装。
- 浏览器无法直接播放 AC3、EAC3、DTS 或 TrueHD 时,在本地转换为 AAC 立体声。
- 显示 Plex 里选中的 MKV 内嵌 SRT 与 WebVTT 字幕,拖动进度后字幕随之重建。外挂的 SRT 与 WebVTT 字幕同样显示。播放中在 Plex 播放器里打开、切换或关闭字幕后,Plex 会重新缓冲几秒,再从原位置按新的选择继续。PGS、ASS 等图形或特效字幕暂不支持,选中时会提示字幕不可用,视频照常播放。
- 播放 Plex 里选中的音轨。这条音轨浏览器放不了、也转换不了时,默认改用同一文件里能播放的音轨并提示,可以在扩展选项里改为不替换。
- 已验证 4K HEVC HDR10,以及 Dolby Vision Profile 7、8 按 HDR10 基础层播放。实际表现仍取决于操作系统、浏览器和硬件解码能力。
- 本地媒体和浏览器原生可播内容保持 Plex 原行为。
- 已知不兼容格式会停止播放并显示对应错误及已识别的音视频格式。
当前仍是开发预览。PGS、ASS 字幕、Dolby Vision Profile 5 等组合尚不支持,HDR/DV 的实际表现取决于 片源、操作系统、浏览器和硬件解码能力。目前只提供 Plex 适配器,尚未上架 Chrome Web Store。
corepack pnpm install
pnpm build
pnpm test
pnpm typecheck
pnpm lint当前需要通过 GitHub Release 手动安装:
- 下载
shimweave-X.Y.Z.zip,解压到不会被清理或移动的固定目录。 - 打开
chrome://extensions,启用“开发者模式”。 - 选择“加载已解压的扩展程序”,选择刚才解压的目录。
- 重新加载已经打开的 Plex Web 标签页。
更新版本时,下载并解压新的安装包,替换原目录内容,然后在扩展管理页点击“重新加载”。
从源码构建:
corepack pnpm install
pnpm build
pnpm package:extension未打包扩展位于 apps/chrome-extension/dist/,本地 ZIP 位于 artifacts/。正式安装包、校验文件和
中文发布说明会在新版本发布时由 GitHub 自动生成。
ShimWeave 只接管 Plex Web 无法直接播放的 STRM 整文件媒体源,媒体数据始终由浏览器直接向 源站或 CDN 获取。
卸载扩展即可移除运行时和浏览器本地能力缓存。
ShimWeave 不依赖 Cirvel。两者配合时,Cirvel 只负责确认播放权限, 并为浏览器提供当前有效的媒体地址,实际视频和音频仍由源站或 CDN 直接发送到浏览器。Plex Web 遇到浏览器原本打不开的 STRM 而没有安装 ShimWeave 时,Cirvel 会提示安装。没有 Cirvel 时, 只要 Plex 返回普通 302 媒体地址,ShimWeave 仍可工作。
- 扩展需要访问所有网站,因为自托管 Plex 和媒体 CDN 的域名无法提前固定。
- 只有识别为 Plex Web 且正在播放的标签页会进入兼容流程,扩展不会扫描其他网页或读取媒体 响应正文。
- 播放状态所需的媒体身份和 Plex 凭据只保留在当前 Chrome 会话中,关闭浏览器后会被清除。
架构说明见 docs/architecture.md,浏览器媒体管线基线见 docs/performance.md,用户可见变化见 CHANGELOG.md。
本项目是独立社区项目,与 Plex、Mediabunny 等相关项目的官方团队无关,也未获得其认可或赞助。
GPL-3.0-only,详见 LICENSE。
Copyright (C) 2026 InfinityPacer