[最新] 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 站視頻保存到本地。

重要聲明:

在開始之前,必須強調以下幾點:

  1. 版權意識: B 站上的絕大部分視頻內容均受版權法保護。下載他人擁有版權的視頻,僅應限於個人學習、研究、欣賞或備份等合理使用的範疇,嚴禁將下載的視頻用於任何形式的商業用途、二次分發、公開傳播或任何侵犯版權所有者權益的行為。請尊重創作者的勞動成果和平台的版權政策。
  2. 工具風險: 使用第三方下載工具可能存在潛在風險,例如工具失效(因 B 站接口更新)、捆綁惡意軟件、竊取個人信息(特別是需要登錄 cookie 的情況)等。請務必從可信賴的來源獲取工具,並謹慎使用。
  3. 平台規則: B 站的用戶協議可能不鼓勵或禁止使用第三方工具下載視頻。過度或不當使用下載工具可能導致賬號異常或受到限制。
  4. 時效性: 互聯網技術和平台策略總在不斷變化,本文介紹的方法在未來可能因 B 站的更新而失效。屆時需要尋找更新的工具或方法。

理解 B 站視頻下載的難點:

為什麼不能像下載普通文件一樣右鍵保存 B 站視頻?主要原因包括:

  1. 流媒體協議 (DASH): B 站的高清視頻(通常是 720p60 及以上)普遍採用 DASH 技術。這意味著視頻畫面和聲音是分開傳輸的兩個獨立文件流。簡單的下載工具可能只能抓取到其中一個(通常是只有畫面沒有聲音,或只有聲音沒有畫面),或者只能抓取到較低清晰度的、音視頻合併的 MP4 文件。要獲取高清視頻,下載工具必須能分別下載音視頻流,然後再將它們合併成一個完整的視頻文件。
  2. API 與簽名變化: 獲取視頻真實下載地址需要調用 B 站的內部 API。B 站會不定期更新其 API 接口、請求參數或簽名算法,以防止被濫用。這導致許多依賴固定接口的下載工具或腳本頻繁失效。
  3. 登錄與權限: 某些高清畫質(如 1080P 高碼率、4K)或特定視頻(如大會員專享、付費內容)需要用戶登錄後才能觀看和獲取下載鏈接。這要求下載工具能夠模擬登錄狀態,通常是通過導入用戶的 Cookie 來實現。
  4. 分段存儲: 較長的視頻可能會被切分成多個小的 TS 或 M4S 文件片段。下載工具需要能完整地獲取所有片段並正確拼接。

主流 B 站視頻下載方法概述:

目前市面上存在多種下載 B 站視頻的方法,各有優劣:

  1. 在線解析網站:
    • 優點:無需安裝軟件,跨平台,使用簡單,只需粘貼視頻鏈接即可。
    • 缺點:通常廣告較多,穩定性差,容易失效,下載速度可能受限,對高清 DASH 視頻的支持往往不佳或僅提供低畫質選項,安全性難以保證。(不推薦用於追求高清和穩定性的場景)
  2. 瀏覽器擴展程序 (插件):
    • 優點:集成在瀏覽器中,使用相對方便,部分插件能嗅探到頁面上的視頻資源。
    • 缺點:質量參差不齊,同樣容易因 B 站更新失效,可能涉及隱私權限問題,對 DASH 分離音視頻的合併支持能力有限,高清下載能力不穩定。部分聲稱能下載的插件可能效果不佳。
  3. 桌面客戶端軟件:
    • 優點:通常功能較為強大和穩定,可能提供批量下載、格式轉換、清晰度選擇等功能。
    • 缺點:需要下載安裝,注意軟件來源的安全性,避免安裝流氓軟件或病毒。部分優秀軟件可能是收費的。更新可能不及時。
  4. 命令行工具:
    • 優點:功能最強大、最靈活、更新通常最快(尤其是開源項目),對高清 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-dlpFFmpeg)

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)。
  • 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:
  • macOS:
    • 使用 Homebrew 安裝:brew install ffmpeg
  • Linux:
    • 使用包管理器安裝:sudo apt install ffmpeg (Debian/Ubuntu) 或 sudo pacman -S ffmpeg (Arch Linux)。

3. 驗證安裝:

打開你的命令行終端(Windows 下是 cmdPowerShell,macOS/Linux 是 Terminal),分別輸入以下命令並回車:

bash
yt-dlp --version
ffmpeg -version

如果都成功顯示版本號,說明 yt-dlpFFmpeg 已經安裝成功並且可以在命令行中被調用了。

第二步:獲取 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)。
  • 步驟:
    1. 在你的常用瀏覽器上安裝上述推薦的 Cookie 導出擴展。
    2. 確保你已經登錄了 B 站 (www.bilibili.com)。
    3. 點擊瀏覽器工具欄上的 Cookie 導出擴展圖標。
    4. 選擇導出 Netscape 格式 的 Cookie 文件 (通常是 .txt 文件)。
    5. 將導出的 cookies.txt 文件保存到一個安全的位置(例如你的 yt-dlp 工具文件夾)。
    6. 注意: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)
  • 下載字幕:

    • 查看可用字幕: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):

  1. 提示 ffmpegffprobe not found:
    • 原因: FFmpeg 沒有正確安裝,或者其 bin 目錄沒有添加到環境變量 Path 中,或者添加後沒有重啟命令行終端/電腦。
    • 解決: 確保 FFmpeg 已下載解壓,將 bin 目錄完整路徑添加到 Path 環境變量,關閉所有已打開的命令行窗口並重新打開,然後再試。可以輸入 ffmpeg -version 驗證。
  2. 下載失敗,出現 403 Forbidden 或其他錯誤:
    • 原因: 鏈接失效、B 站接口更新導致工具失效、網絡問題、需要登錄但未提供 Cookie、Cookie 過期或無效。
    • 解決:
      • 確保 yt-dlp 是最新版本 (yt-dlp -U 可以嘗試更新)。
      • 檢查網絡連接。
      • 嘗試提供有效的 Cookie 文件 (--cookies 選項)。
      • 如果是付費或地區限制內容,可能無法下載。
      • 查看 yt-dlp 的 GitHub Issues 頁面,看看是否有其他用戶報告類似問題及解決方案。
  3. 下載的視頻只有畫面沒聲音,或只有聲音沒畫面:
    • 原因: 很可能是 FFmpeg 沒有正確安裝或配置,導致 yt-dlp 無法合併音視頻流。
    • 解決: 參考問題 1,確保 FFmpeg 安裝正確且在 Path 中。
  4. 下載的清晰度不是我想要的最高畫質:
    • 原因: 沒有使用 -f 指定格式,或者指定的格式不存在,或者需要登錄才能獲取更高畫質但未提供 Cookie。
    • 解決: 先用 -F 查看所有可用格式,然後用 -f 精確指定視頻 ID 和音頻 ID。如果懷疑需要登錄,請導出最新的 Cookie 並使用 --cookies 選項再試。
  5. 如何更新 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 站帶來的精彩內容,同時也做一個負責任的網絡用戶。


THE END