/BBDown

Bilibili Downloader. 一款命令行式哔哩哔哩下载器.

Primary LanguageC#MIT LicenseMIT

img img img img

BBDown

一款命令行式哔哩哔哩下载器. Bilibili Downloader.

注意

本软件合并时需要使用ffmpeg ,也可能需要使用mp4box,用于合并杜比视界.

快速开始

本软件已经以 Dotnet Tool 形式发布

如果你本地有dotnet环境,使用如下命令即可安装使用

dotnet tool install --global BBDown

下载

https://github.com/nilaoda/BBDown/releases

https://github.com/nilaoda/BBDown/actions

开始使用

目前命令行参数支持情况

BBDown
  BBDown是一个免费且便捷高效的哔哩哔哩下载/解析软件.

Usage:
  BBDown [options] <url> [command]

Arguments:
  <url>  视频地址 或 av|bv|BV|ep|ss

Options:
  -tv, --use-tv-api                      使用TV端解析模式
  -app, --use-app-api                    使用APP端解析模式
  -intl, --use-intl-api                  使用国际版解析模式
  --use-mp4box                           使用MP4Box来混流
  -hevc, --only-hevc                     只下载hevc编码
  -avc, --only-avc                       只下载avc编码
  -info, --only-show-info                仅解析而不进行下载
  -hs, --hide-streams                    不要显示所有可用音视频流
  -ia, --interactive                     交互式选择清晰度
  --show-all                             展示所有分P标题
  --use-aria2c                           调用aria2c进行下载(你需要自行准备好二进制可执行文件)
  --aria2c-proxy <aria2c-proxy>          调用aria2c进行下载时的代理地址配置
  -mt, --multi-thread                    使用多线程下载
  -p, --select-page <select-page>        选择指定分p或分p范围:(-p 8 或 -p 1,2 或 -p 3-5 或 -p ALL)
  --audio-only                           仅下载音频
  --video-only                           仅下载视频
  --sub-only                             仅下载字幕
  --no-padding-page-num                  不给分P序号补零
  --debug                                输出调试日志
  --skip-mux                             跳过混流步骤
  --skip-subtitle                        跳过字幕下载
  --skip-cover                           跳过封面下载
  --language <language>                  设置混流的音频语言(代码),如chi, jpn等
  -c, --cookie <cookie>                  设置字符串cookie用以下载网页接口的会员内容
  -token, --access-token <access-token>  设置access_token用以下载TV/APP接口的会员内容
  --work-dir <work-dir>                  设置程序的工作目录
  --delay-per-page <delay-per-page>      设置下载合集分P之间的下载间隔时间(单位: 秒, 默认无间隔)
  --version                              Show version information
  -?, -h, --help                         Show help and usage information

功能

  • 番剧下载(Web|TV|App)
  • 课程下载(Web)
  • 普通内容下载(Web|TV|App) (TV接口可以下载部分UP主的无水印内容)
  • 多分P自动下载
  • 选择指定分P进行下载
  • 选择指定清晰度进行下载
  • 下载外挂字幕并转换为srt格式
  • 自动合并音频+视频流+字幕流(使用ffmpeg或mp4box)
  • 单独下载视频/音频/字幕
  • 二维码登录账号
  • 多线程下载
  • 支持调用aria2c下载
  • 支持HDR/杜比视界/杜比全景声下载(需要使用App接口且输入会员token)

TODO

  • 自动刷新cookie
  • 自定义HTTP代理
  • 下载指定收藏夹中的视频
  • 下载某个个人空间页的视频
  • 自定义存储文件名等
  • 弹幕下载&转换
  • 支持更多自定义选项

使用教程

WEB/TV鉴权

扫码登录网页账号:

BBDown login

然后按照提示操作

扫码登录云视听小电视账号:

BBDown logintv

然后按照提示操作

PS: 如果登录报错The type initializer for 'Gdip' threw an exception,请参考 #37 解决

手动加载网页cookie:

BBDown -c "SESSDATA=******" "https://www.bilibili.com/video/BV1qt4y1X7TW"

手动加载云视听小电视token:

BBDown -tv -token "******" "https://www.bilibili.com/video/BV1qt4y1X7TW"
APP鉴权

根据 #123 ,可以填写TV登录产生的access_token来给APP接口使用。可复制BBDownTV.dataBBDownApp.data使程序自动读取.

目前程序无法自动获取鉴权信息,推荐通过抓包来获取.

在请求Header中寻找键为authorization的项,其值形为identify_v1 5227************1,其中的5227************1就是token(access_key)

获取后手动通过-token命令加载, 或写入BBDownApp.data使程序自动读取.

BBDown -app -token "******" "https://www.bilibili.com/video/BV1qt4y1X7TW"
常用命令

下载普通视频:

BBDown "https://www.bilibili.com/video/BV1qt4y1X7TW"

使用TV接口下载(粉丝量大的UP主基本上是无水印片源):

BBDown -tv "https://www.bilibili.com/video/BV1qt4y1X7TW"

当分P过多时,默认会隐藏展示全部的分P信息,你可以使用如下命令来显示所有每一个分P。

BBDown --show-all "https://www.bilibili.com/video/BV1At41167aj"

选择下载某些分P的三种情况:

  • 单个分P:10
BBDown "https://www.bilibili.com/video/BV1At41167aj?p=10"
BBDown -p 10 "https://www.bilibili.com/video/BV1At41167aj"
  • 多个分P:1,2,10
BBDown -p 1,2,10 "https://www.bilibili.com/video/BV1At41167aj"
  • 范围分P:1-10
BBDown -p 1-10 "https://www.bilibili.com/video/BV1At41167aj"

下载番剧全集:

BBDown -p ALL "https://www.bilibili.com/bangumi/play/ss33073"

更新日志

请查看 changelog.txt

演示

1

下载完毕后在当前目录查看MP4文件:

2

致谢