回到文章列表
圖文教學BilibiliCDNBrowser Extension

一个神秘设置解决 Bilibili 视频卡顿

海外看 B 站卡顿,换 DNS、挂 VPN 都是碰运气,真正的原因是 B 站给你分配了慢的 CDN 节点。装一个扩展把视频固定在最快的节点,顺便附上 Android 和电视的做法。

更新於 2 min30 次觀看文章語言

你们看B站视频也卡成狗吗?

懒人解法:浏览器装扩展

懒得看原理,省流: 浏览器装这个 (如果有篡改猴/油猴的同功能脚本记得先移除)

装前装后对比

Before

扩展关闭时:视频走 B 站分配的 Akamai 节点(cdn=…akamaized.net),下载速度 66 kB/s

After

扩展开启后:同一个视频改走 08ct 节点,1080P+ 下载速度 3.3 MB/s

如果你还想继续看

为什么换 DNS、挂 VPN 不一定有用

在海外看 bilibili 视频卡顿,网上搜常出现 VPN 啦,改 DNS 8.8.8.8 之类的,这些都不一定管用

因为真正的原因是B站给你分配了「慢速的 CDN 节点」。上面这些方法本质都是「提高拿到好节点的概率」,不能根治。所以跟玄学一样,有些人有用有些人没用

如果想了解 CDN 是什么,可以看我这篇技术博客文章:如何真正彻底解决 Bilibili 卡顿(繁体中文)

真正的解法:固定最快的节点

真要彻底解决,你必须知道所在地区最好的节点,然后固定它

为此我做了这个插件,如果你平时用电脑浏览器看,装上面的扩展,强制视频走最快的节点

手机和电视怎么办

如果用 Android 看,不要用官方 APP,改用 PiliNara 这个第三方 apk (好用很多没广告)
https://github.com/Starfallan/PiliNara/releases

如果用机顶盒或智能电视,别用那什么云xx小电视(真的拉完了),用 blbl APP
https://github.com/roge4444/blblRogerMod/releases

原理都是一样的,这些 APP 内置测速并固定 CDN 的功能


写在最后

以上是我踩坑三年多来的真心分享,不是广告

浏览器扩展是我自己做来给自己用的,永久免费。希望帮到有需要的人,有想要的功能或 bug 反馈也可以留言或私信

如果你装上后觉得不错,不妨顺手留个五星鼓励。或者到以下 Github 项目点个星星
https://github.com/a0972199950/bilibili-cdn-switcher?utm_source=lazy_cv&utm_medium=referral&utm_campaign=secret_setting_article&utm_content=zhcn

留言(0)

還沒有人留言,來當第一個吧!

相關文章

同一支 4K 影片開啟擴充前後:開啟前緩衝中只有 9 KB/s,開啟後 8.8 MB/s
技術分享9 min

如何真正徹底解決 Bilibili 卡頓

海外看 B 站為什麼熱門片很順、冷門片卡死:CDN 快取與回源、最窄的那一段決定速度、換 DNS 和開 VPN 為什麼時靈時不靈,以及我的擴充怎麼用台灣 14 家網路業者的實測挑出預設節點。

繁體中文 / English

CDNSpeedTest 測速進行中的畫面
圖文教學5 min

Bilibili CDN 測速 — 參加教學

圖文教學:下載 CDNSpeedTest.exe,通過網路檢查後掃碼登入,自動測完並發送報告,協助擴充功能找出各國最快的 B 站節點。

繁體中文 / 简体中文 / English / 日本語 / 한국어

B 站播放器上方的提示:目前 CDN 速度不佳,已自動切換至備援節點
技術分享11 min

在 B 站擴充裡偵測 CDN 失敗並自動切換備援節點

擴充怎麼判斷 CDN 節點真的壞了:哪些狀態碼要排除、卡頓怎麼用 currentTime 與前方緩衝判斷、為什麼先靜默換一次備援、還不行才問使用者,以及怎麼避免在節點之間來回彈跳。直播的處理方式也一併說明。

繁體中文 / English

封面:Network 面板的網域從 upos-hz-mirrorakam.akamaized.net 換成 upos-sz-mirror08ct.bilivideo.com,下方是四個 hook 點:__playinfo__、playurl API、.m4s 分段請求、直播
技術分享10 min

在 Chrome 擴充的 MAIN world 用 hook 即時改寫 Bilibili 串流 CDN

B 站的播放網址會從 SSR 的 __playinfo__、playurl API、分段請求和直播 API 進來。這篇用 bilibili-cdn-switcher 的程式碼說明每條路怎麼攔、改了什麼,以及 Response 只能讀一次、XHR responseText 唯讀、測速要繞過自己的 hook 這些坑。

繁體中文 / English

封面:越多人測,預設越準。循環四步:在家測速、拿到專屬節點、報告寄回給我、更新預設清單(cdn-list.json),再隨下一版擴充回到使用者
技術分享18 min

如何透過群眾測速自動迭代 B 站 CDN 選線品質

一支 Windows 測速程式怎麼在各地使用者家裡測 299 個 B 站節點、用分層影片和三段漏斗挑出最穩的 10 個當場寫進擴充,再把報告送回開發者,依業者市占加權改進各國預設節點,並照分析結果去補缺樣本的業者。

繁體中文 / English

封面:一份 src/ 經 build.mjs 打成 Chrome、Edge、Firefox 三個 zip(Chrome 和 Edge 是同一個 sha256),Safari 經 Xcode 工程上傳 App Store
技術分享16 min

在 B 站擴充裡用一份原始碼發佈到 Chrome、Edge、Firefox、Safari 四個商店

同一份 src/ 怎麼打包成四個商店的產物、為什麼 zip 要可重現(附實測 sha256 與換行踩坑)、5 語更新內容與 pre-push 卡點,以及一次 /release 哪些交給腳本、哪些一定自己來。

繁體中文 / English

封面:同一個網頁兩個 JS 世界。MAIN world 的 console 裡 typeof chrome.storage 是 undefined,ISOLATED world 是 object,兩邊共用 DOM 與 localStorage、用 postMessage 傳話
技術分享11 min

Chrome extension: MAIN world 與 ISOLATED world 的基本概念

content script 改了 window.fetch 網頁卻不理你?說明 MAIN 與 ISOLATED world 各自看得到什麼、三種指定 world 的方式與版本、什麼時候該拆成兩支腳本、兩邊怎麼用 localStorage 與 postMessage 傳話,以及 postMessage 要擋哪些偽造訊息。

繁體中文 / English