哔哩喵 bili mux 正式发布了!已上架插件应用商店!
## 哔哩喵 Bili-Mux:浏览器内直接合成 MP4 的 B 站下载扩展
做了一年一度(并不)的小工具,今天正式发布了,已上架 Chrome 应用商店,同步开源在 GitHub 。
插件市场搜索🔍:哔哩喵 或者 bili mux 都可以
或者直接点击下方链接:
[Chrome 应用商店链接](https://chromewebstore.google.com/detail/bnphpkhlcebimdiafgakooibmhdmeaem?utm_source=item-share-cb)
**项目地址**: [GitHub 地址](https://github.com/c-yyy/bili-mux)


### 是什么
一个 Manifest V3 Chrome 扩展,在 B 站视频页注入一个下载面板。核心卖点是:**音视频合成完全在浏览器内完成**,通过 ffmpeg.wasm 跑在 Offscreen Document 里,不需要本机安装 ffmpeg ,也不需要把链接发给任何第三方服务器。
### 功能一览
- 封面下载(静态直链,直接落地)
- DASH 视频流 / 音频流分离保存(.m4s ,可选画质至 4K )
- **浏览器内合成 MP4**:拉取音视频流后用 ffmpeg.wasm 封装成单个 MP4 ,一条进度条走完自动下载
- FLV 合并下载:旧版 HTTP-FLV 分段直接二进制拼接,低码率、体积小
- 分 P 批量下载:勾选多个分 P ,逐个 FLV 合并下载
- 面板实时显示扩展自身的内存占用与网络下载速率
### 技术上踩过的几个坑
分享给有兴趣的 V 友:
1. **WBI 签名**:playurl 接口需要 WBI 签名,内置了 MIXIN_TAB 混淆表,从 nav 接口取密钥按位重排截 32 位后 MD5 ,密钥缓存 10 分钟。
2. **ffmpeg.wasm 在 MV3 里跑**:选用单线程 core (@ffmpeg/core-st ),不依赖 SharedArrayBuffer ,省去 COOP/COEP 响应头的麻烦。
3. **跨进程传二进制**:chrome.runtime.sendMessage 不支持 ArrayBuffer 序列化,content → Service Worker → Offscreen 的载荷一律 base64 编码。
4. **CDN 403**:[bilivideo.com](http://bilivideo.com/) 校验 Referer ,chrome.downloads 发起的下载不带 Referer 会被拒。方案是流式下载在 content script 内 fetch (浏览器自动带 Referer ),再配合 declarativeNetRequest 给 CDN 域名注入 Referer 头。
5. **多标签串台**:每个合成请求带唯一 requestId ,background 维护 requestId → tabId 映射,结果定向转发。
### 安装
两种方式任选:
- Chrome 应用商店直接安装(已上架)
- 手动安装:GitHub 仓库下载 .crx → chrome://extensions/ 开启开发者模式 → 拖入即可
环境要求 Chrome 116+(合成依赖 Offscreen Document API )。装好后打开任意 B 站视频页(需登录),工具栏末尾出现粉色「下载」按钮即成功。
### 声明
扩展只解析你自己账号本就有权播放的流,仅供个人学习留存使用,请勿用于批量搬运或二次分发。
源码完全开源,欢迎 Star / Issue / PR ,也欢迎 V 友们试用后拍砖。
---
原文链接:[点击查看](https://www.v2ex.com/t/1236806)
做了一年一度(并不)的小工具,今天正式发布了,已上架 Chrome 应用商店,同步开源在 GitHub 。
插件市场搜索🔍:哔哩喵 或者 bili mux 都可以
或者直接点击下方链接:
[Chrome 应用商店链接](https://chromewebstore.google.com/detail/bnphpkhlcebimdiafgakooibmhdmeaem?utm_source=item-share-cb)
**项目地址**: [GitHub 地址](https://github.com/c-yyy/bili-mux)


### 是什么
一个 Manifest V3 Chrome 扩展,在 B 站视频页注入一个下载面板。核心卖点是:**音视频合成完全在浏览器内完成**,通过 ffmpeg.wasm 跑在 Offscreen Document 里,不需要本机安装 ffmpeg ,也不需要把链接发给任何第三方服务器。
### 功能一览
- 封面下载(静态直链,直接落地)
- DASH 视频流 / 音频流分离保存(.m4s ,可选画质至 4K )
- **浏览器内合成 MP4**:拉取音视频流后用 ffmpeg.wasm 封装成单个 MP4 ,一条进度条走完自动下载
- FLV 合并下载:旧版 HTTP-FLV 分段直接二进制拼接,低码率、体积小
- 分 P 批量下载:勾选多个分 P ,逐个 FLV 合并下载
- 面板实时显示扩展自身的内存占用与网络下载速率
### 技术上踩过的几个坑
分享给有兴趣的 V 友:
1. **WBI 签名**:playurl 接口需要 WBI 签名,内置了 MIXIN_TAB 混淆表,从 nav 接口取密钥按位重排截 32 位后 MD5 ,密钥缓存 10 分钟。
2. **ffmpeg.wasm 在 MV3 里跑**:选用单线程 core (@ffmpeg/core-st ),不依赖 SharedArrayBuffer ,省去 COOP/COEP 响应头的麻烦。
3. **跨进程传二进制**:chrome.runtime.sendMessage 不支持 ArrayBuffer 序列化,content → Service Worker → Offscreen 的载荷一律 base64 编码。
4. **CDN 403**:[bilivideo.com](http://bilivideo.com/) 校验 Referer ,chrome.downloads 发起的下载不带 Referer 会被拒。方案是流式下载在 content script 内 fetch (浏览器自动带 Referer ),再配合 declarativeNetRequest 给 CDN 域名注入 Referer 头。
5. **多标签串台**:每个合成请求带唯一 requestId ,background 维护 requestId → tabId 映射,结果定向转发。
### 安装
两种方式任选:
- Chrome 应用商店直接安装(已上架)
- 手动安装:GitHub 仓库下载 .crx → chrome://extensions/ 开启开发者模式 → 拖入即可
环境要求 Chrome 116+(合成依赖 Offscreen Document API )。装好后打开任意 B 站视频页(需登录),工具栏末尾出现粉色「下载」按钮即成功。
### 声明
扩展只解析你自己账号本就有权播放的流,仅供个人学习留存使用,请勿用于批量搬运或二次分发。
源码完全开源,欢迎 Star / Issue / PR ,也欢迎 V 友们试用后拍砖。
---
原文链接:[点击查看](https://www.v2ex.com/t/1236806)
评论
暂无评论。