是什么

BBDown 是 B 站(bilibili)专用命令行视频下载器,C# 实现,单文件 exe(.NET 自包含),GitHub 上 B 站下载器里 star 最多(13k+)。地址:nilaoda/BBDown。

  • 免登录可解析下载,但未登录最高只能拿到 480P;要 1080P+/大会员画质需登录 cookie。
  • 支持番剧(ep/ss)、分 P、弹幕、字幕、封面、多线程下载、ffmpeg 混流。
  • 本机测试环境:Windows,已装 ffmpeg 7.1.1 full build(C:\Users\18086\AppData\Local\ffmpeg\...),BBDown 混流直接调用它。

安装步骤(GitHub release,走代理)

# 1. 查最新版本与 win-x64 资产名
gh api repos/nilaoda/BBDown/releases/latest --jq '.tag_name, (.assets[].name)'

# 2. 走本地代理 7890 下载并解压到 %LOCALAPPDATA%\BBDown
mkdir -p "$LOCALAPPDATA/BBDown" && cd "$LOCALAPPDATA/BBDown"
curl -x http://127.0.0.1:7890 -sSL -o bbdown.zip \
  "https://github.com/nilaoda/BBDown/releases/download/<TAG>/BBDown_<TAG>_<DATE>_win-x64.zip"
unzip -o bbdown.zip && rm bbdown.zip

# 3. 加入用户 PATH(PowerShell 追加,避免 setx 1024 截断)
powershell -NoProfile -Command "\$p = [Environment]::GetEnvironmentVariable('Path','User'); if (\$p -notlike '*BBDown*') { [Environment]::SetEnvironmentVariable('Path', \$p + ';' + \"\$env:LOCALAPPDATA\BBDown\", 'User') }"

常用用法

BBDown BV号或URL -info          # 只解析看流信息,不下载
BBDown BV号                     # 默认下载当前最高可用画质 + 混流
BBDown BV号 --audio-only        # 仅音频;--video-only / --sub-only / --danmaku-only 同理
BBDown BV号 -q "1080P 高码率"    # 画质优先级,逗号分隔
BBDown ep号/ss号                # 番剧;需要登录 cookie

Chrome 导出的 JSON 通常是 cookie 对象数组。只在本机转换,不要把文件内容发给任何人:

import json
from pathlib import Path

src = Path.home() / "Desktop" / "cookie.json"
dst = Path.home() / "AppData/Local/BBDown/BBDown.data"
cookies = json.loads(src.read_text(encoding="utf-8"))
if isinstance(cookies, dict):
    cookies = cookies["cookies"]
parts = [
    f"{c['name']}={c['value']}"
    for c in cookies
    if "bilibili.com" in c.get("domain", "")
]
dst.write_text(";".join(parts), encoding="utf-8")

验证:BBDown BV号 -info 不再提示“尚未登录”,并能看到登录账号可用的高清流。BBDown login 的二维码流程在部分版本中可能只保存临时 ticket,不能替代有效网页 cookie。

BBDown.data 和 Chrome 导出的 cookie 文件都是登录凭据,不能上传、提交 Git 或公开分享;不用后应删除桌面导出文件。

坑

  1. 未登录画质锁 480P:解析时会提示"你尚未登录B站账号, 解析可能受到限制",这是预期行为。
  2. B 站风控 -352:api.bilibili.com/x/web-interface/popular 这类接口无 cookie 直连可能返回 {"code":-352,"message":"-352"},不是工具坏了。取 BV 号可抓首页 HTML:curl -s https://www.bilibili.com/ | grep -oE 'BV1[0-9A-Za-z]{9}'。
  3. 中文 Windows 下 GBK 输出:bash 里管道显示乱码,用 | iconv -f GBK -t UTF-8 转换。
  4. 高画质默认选型:-q 参数优先选 HEVC 编码省流量;编码优先级用 -e "hevc,av1,avc"。

本地中文语音转文字

没有 NVIDIA GPU 时,faster-whisper 使用 CPU int8 仍可处理短音频;中文候选优先使用 small,准确率要求更高时再用 medium 或 large-v3,但 CPU 耗时会明显增加。模型文件从 Hugging Face 下载时,国内网络环境需要让 Python 请求显式走本地代理(例如 HTTP_PROXY/HTTPS_PROXY=http://127.0.0.1:7890)。

推荐输出 UTF-8 的纯文本和 SRT 时间轴。Windows 终端显示中文乱码不代表文件编码错误,应直接按 UTF-8 读取文件验证。

相关

  • 通用多平台下载器 lux(Go,31k star)也可下 B 站,但 B 站专项功能不如 BBDown。

本文归档于个人知识库 · 领域:CS & AI · 模块:04 Project_CS_AI/General