記事一覧に戻る
ハウツーBilibiliCDNBrowser Extension

一個神秘設定,搞掂香港睇 bilibili 好慢、成日 lag

香港睇 bilibili 好慢、成日 lag,改 DNS、開 VPN 都係睇彩,真正原因係 bilibili 派咗慢嘅 CDN 節點俾你。裝一個擴充將條片鎖死喺最快嘅節點,順便講埋 Android 同電視點搞。

更新日 2 min30 回表示記事の言語

你哋喺香港睇 bilibili 係咪都成日 lag、成日 buffer、好慢?

懶人包:瀏覽器裝擴充

唔想睇原理,懶人包:瀏覽器裝呢個(如果有用緊篡改猴/油猴同功能嘅腳本,記得先刪咗佢)

裝之前同裝之後

Before

擴充閂咗嘅時候:條片行 bilibili 派嘅 Akamai 節點(cdn=…akamaized.net),下載速度 66 kB/s

After

擴充開咗之後:同一條片改行 08ct 節點,1080P+ 下載速度 3.3 MB/s

如果你仲想睇落去

點解改 DNS、開 VPN 唔一定有用

香港睇 bilibili 好慢、成日 lag,網上搵到嘅方法通常都係開 VPN 啦、改 DNS 做 8.8.8.8 之類,呢啲唔一定有用

因為真正原因係 bilibili 派咗「慢嘅 CDN 節點」俾你。上面嗰啲方法其實都只係「提高攞到好節點嘅機會」,治標唔治本,所以先會有啲人有用、有啲人冇用,好睇彩

如果想了解 CDN 係乜,可以睇我呢篇技術 blog 文:如何真正徹底解決 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=zhhk

コメント(0)

まだコメントはありません。最初のコメントを書いてみませんか?

関連記事

The same 4K video before and after the extension: buffering at 9 KB/s before, 8.8 MB/s after
技術記事11 min

How to Actually Fix Bilibili Buffering for Good

Why popular Bilibili videos play fine overseas while unpopular ones stall: CDN caching and trips back to origin, why the narrowest link sets your speed, why DNS and VPN tricks are hit or miss, and how my extension picks a default node from real tests across 14 Taiwanese ISPs.

繁體中文 / English

速度テスト実行中の CDNSpeedTest 画面
ハウツー7 min

Bilibili CDN 速度テスト — 参加ガイド

画像付きガイド:CDNSpeedTest.exe をダウンロードし、ネットワークチェック後に QR コードでログイン、テスト結果を送信して各国で最速の Bilibili サーバーを探します。

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

Notice on top of the Bilibili player saying the CDN was slow and playback switched to a backup node
技術記事14 min

Detecting CDN Failures in a Bilibili Extension and Falling Back to Backup Nodes

How the extension decides a CDN node is really broken: which errors to ignore, how to detect stalls from currentTime and the forward buffer, why it switches once quietly before asking you, and how it avoids bouncing between nodes. Also covers live streams.

繁體中文 / English

Cover: the Network panel domain changes from upos-hz-mirrorakam.akamaized.net to upos-sz-mirror08ct.bilivideo.com, above the four hook points: __playinfo__, the playurl API, .m4s segments and live streams
技術記事13 min

Rewriting Bilibili's Stream CDN on the Fly from a Chrome Extension's MAIN World

Bilibili's stream URLs arrive through SSR __playinfo__, the playurl API, segment requests and the live API. Using bilibili-cdn-switcher's code, this walks through hooking each path, what gets rewritten, and the traps: one-shot Response bodies, read-only XHR responseText, and speed tests that must bypass your own hooks.

繁體中文 / English

Cover: more testers, better defaults. A loop of four steps: test at home, get custom nodes, report back, update the default list (cdn-list.json), then back to users in the next release
技術記事23 min

How Crowdsourced Speed Tests Keep Improving Bilibili CDN Server Picks

How a Windows speed test app benchmarks 299 Bilibili nodes in people's homes, picks the 10 most stable with layered videos and a three-stage funnel, writes them into the extension on the spot, and sends reports back so each country's default nodes improve by market-share-weighted coverage and missing ISPs get recruited.

繁體中文 / English

Cover: one src/ folder goes through build.mjs into Chrome, Edge and Firefox zips (Chrome and Edge share one sha256), while Safari goes through an Xcode project to the App Store
技術記事19 min

Shipping a Bilibili Extension from One Codebase to Chrome, Edge, Firefox and Safari

How one src/ becomes four store builds, why the zips must be reproducible (with real sha256 runs and a line-ending gotcha), 5-language release notes guarded by a pre-push hook, and which release steps are scripted versus always done by hand.

繁體中文 / English

Cover: one page, two JS worlds. typeof chrome.storage is undefined in the MAIN world console and object in the ISOLATED world; both share the DOM and localStorage and talk via postMessage
技術記事14 min

Chrome Extensions: The Basics of MAIN World and ISOLATED World

Patched window.fetch in a content script and the page ignored you? What the MAIN and ISOLATED worlds can each see, the three ways to pick a world, when to split into two scripts, how they talk through localStorage and postMessage, and which forged messages to reject.

繁體中文 / English