BBDown – 哔哩哔哩命令行下载器

软件介绍

本软件已经以 Dotnet Tool 形式发布。如果你本地有dotnet环境,使用如下命令即可安装使用:

dotnet tool install –global BBDown

如果需要更新bbdown,使用如下命令:

dotnet tool update –global BBDown

Release版本:https://github.com/nilaoda/BBDown/releases

自动构建的测试版本:https://github.com/nilaoda/BBDown/actions

使用方法

基本用法

BBDown是一个命令行工具,使用方法如下:

BBDown <url> [command] [options]

其中:

  • <url>: 视频地址或av|bv|BV|ep|ss
  • [command]: 可选命令(如login、logintv、serve)
  • [options]: 可选参数,用于自定义下载行为

常用命令示例

下载普通视频:

BBDown “https://www.bilibili.com/video/BV1qt4y1X7TW”

使用TV接口下载(无水印片源):

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

显示所有分P信息:

BBDown –show-all “https://www.bilibili.com/video/BV1At41167aj”

选择下载单个分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”

WEB/TV鉴权

扫码登录网页账号:

BBDown login

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

BBDown logintv

手动加载网页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使程序自动读取。

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

authorization的项,其值形为identify_v1 5227************1,其中的5227************1就是token(access_key)

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

BBDown -app -token “******” “https://www.bilibili.com/video/BV1qt4y1X7TW”

参数详解

基本参数

参数 描述
-tv, –use-tv-api 使用TV端解析模式
-app, –use-app-api 使用APP端解析模式
-intl, –use-intl-api 使用国际版(东南亚视频)解析模式
–use-mp4box 使用MP4Box来混流
-e, –encoding-priority 视频编码的选择优先级, 用逗号分割 例: “hevc,av1,avc”
-q, –dfn-priority 画质优先级,用逗号分隔 例: “8K 超高清, 1080P 高码率, HDR 真彩, 杜比视界”
-info, –only-show-info 仅解析而不进行下载
–show-all 展示所有分P标题
-aria2, –use-aria2c 调用aria2c进行下载(你需要自行准备好二进制可执行文件)
-ia, –interactive 交互式选择清晰度
-hs, –hide-streams 不要显示所有可用音视频流
-mt, –multi-thread 使用多线程下载(默认开启)

高级参数

参数 描述
–video-only 仅下载视频
–audio-only 仅下载音频
–danmaku-only 仅下载弹幕
–sub-only 仅下载字幕
–cover-only 仅下载封面
–debug 输出调试日志
–skip-mux 跳过混流步骤
–skip-subtitle 跳过字幕下载
–skip-cover 跳过封面下载
–force-http 下载音视频时强制使用HTTP协议替换HTTPS(默认开启)
-dd, –download-danmaku 下载弹幕
–skip-ai 跳过AI字幕下载(默认开启)
–video-ascending 视频升序(最小体积优先)
–audio-ascending 音频升序(最小体积优先)
–allow-pcdn 不替换PCDN域名, 仅在正常情况与–upos-host均无法下载时使用

文件命名参数

参数 描述
-F, –file-pattern 使用内置变量自定义单P存储文件名
-M, –multi-file-pattern 使用内置变量自定义多P存储文件名

默认文件名格式:

  • -F, –file-pattern: <videoTitle>
  • -M, –multi-file-pattern: <videoTitle>/[P<pageNumberWithZero>]<pageTitle>

其他参数

参数 描述
-p, –select-page 选择指定分p或分p范围: (-p 8 或 -p 1,2 或 -p 3-5 或 -p ALL 或 -p LAST 或 -p 3,5,LATEST)
–language 设置混流的音频语言(代码), 如chi, jpn等
-ua, –user-agent 指定user-agent, 否则使用随机user-agent
-c, –cookie 设置字符串cookie用以下载网页接口的会员内容
-token, –access-token 设置access_token用以下载TV/APP接口的会员内容
–aria2c-args 调用aria2c的附加参数(默认参数包含”-x16 -s16 -j16 -k 5M”, 使用时注意字符串转义)
–work-dir 设置程序的工作目录
–ffmpeg-path 设置ffmpeg的路径
–mp4box-path 设置mp4box的路径
–aria2c-path 设置aria2c的路径
–upos-host 自定义upos服务器
–force-replace-host 强制替换下载服务器host(默认开启)
–save-archives-to-file 将下载过的视频记录到本地文件中, 用于后续跳过下载同个视频
–delay-per-page 设置下载合集分P之间的下载间隔时间(单位: 秒, 默认无间隔)
–host 指定BiliPlus host(使用BiliPlus需要access_token, 不需要cookie, 解析服务器能够获取你账号的大部分权限!)
–ep-host 指定BiliPlus EP host(用于代理api.bilibili.com/pgc/view/web/season, 大部分解析服务器不支持代理该接口)
–area (hk|tw|th) 使用BiliPlus时必选, 指定BiliPlus area
–config-file 读取指定的BBDown本地配置文件(默认为:BBDown.config)
–version Show version information
-?, -h, –help Show help and usage information

配置文件

在1.4.9或更高版本中,BBDown支持读取本地配置文件以简化命令行的手动输入。

如果用户没有指定–config-file,则默认读取程序同目录下的BBDown.config文件;若用户指定,则读取特定文件。

一个典型的配置文件:

#本文件是BBDown程序的配置文件 #以#开头的都会被程序忽略 #然后剩余非空白内容程序逐行读取,对于一个选项,其参数应当在下一行出现 #例如下面将设置输出文件名格式 –file-pattern <videoTitle>[&Ldfn>] –multi-file-pattern <videoTitle>/[P<pageNumberWithZero>]<pageTitle>[&Ldfn>] #下面设置下载多个分P时,每个分P的下载间隔为2秒 –delay-per-page 2 #开启弹幕下载功能 –download-danmaku

配置文件中的每一行都代表一个命令行参数,参数和值需要分两行指定。例如:

  • –file-pattern <videoTitle>[&Ldfn>]
  • (下一行)<videoTitle>[&Ldfn>]

这样设置后,你就可以直接运行BBDown命令而无需每次都输入相同的参数。

自定义输出文件名格式

在1.4.9或更高版本中,BBDown支持用户自定义合并时的文件名组成。

代码 含义
<videoTitle> 视频主标题
<pageNumber> 视频分P序号
<pageNumberWithZero> 视频分P序号(前缀补零)
<pageTitle> 视频分P标题
<bvid> 视频BV号
<aid> 视频aid
<cid> 视频cid
&Ldfn> 视频清晰度
&Lres> 视频分辨率
&Lfps> 视频帧率
&LvideoCodecs> 视频编码
&LvideoBandwidth> 视频码率
&LaudioCodecs> 音频编码
&LaudioBandwidth> 音频码率
&LownerName> 上传者名称(下载番剧时,该值为””)
&LownerMid> 上传者mid(下载番剧时,该值为””)
&LpublishDate> 发布时间(yyyy-MM-dd_HH-mm-ss)
&LapiType> API类型(TV/APP/INTL/WEB)

例如,你可以设置文件名格式为:

–file-pattern <videoTitle> – <dfn> – &Lres> – &Lfps>

这样下载的文件将命名为类似”视频主标题 – 清晰度 – 分辨率 – 帧率.mp4″的格式。

API服务器

启动服务器(自定义监听地址和端口):

BBDown server -l http://0.0.0.0:12450

API服务器不支持HTTPS配置,如果有需要请自行使用nginx等反向代理进行配置

API详细请参考json-api-doc.md

 
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容