哔哩哔哩视频下载 (BBDown)
是什么
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 导入 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 或公开分享;不用后应删除桌面导出文件。
坑
- 未登录画质锁 480P:解析时会提示"你尚未登录B站账号, 解析可能受到限制",这是预期行为。
- 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}'。 - 中文 Windows 下 GBK 输出:bash 里管道显示乱码,用
| iconv -f GBK -t UTF-8转换。 - 高画质默认选型:
-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