BBDown 下载 B 站视频完整指南:从单集视频到批量番剧的命令行工具
BBDown 下载 B 站视频完整指南:从单集视频到批量番剧的命令行工具
【免费下载链接】BBDownBilibili Downloader. 一个命令行式哔哩哔哩下载器.项目地址: https://gitcode.com/gh_mirrors/bb/BBDown
BBDown 是一个免费开源的命令行 B 站视频下载器,一条命令即可完成下载 B 站视频的全部流程:解析、多线程拉流、自动混流成 MP4。它基于 .NET 实现,以 dotnet tool 形式发布,除了普通视频,也覆盖番剧、课程、合集、收藏夹与个人空间等场景。
BBDown 能下载哪些内容
BBDown 针对不同的内容类型使用不同的解析器,覆盖范围如下:
- 普通视频:av 号、BV 号或完整链接
- 番剧:ep 单集、ss 季度/系列链接
- 课程
- 合集、收藏夹、个人空间:解析列表并逐项批量下载
几个关于工具本身的事实:
- 免费开源,MIT 许可,可自行构建与修改
- 单进程命令行程序,无图形界面,资源占用轻
- 音视频混流依赖外部的 ffmpeg 或 mp4box
- 支持 8K、HDR、杜比视界、杜比全景声片源,以及 AVC/HEVC/AV1 编码
各类内容的解析实现分别位于 BBDown.Core/Fetcher/ 目录,如NormalInfoFetcher.cs(普通视频)、BangumiInfoFetcher.cs(番剧)、CheeseInfoFetcher.cs(课程)、FavListFetcher.cs(收藏夹),需要深入了解解析逻辑时可以从这里入手。
安装 BBDown 并用一条命令拿到视频
本地有 dotnet 环境时,直接以 tool 形式安装:
dotnet tool install --global BBDown安装完成后,先用-info只解析不下载,确认这个视频能解析出哪些清晰度与编码:
BBDown -info "https://www.bilibili.com/video/BV1qt4y1X7TW"确认无误后去掉参数即可真正下载:
BBDown "https://www.bilibili.com/video/BV1qt4y1X7TW"混流好的 MP4 输出到当前目录。单 P 视频到这里就结束了,完整参数用BBDown -h查看。
分 P 视频与整部番剧的批量下载
分 P 视频默认下载全部。只取部分时用-p指定,支持单个、多个、区间三种写法:
BBDown -p 10 "https://www.bilibili.com/video/BV1At41167aj" BBDown -p 1,2,10 "https://www.bilibili.com/video/BV1At41167aj" BBDown -p 1-10 "https://www.bilibili.com/video/BV1At41167aj"-p ALL表示全部,-p LAST表示最新一集。番剧整季下载直接传 ss 链接:
BBDown -p ALL "https://www.bilibili.com/bangumi/play/ss33073"几个配套用法:
--show-all:分 P 过多时默认会截断列表,加此参数显示全部分 P 标题--delay-per-page 2:分 P 之间插入 2 秒间隔,降低批量下载的网络压力--save-archives-to-file:把下载记录写入本地文件,重复运行时跳过已下载的视频
画质与来源:TV 端、APP 端与网页端解析模式怎么选
同一个视频可以走不同的接口,拿到的片源与画质可能不同。默认是网页端,另外两个模式用开关切换:
BBDown -tv "<视频链接>" # TV 端(云视听小电视) BBDown -app "<视频链接>" # APP 端 BBDown -intl "<视频链接>" # 国际版(东南亚区域内容)选择时的参考依据:
- 网页端拿不到想要的高画质,或想验证片源时,换
-tv。粉丝量大的 UP 主走 TV 端通常是无水印片源 - APP 端部分清晰度更稳,但需要
access_token(抓包获取后通过-token传入),登录章节会说明 - 用
-q指定画质优先级,例如-q "8K 超高清, HDR 真彩";用-e指定编码优先级,例如-e hevc,av1,avc - 不想手敲参数时用
-ia进入交互模式,在终端列表里直接选流
下载会员内容:BBDown login 二维码登录
会员专享内容需要账号鉴权。BBDown 使用 B 站 APP 扫码的方式登录,凭据保存在本地并自动复用:
BBDown login # 登录 WEB 账号 BBDown logintv # 登录 TV 端(云视听小电视)账号执行后终端会渲染二维码,用 APP 扫码确认即可。不想扫码时可以显式传凭据:
BBDown -c "SESSDATA=xxxx" "<视频链接>" BBDown -tv -token "xxxx" "<视频链接>"APP 端接口的 token 无法自动获取,按 README 说明抓包拿到authorization中的值后,用-token传入或写入BBDownApp.data。扫码与登录逻辑可参考 BBDown/BBDownLoginUtil.cs 与 BBDown/ConsoleQRCode.cs。
自定义文件名格式,让下载目录井井有条
默认规则:单 P 以主标题命名;多 P 放入<videoTitle>/[P01]<分P标题>结构的目录。想加入清晰度、序号等信息,用-F(单 P)与-M(多 P)配合内置变量:
BBDown -F "<videoTitle>[<dfn>]" "<视频链接>"常用变量:<videoTitle>主标题、<pageNumberWithZero>补零分 P 序号、<pageTitle>分 P 标题、<dfn>清晰度、<res>分辨率、<fps>帧率、<videoCodecs>视频编码、<ownerName>上传者、<bvid>BV 号。完整变量表见BBDown -h输出。
进阶能力:字幕转 srt、仅音频、多线程与 aria2c
在视频下载之外,BBDown 提供一组开关型能力,用到时加参数即可:
- 字幕:默认随片下载外挂字幕并自动转换为 srt,不需要时用
--skip-subtitle;--sub-only只取字幕 - 音频提取:
--audio-only只下载音频流;--video-only反之只取视频流 - 弹幕:
--download-danmaku随片下载弹幕,--danmaku-only只取弹幕 - 多线程:默认开启,对大文件有效提速
- aria2c 加速:
-aria2调用本地 aria2c 下载(需自备可执行文件),配合--aria2c-args调整并发 - 封面:
--cover-only单独保存封面
BBDown.config 配置文件一次设置长期受益
1.4.9 版本起支持配置文件:默认读取程序同目录下的BBDown.config,也可以用--config-file指定其他路径。格式是「选项一行、参数一行」,#开头为注释。一个典型示例:
#输出文件名格式 --file-pattern <videoTitle>[<dfn>] #多P文件名格式 --multi-file-pattern <videoTitle>/[P<pageNumberWithZero>]<pageTitle>[<dfn>] #分P之间间隔2秒 --delay-per-page 2 #开启弹幕下载 --download-danmaku把「整季番剧 + 固定命名 + 弹幕」这类固定动作写进配置后,日常只需执行一条命令,参数不再重复敲。配置文件解析逻辑在 BBDown/BBDownConfigParser.cs。
少走弯路:下载 B 站视频时的常见问题
- 混流失败或产物不可播:混流步骤依赖 ffmpeg 或 mp4box,环境里没装就会失败。装好后重试,也可用
--ffmpeg-path/--mp4box-path指定可执行文件位置。 - 会员内容解析出低画质或报错:未登录或凭据过期。重跑
BBDown login刷新扫码,或检查 cookie 是否仍有效。 - 扫码登录报 Gdip 异常:README 中给出了该错误的说明与处理方法,按其指引安装对应依赖即可。
- 分 P 列表显示不全:这是默认的截断行为,加
--show-all查看完整列表。 - 下载速度慢:换
-tv端片源,或用-aria2接入 aria2c;多线程默认已开启。 - 版本更新:dotnet tool 安装的用户执行
dotnet tool update --global BBDown即可升级。
开始使用:把 BBDown 接入你的下载工作流
BBDown 的定位是轻量、可脚本化的 B 站视频下载工具:手动场景下一条命令解决单集与整季下载,自动化场景下可以配合配置文件与--save-archives-to-file去重,甚至以服务器模式运行(BBDown serve,接口说明见 json-api-doc.md)集成进其他工具。装好后先跑一次BBDown -h,再用你手边的一条视频链接把第一条下载命令跑通,剩下的能力按需叠加即可。
【免费下载链接】BBDownBilibili Downloader. 一个命令行式哔哩哔哩下载器.项目地址: https://gitcode.com/gh_mirrors/bb/BBDown
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考