回到文章列表
圖文教學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)

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

相關文章

同一支 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