[最新] Bilibili视频下载器使用教程 (支持高清)
[最新] Bilibili (B站) 視頻下載器使用教程詳解 (支持高清 1080p/4K)
Bilibili(簡稱 B 站)作為中國年輕世代高度聚集的文化社區和視頻平台,以其豐富多樣的 ACG(動畫、漫畫、遊戲)內容、鬼畜、生活、知識、科技等領域的 UGC/PUGC 視頻,以及獨特的彈幕文化,吸引了億萬用戶。無論是為了離線觀看、學習備份、素材收集還是二次創作,將 B 站視頻下載到本地的需求一直存在。
然而,與許多在線視頻平台一樣,B 站並沒有提供官方的、直接的視頻下載按鈕(除了移動端的緩存功能,但格式特殊且有諸多限制)。此外,B 站近年來為了保護版權、提升播放體驗和應對技術挑戰,採用了諸如 MPEG-DASH (Dynamic Adaptive Streaming over HTTP) 等流媒體技術,將高清視頻的音軌和視頻軌分離存儲,並可能對鏈接進行加密或設置時效性,這使得直接下載變得更加複雜。
本文旨在提供一份最新且詳細的 B 站視頻下載教程,重點介紹能夠支持高清(包括 1080p、1080p60、甚至 4K) 畫質下載的方法,幫助你安全、高效地將心儀的 B 站視頻保存到本地。
重要聲明:
在開始之前,必須強調以下幾點:
- 版權意識: B 站上的絕大部分視頻內容均受版權法保護。下載他人擁有版權的視頻,僅應限於個人學習、研究、欣賞或備份等合理使用的範疇,嚴禁將下載的視頻用於任何形式的商業用途、二次分發、公開傳播或任何侵犯版權所有者權益的行為。請尊重創作者的勞動成果和平台的版權政策。
- 工具風險: 使用第三方下載工具可能存在潛在風險,例如工具失效(因 B 站接口更新)、捆綁惡意軟件、竊取個人信息(特別是需要登錄 cookie 的情況)等。請務必從可信賴的來源獲取工具,並謹慎使用。
- 平台規則: B 站的用戶協議可能不鼓勵或禁止使用第三方工具下載視頻。過度或不當使用下載工具可能導致賬號異常或受到限制。
- 時效性: 互聯網技術和平台策略總在不斷變化,本文介紹的方法在未來可能因 B 站的更新而失效。屆時需要尋找更新的工具或方法。
理解 B 站視頻下載的難點:
為什麼不能像下載普通文件一樣右鍵保存 B 站視頻?主要原因包括:
- 流媒體協議 (DASH): B 站的高清視頻(通常是 720p60 及以上)普遍採用 DASH 技術。這意味著視頻畫面和聲音是分開傳輸的兩個獨立文件流。簡單的下載工具可能只能抓取到其中一個(通常是只有畫面沒有聲音,或只有聲音沒有畫面),或者只能抓取到較低清晰度的、音視頻合併的 MP4 文件。要獲取高清視頻,下載工具必須能分別下載音視頻流,然後再將它們合併成一個完整的視頻文件。
- API 與簽名變化: 獲取視頻真實下載地址需要調用 B 站的內部 API。B 站會不定期更新其 API 接口、請求參數或簽名算法,以防止被濫用。這導致許多依賴固定接口的下載工具或腳本頻繁失效。
- 登錄與權限: 某些高清畫質(如 1080P 高碼率、4K)或特定視頻(如大會員專享、付費內容)需要用戶登錄後才能觀看和獲取下載鏈接。這要求下載工具能夠模擬登錄狀態,通常是通過導入用戶的 Cookie 來實現。
- 分段存儲: 較長的視頻可能會被切分成多個小的 TS 或 M4S 文件片段。下載工具需要能完整地獲取所有片段並正確拼接。
主流 B 站視頻下載方法概述:
目前市面上存在多種下載 B 站視頻的方法,各有優劣:
- 在線解析網站:
- 優點:無需安裝軟件,跨平台,使用簡單,只需粘貼視頻鏈接即可。
- 缺點:通常廣告較多,穩定性差,容易失效,下載速度可能受限,對高清 DASH 視頻的支持往往不佳或僅提供低畫質選項,安全性難以保證。(不推薦用於追求高清和穩定性的場景)
- 瀏覽器擴展程序 (插件):
- 優點:集成在瀏覽器中,使用相對方便,部分插件能嗅探到頁面上的視頻資源。
- 缺點:質量參差不齊,同樣容易因 B 站更新失效,可能涉及隱私權限問題,對 DASH 分離音視頻的合併支持能力有限,高清下載能力不穩定。部分聲稱能下載的插件可能效果不佳。
- 桌面客戶端軟件:
- 優點:通常功能較為強大和穩定,可能提供批量下載、格式轉換、清晰度選擇等功能。
- 缺點:需要下載安裝,注意軟件來源的安全性,避免安裝流氓軟件或病毒。部分優秀軟件可能是收費的。更新可能不及時。
- 命令行工具:
- 優點:功能最強大、最靈活、更新通常最快(尤其是開源項目),對高清 DASH 視頻支持最好,跨平台(Windows, macOS, Linux),無廣告,可通過腳本實現自動化、批量下載。
- 缺點:需要一定的計算機基礎,對不熟悉命令行的用戶有門檻。需要手動配置環境(如安裝 FFmpeg)。
核心推薦:使用命令行工具 yt-dlp
配合 FFmpeg
綜合考慮穩定性、高清支持能力、更新速度和安全性,目前最推薦的 B 站高清視頻下載方法是使用開源命令行工具 yt-dlp
。
yt-dlp
是什麼?yt-dlp
是著名項目youtube-dl
的一個活躍分支 (fork)。它繼承並極大地擴展了youtube-dl
的功能,支持數百個視頻網站(包括 Bilibili),並且更新非常頻繁,能較快地適應網站變化。它對 B 站的支持尤其出色,能夠解析 DASH 格式,選擇不同分辨率和幀率,下載字幕、封面、彈幕(XML格式),甚至支持登錄下載(通過 Cookie)。FFmpeg
是什麼?為什麼需要它?FFmpeg
是一個強大的開源多媒體處理工具集。對於 B 站的高清 DASH 視頻,yt-dlp
會分別下載視頻流(如 H.264/AVC, H.265/HEVC 編碼的 MP4 文件)和音頻流(如 AAC 編碼的 M4A 文件)。下載完成後,yt-dlp
會自動調用FFmpeg
將這兩個分離的文件合併 (muxing) 成一個我們常見的、包含音畫的 MP4 或 MKV 視頻文件。因此,要下載 B 站的高清視頻,安裝FFmpeg
是必不可少的步驟。
詳細使用教程:yt-dlp
+ FFmpeg
下載 B 站高清視頻
第一步:環境準備 (安裝 yt-dlp
和 FFmpeg
)
1. 安裝 yt-dlp
:
- Windows:
- 訪問
yt-dlp
的 GitHub Releases 頁面: https://github.com/yt-dlp/yt-dlp/releases/latest - 下載
yt-dlp.exe
文件。 - 建議: 為了方便在任何路徑下使用
yt-dlp
命令,可以將yt-dlp.exe
放置在一個文件夾中(例如D:\Tools
),然後將這個文件夾路徑添加到系統的環境變量Path
中。- 操作方法:右鍵點擊“此電腦” -> 屬性 -> 高級系統設置 -> 環境變量 -> 在“系統變量”或“用戶變量”中找到
Path
-> 編輯 -> 新建 -> 粘貼你的文件夾路徑 (如D:\Tools
) -> 確定保存。 - 或者,你也可以不添加環境變量,但每次運行都需要切換到
yt-dlp.exe
所在的目錄,或者使用完整路徑調用它(如D:\Tools\yt-dlp.exe
)。
- 操作方法:右鍵點擊“此電腦” -> 屬性 -> 高級系統設置 -> 環境變量 -> 在“系統變量”或“用戶變量”中找到
- 訪問
- macOS:
- 推薦使用 Homebrew 包管理器安裝:打開“終端 (Terminal)”,輸入命令
brew install yt-dlp
。 - 或者,也可以從 GitHub Releases 下載 macOS 的可執行文件,並將其移動到
/usr/local/bin
或其他在PATH
中的目錄,並給予執行權限 (chmod a+rx /path/to/yt-dlp
)。
- 推薦使用 Homebrew 包管理器安裝:打開“終端 (Terminal)”,輸入命令
- Linux:
- 可以使用發行版的包管理器安裝(可能不是最新版),如
sudo apt install yt-dlp
(Debian/Ubuntu) 或sudo pacman -S yt-dlp
(Arch Linux)。 - 推薦從 GitHub Releases 下載 Linux 的可執行文件,放到
PATH
目錄(如/usr/local/bin
)並給予執行權限。 - 或者使用 pip 安裝:
pip install -U yt-dlp
(需要先安裝 Python 和 pip)。
- 可以使用發行版的包管理器安裝(可能不是最新版),如
2. 安裝 FFmpeg
:
- Windows:
- 訪問 FFmpeg 官方網站的下載頁面 (https://ffmpeg.org/download.html) 或推薦的 Windows Builds 來源 (如 https://www.gyan.dev/ffmpeg/builds/ 或 https://github.com/BtbN/FFmpeg-Builds/releases)。
- 下載
essentials
或full
版本的 zip 包 (通常選擇full
包含更多編解碼器)。 - 解壓下載的 zip 文件,你會找到一個包含
bin
文件夾的目錄。 - 關鍵: 將
bin
文件夾的路徑 (例如D:\ffmpeg\bin
) 添加到系統的環境變量Path
中(方法同上一步添加yt-dlp
路徑)。
- macOS:
- 使用 Homebrew 安裝:
brew install ffmpeg
。
- 使用 Homebrew 安裝:
- Linux:
- 使用包管理器安裝:
sudo apt install ffmpeg
(Debian/Ubuntu) 或sudo pacman -S ffmpeg
(Arch Linux)。
- 使用包管理器安裝:
3. 驗證安裝:
打開你的命令行終端(Windows 下是 cmd
或 PowerShell
,macOS/Linux 是 Terminal
),分別輸入以下命令並回車:
bash
yt-dlp --version
ffmpeg -version
如果都成功顯示版本號,說明 yt-dlp
和 FFmpeg
已經安裝成功並且可以在命令行中被調用了。
第二步:獲取 B 站視頻鏈接
在瀏覽器中打開你想要下載的 B 站視頻頁面,複製地址欄中的完整 URL。例如:https://www.bilibili.com/video/BV1xx411c7mu/
。如果是包含多 P 的視頻,通常使用這個主頁面的鏈接即可。
第三步:使用 yt-dlp
下載視頻
打開命令行終端,使用以下基本命令結構:
bash
yt-dlp [選項] "視頻鏈接"
1. 查看所有可用畫質和格式:
在下載前,強烈建議先查看該視頻提供了哪些畫質選項。使用 -F
(大寫 F) 選項:
bash
yt-dlp -F "https://www.bilibili.com/video/BV1xx411c7mu/"
終端會輸出一個列表,類似這樣(示例,實際 ID 和描述可能不同):
[info] Available formats for BV1xx411c7mu:
ID EXT RESOLUTION FPS │ FILESIZE TBR PROTO │ VCODEC VBR ACODEC ABR ASR MORE INFO
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
... (可能會有較低清晰度、音視頻合併的格式) ...
16 mp4 360p 30 │ ~10.00MiB 414k m3u8 │ avc1.64001E 414k video only N/A داش video 16, 360p
64 mp4 480p 30 │ ~17.88MiB 739k m3u8 │ avc1.64001F 739k video only N/A داش video 64, 480p
80 mp4 720p 30 │ ~36.50MiB 1512k m3u8 │ avc1.640028 1512k video only N/A داش video 80, 720p
112 mp4 1080p 30 │ ~68.60MiB 2842k m3u8 │ avc1.640028 2842k video only N/A داش video 112, 1080p
116 mp4 1080p 60 │ ~105.00MiB 4350k m3u8 │ avc1.64002A 4350k video only N/A داش video 116, 1080p60
120 mp4 4K 30 │ ~250.00MiB 10350k m3u8 │ hev1.1.6.L120 10350k video only N/A داش video 120, 4k
30216 m4a audio only │ ~2.30MiB 95k m3u8 │ N/A mp4a.40.2 95k 44100Hz داش audio 30216, ~ 95.33k
30232 m4a audio only │ ~3.90MiB 161k m3u8 │ N/A mp4a.40.2 161k 44100Hz داش audio 30232, ~161.41k
30280 m4a audio only │ ~7.70MiB 319k m3u8 │ N/A mp4a.40.2 319k 48000Hz داش audio 30280, ~319.06k (best)
- 解讀列表:
ID
: 格式代碼,用於指定下載。RESOLUTION
: 分辨率 (如 1080p, 4K)。FPS
: 幀率 (如 30, 60)。VCODEC
: 視頻編碼 (如 avc1=H.264, hev1=H.265)。ACODEC
: 音頻編碼 (如 mp4a=AAC)。MORE INFO
: 描述,通常包含dash video
(表示只有視頻) 或dash audio
(表示只有音頻)。best
標籤表示默認的最佳音頻。
2. 選擇特定高清畫質下載:
使用 -f
(小寫 f) 選項,後面跟上你選擇的視頻 ID 和音頻 ID,用 +
連接。通常選擇分辨率最高的視頻 ID 和碼率最高的音頻 ID (標有 best
的那個)。
-
示例:下載 1080p60 視頻 (ID 116) 和最佳音頻 (ID 30280)
bash
yt-dlp -f 116+30280 "https://www.bilibili.com/video/BV1xx411c7mu/" -
示例:下載 4K 視頻 (ID 120) 和最佳音頻 (ID 30280)
bash
yt-dlp -f 120+30280 "https://www.bilibili.com/video/BV1xx411c7mu/" -
簡化選擇 (通常效果不錯):
yt-dlp
提供了一些內置的格式選擇器,如bestvideo
(選擇最佳畫質的視頻流) 和bestaudio
(選擇最佳音質的音頻流)。你可以這樣使用:bash
yt-dlp -f bestvideo+bestaudio "https://www.bilibili.com/video/BV1xx411c7mu/"
如果bestvideo+bestaudio
由於某些原因無法合併(很少見),可以嘗試只用best
,它會嘗試下載音視頻合併的最好質量,但可能不是 DASH 分離的最高清格式:
```bash備選方案,可能不是最高清
yt-dlp -f best "https://www.bilibili.com/video/BV1xx411c7mu/"
```
yt-dlp
會開始分別下載視頻和音頻文件(通常是 .mp4
和 .m4a
),下載完成後,你會看到類似 [Merger] Merging formats into "视频标题.mp4"
的提示,這表示它正在調用 FFmpeg
進行合併。最終你會得到一個完整的、包含音畫的視頻文件(默認可能是 .mp4
或 .mkv
,取決於編碼和 yt-dlp
的判斷)。
第四步:處理需要登錄的情況 (下載更高畫質或會員視頻)
某些高清格式(如 1080P 高碼率、4K)或特定視頻可能需要登錄 B 站賬號才能訪問。yt-dlp
支持通過導入瀏覽器 Cookie 來模擬登錄狀態。
1. 獲取 Cookie 文件:
- 方法: 使用瀏覽器擴展程序導出 Cookie。推薦使用能夠導出 Netscape 格式 Cookie 文件的擴展,例如
Get cookies.txt LOCALLY
(Chrome/Edge) 或cookies.txt
(Firefox)。 - 步驟:
- 在你的常用瀏覽器上安裝上述推薦的 Cookie 導出擴展。
- 確保你已經登錄了 B 站 (www.bilibili.com)。
- 點擊瀏覽器工具欄上的 Cookie 導出擴展圖標。
- 選擇導出 Netscape 格式 的 Cookie 文件 (通常是
.txt
文件)。 - 將導出的
cookies.txt
文件保存到一個安全的位置(例如你的yt-dlp
工具文件夾)。 - 注意:Cookie 包含你的登錄憑證,請妥善保管,不要洩露給他人!
2. 使用 Cookie 進行下載:
在 yt-dlp
命令中添加 --cookies
選項,後面跟上你的 Cookie 文件路徑。
-
示例:使用 Cookie 文件查看可用格式 (可能會看到更多高清選項)
bash
yt-dlp --cookies /path/to/your/cookies.txt -F "https://www.bilibili.com/video/BV1xx411c7mu/"
(將/path/to/your/cookies.txt
替換為你實際的 Cookie 文件路徑,例如D:\Tools\cookies.txt
或~/cookies.txt
) -
示例:使用 Cookie 文件下載指定高清格式
bash
yt-dlp --cookies /path/to/your/cookies.txt -f bestvideo+bestaudio "https://www.bilibili.com/video/BV1xx411c7mu/"
第五步:更多 yt-dlp
常用選項 (進階)
-
下載播放列表 (多 P 視頻):
通常,直接提供播放列表頁面的 URL,yt-dlp
會自動下載所有分 P。
bash
yt-dlp -f bestvideo+bestaudio "https://www.bilibili.com/video/BV1yy4y1u7cX?p=1"
(即使鏈接裡有p=1
,它通常也會下載整個列表)- 下載指定分 P:
--playlist-items 2,4-6,10
(下載第 2, 4, 5, 6, 10 P) - 下載特定範圍:
--playlist-start 5 --playlist-end 10
(下載第 5 到 10 P)
- 下載指定分 P:
-
下載字幕:
- 查看可用字幕:
yt-dlp --list-subs "視頻鏈接"
- 下載所有自動生成的和上傳的字幕:
yt-dlp --write-subs --write-auto-subs "視頻鏈接"
- 下載指定語言字幕 (例如簡體中文
zh-Hans
):yt-dlp --write-subs --sub-lang zh-Hans "視頻鏈接"
- 將字幕嵌入視頻文件 (需要 FFmpeg 支持,輸出格式建議為 MKV):
yt-dlp --embed-subs -f bestvideo+bestaudio --merge-output-format mkv "視頻鏈接"
- 查看可用字幕:
-
下載彈幕:
B 站彈幕是 XML 格式,yt-dlp
可以下載。
bash
yt-dlp --write-comments "視頻鏈接"
(會下載一個.cmt.xml
文件。需要專門的播放器或工具加載此彈幕文件) -
自定義輸出文件名和路徑:
使用-o
選項可以指定輸出文件的模板。
```bash
# 文件名格式:标题-视频ID.扩展名
yt-dlp -o "%(title)s-%(id)s.%(ext)s" "視頻鏈接"指定保存目錄 (目錄需要已存在)
yt-dlp -P /path/to/save/directory "視頻鏈接"
或者 Windows 示例:
yt-dlp -P D:\BilibiliDownloads "視頻鏈接"
結合使用
yt-dlp -P D:\BilibiliDownloads -o "%(playlist_title)s/%(playlist_index)s-%(title)s.%(ext)s" "播放列表鏈接"
``
%(title)s
(,
%(id)s,
%(ext)s,
%(playlist_title)s,
%(playlist_index)s` 等是可用的變量) -
限速下載:
如果下載佔用帶寬過高,可以限速。
bash
# 限制速度為 1MB/s
yt-dlp --limit-rate 1M "視頻鏈接"
備選方案:專門的 B 站下載工具 (如 BBDown)
除了通用的 yt-dlp
,還有一些專門針對 B 站設計的開源命令行工具,例如 BBDown
(https://github.com/nilaoda/BBDown)。
- 優點: 專門為 B 站優化,可能在解析 B 站特定內容(如互動視頻、部分特殊編碼)方面有獨到之處,命令行參數相對更針對 B 站的特性(例如直接選擇清晰度代碼)。
- 缺點: 功能範圍不如
yt-dlp
廣泛(只支持 B 站),更新依賴單個開發者或小團隊。 - 使用方法: BBDown 的使用方式與
yt-dlp
類似,也需要配合FFmpeg
。通常也是下載其 Release 中的可執行文件,然後在命令行中使用。例如,下載高清視頻可能使用類似BBDown "視頻鏈接" -q 116
(假設 116 是 1080p60 的代碼)這樣的命令。登錄同樣需要 Cookie。具體請參考其項目文檔。
常見問題與解決方案 (Troubleshooting):
- 提示
ffmpeg
或ffprobe
not found:- 原因: FFmpeg 沒有正確安裝,或者其
bin
目錄沒有添加到環境變量Path
中,或者添加後沒有重啟命令行終端/電腦。 - 解決: 確保 FFmpeg 已下載解壓,將
bin
目錄完整路徑添加到Path
環境變量,關閉所有已打開的命令行窗口並重新打開,然後再試。可以輸入ffmpeg -version
驗證。
- 原因: FFmpeg 沒有正確安裝,或者其
- 下載失敗,出現 403 Forbidden 或其他錯誤:
- 原因: 鏈接失效、B 站接口更新導致工具失效、網絡問題、需要登錄但未提供 Cookie、Cookie 過期或無效。
- 解決:
- 確保
yt-dlp
是最新版本 (yt-dlp -U
可以嘗試更新)。 - 檢查網絡連接。
- 嘗試提供有效的 Cookie 文件 (
--cookies
選項)。 - 如果是付費或地區限制內容,可能無法下載。
- 查看
yt-dlp
的 GitHub Issues 頁面,看看是否有其他用戶報告類似問題及解決方案。
- 確保
- 下載的視頻只有畫面沒聲音,或只有聲音沒畫面:
- 原因: 很可能是
FFmpeg
沒有正確安裝或配置,導致yt-dlp
無法合併音視頻流。 - 解決: 參考問題 1,確保
FFmpeg
安裝正確且在Path
中。
- 原因: 很可能是
- 下載的清晰度不是我想要的最高畫質:
- 原因: 沒有使用
-f
指定格式,或者指定的格式不存在,或者需要登錄才能獲取更高畫質但未提供 Cookie。 - 解決: 先用
-F
查看所有可用格式,然後用-f
精確指定視頻 ID 和音頻 ID。如果懷疑需要登錄,請導出最新的 Cookie 並使用--cookies
選項再試。
- 原因: 沒有使用
- 如何更新
yt-dlp
?- 如果通過
pip
安裝:pip install -U yt-dlp
- 如果使用
brew
安裝:brew upgrade yt-dlp
- 如果下載的
.exe
或可執行文件:直接運行yt-dlp -U
命令即可(需要網絡連接)。或者去 GitHub Releases 頁面下載最新版本覆蓋舊文件。
- 如果通過
結語與再次提醒:
通過 yt-dlp
配合 FFmpeg
,我們可以相當穩定且高效地實現 B 站高清視頻的下載,滿足離線觀看、學習、備份等個人合理需求。命令行工具雖然初看起來有門檻,但一旦熟悉,其強大、靈活和高效率是其他方法難以比擬的。
請務必牢記:
- 尊重版權,合理使用。 下載的視頻僅限個人用途,切勿二次分發或商用。
- 注意安全。 從官方或可信來源獲取工具,謹慎處理個人 Cookie 信息。
- 保持更新。 B 站和工具都在不斷變化,遇到問題時,更新工具 (
yt-dlp -U
) 往往是第一步。如果工具長時間未更新或不再維護,可能需要尋找替代方案。
希望這份詳細的教程能幫助你成功下載所需的 B 站高清視頻。享受 B 站帶來的精彩內容,同時也做一個負責任的網絡用戶。