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

빌리빌리 영상 끊김을 없애는 비밀 설정 하나

해외에서 빌리빌리가 끊길 때 DNS 변경이나 VPN은 운에 맡기는 방법입니다. 진짜 원인은 빌리빌리가 배정하는 느린 CDN 노드. 확장 프로그램 하나로 가장 빠른 노드에 고정하는 방법과 Android·TV에서의 해결법.

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

빌리빌리(bilibili) 영상, 여러분도 미친 듯이 끊기나요?

결론만: 브라우저 확장 프로그램 설치

원리는 됐고 결론만: 브라우저에 이거 설치하세요 (같은 기능의 Tampermonkey / Violentmonkey 스크립트가 있다면 먼저 지우세요)

설치 전과 설치 후

Before

확장 프로그램 끔: 빌리빌리가 배정한 Akamai 노드(cdn=…akamaized.net), 66 kB/s

After

확장 프로그램 켬: 같은 영상이 08ct 노드로 바뀌고 1080P+에서 3.3 MB/s

더 알고 싶다면

DNS 변경이나 VPN이 될 때도 있고 안 될 때도 있는 이유

해외에서 빌리빌리가 끊길 때 검색해 보면 VPN을 쓰라느니, DNS를 8.8.8.8로 바꾸라느니 하는 얘기가 많이 나오는데, 이런 건 효과가 있을 수도 없을 수도 있습니다

진짜 원인은 빌리빌리가 "느린 CDN 노드"를 배정해 주기 때문입니다. 위의 방법들은 본질적으로 "좋은 노드에 걸릴 확률을 높이는 것"일 뿐, 근본적인 해결이 아니에요. 그래서 누구는 되고 누구는 안 되는, 복불복인 거죠

CDN이 뭔지 궁금하다면 제가 쓴 기술 블로그 글을 참고하세요: How to Actually Fix Bilibili Buffering for Good (영어)

진짜 해결법: 가장 빠른 노드로 고정하기

제대로 해결하려면 내가 사는 지역에서 가장 좋은 노드를 알아내서, 그 노드로 고정해야 합니다

그래서 이 확장 프로그램을 만들었습니다. 평소에 PC 브라우저로 본다면, 위의 확장 프로그램을 설치해서 영상이 가장 빠른 노드를 타도록 강제하면 됩니다

Android와 TV는?

Android로 본다면 공식 앱 말고 PiliNara라는 서드파티 apk를 쓰세요 (훨씬 편하고 광고도 없어요)
https://github.com/Starfallan/PiliNara/releases

TV 박스나 스마트 TV라면 무슨 소TV 같은 공식 앱(진짜 별로예요) 말고 blbl 앱을 쓰세요
https://github.com/roge4444/blblRogerMod/releases

원리는 다 똑같습니다. 이 앱들에는 속도 측정과 CDN 노드 고정 기능이 내장되어 있어요


마치며

이상, 3년 넘게 온갖 삽질 끝에 얻은 진심 공유입니다. 광고 아니에요

확장 프로그램은 제가 쓰려고 직접 만든 거고, 앞으로도 계속 무료입니다. 필요한 분들께 도움이 되면 좋겠어요. 원하는 기능이나 버그 제보는 댓글이나 DM으로 남겨 주세요

설치해 보고 괜찮았다면 별 다섯 개 리뷰 하나 남겨 주시면 큰 힘이 됩니다. 아니면 아래 GitHub 저장소에 스타를 눌러 주세요
https://github.com/a0972199950/bilibili-cdn-switcher?utm_source=lazy_cv&utm_medium=referral&utm_campaign=secret_setting_article&utm_content=ko

コメント(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