一款命令行式哔哩哔哩下载器. 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)
- 自动刷新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.data
到BBDownApp.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
下载完毕后在当前目录查看MP4文件:
- https://github.com/codebude/QRCoder
- https://github.com/icsharpcode/SharpZipLib
- https://github.com/protobuf-net/protobuf-net
- https://github.com/dotnet/command-line-api
- https://github.com/SocialSisterYi/bilibili-API-collect
- https://github.com/SeeFlowerX/bilibili-grpc-api
- https://github.com/FFmpeg/FFmpeg
- https://github.com/gpac/gpac
- https://github.com/aria2/aria2