爱意满满的作品展示区。
inpm

哔哩喵 bili mux 正式发布了!已上架插件应用商店!

  •  
  •   inpm · 4h 59m ago · 318 views

    哔哩喵 Bili-Mux:浏览器内直接合成 MP4 的 B 站下载扩展

    做了一年一度(并不)的小工具,今天正式发布了,已上架 Chrome 应用商店,同步开源在 GitHub 。

    插件市场搜索🔍:哔哩喵 或者 bili mux 都可以

    或者直接点击下方链接:

    https://chromewebstore.google.com/detail/bnphpkhlcebimdiafgakooibmhdmeaem?utm_source=item-share-cb

    项目地址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 403bilivideo.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 友们试用后拍砖。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:05 · PVG 20:05 · LAX 05:05 · JFK 08:05
    ♥ Do have faith in what you're doing.