• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhangk23
V2EX  ›  程序员

[海外]整了一个切换网页端 b 站 cdn 的插件(只有网页端可以! 客户端不行)

  •  
  •   zhangk23 · 5h 32m ago · 307 views

    最近 b 站速度明显下降了,在和室友讨论了一下之后得出结论应该是 b 站分发的 cdn 节点比较阴间,然后在 ai 大人的帮助下搞了个插件来自由选择 cdn, 效果十分明显,从原本的 200kbps 到 6-7mbps 左右, 就是预加载视频时候慢点(大概要个三四秒钟来确认用哪个 cdn),如果人在海外的兄弟姐妹看 b 站的话有需要可以试试看这个插件 QAQ

    思路: 之前改过 nondanee 大佬的 NetEaseMusicWorldPlus 从 manifest v2 到 v3,所以稍微了解了一下脚本怎么劫持并且注入 163 来改 cdn 和 x-real-ip 的. 然后我之前做过一个 cli 工具来下载 b 站音频,所以对 b 站的视频配置也有了解,我就想着靠同样的思路来改 b 站分配给我的 cdn(本身想用 setInterval 一把梭的,但是 gemini 和我说这个有点太蠢了)

    实现:

    1. 正则替换域名
    2. 劫持 b 站写死的 playinfo 来拿变量
    3. XHR 来校验 url
    4. 备份 fetch 为 rawfetch 拉取分片,剔除不好使的节点
    5. DNR 做一个匹配,拦截重定向 request
    6. serviceworker 来做调度,监听事件和测速脚本

    插件地址 https://chromewebstore.google.com/detail/bilibili-cdn-switcher/eapldjejnjibjmkcapdicobndgigodeg 项目地址 https://github.com/zk39/bilibili-cdn-switcher

    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5734 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:32 · PVG 10:32 · LAX 19:32 · JFK 22:32
    ♥ Do have faith in what you're doing.