• Stars
    star
    8,151
  • Rank 4,312 (Top 0.09 %)
  • Language
    C#
  • License
    MIT License
  • Created almost 4 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

img img img img Build Latest

BBDown

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

注意

本软件混流时需要外部程序:

  • 普通视频:ffmpeg ,或 mp4box
  • 杜比视界:ffmpeg5.0以上或新版mp4box.

快速开始

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

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

dotnet tool install --global BBDown

下载

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

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

开始使用

目前命令行参数支持情况

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

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

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来混流
  -e, --encoding-priority <encoding-priority>    视频编码的选择优先级, 用逗号分割 例: "hevc,av1,avc"
  -q, --dfn-priority <dfn-priority>              画质优先级,用逗号分隔 例: "8K 超高清, 1080P 高码率, HDR 真彩, 杜比视界"
  -info, --only-show-info                        仅解析而不进行下载
  --show-all                                     展示所有分P标题
  --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 <file-pattern>              使用内置变量自定义单P存储文件名:

                                                 <videoTitle>: 视频主标题
                                                 <pageNumber>: 视频分P序号
                                                 <pageNumberWithZero>: 视频分P序号(前缀补零)
                                                 <pageTitle>: 视频分P标题
                                                 <bvid>: 视频BV号
                                                 <aid>: 视频aid
                                                 <cid>: 视频cid
                                                 <dfn>: 视频清晰度
                                                 <res>: 视频分辨率
                                                 <fps>: 视频帧率
                                                 <videoCodecs>: 视频编码
                                                 <videoBandwidth>: 视频码率
                                                 <audioCodecs>: 音频编码
                                                 <audioBandwidth>: 音频码率
                                                 <ownerName>: 上传者名称
                                                 <ownerMid>: 上传者mid
                                                 <publishDate>: 发布时间
                                                 <apiType>: API类型(TV/APP/INTL/WEB)

                                                 默认为: <videoTitle>
  -M, --multi-file-pattern <multi-file-pattern>  使用内置变量自定义多P存储文件名:

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


Commands:
  login    通过APP扫描二维码以登录您的WEB账号
  logintv  通过APP扫描二维码以登录您的TV账号

功能

  • 番剧下载(Web|TV|App)
  • 课程下载(Web)
  • 普通内容下载(Web|TV|App) (TV接口可以下载部分UP主的无水印内容)
  • 合集/列表/收藏夹/个人空间解析
  • 多分P自动下载
  • 选择指定分P进行下载
  • 选择指定清晰度进行下载
  • 下载外挂字幕并转换为srt格式
  • 自动合并音频+视频流+字幕流+章节信息(使用ffmpeg或mp4box)
  • 单独下载视频/音频/字幕
  • 二维码登录账号
  • 多线程下载
  • 支持调用aria2c下载
  • 支持AVC/HEVC/AV1编码
  • 支持8K/HDR/杜比视界/杜比全景声下载
  • 自定义存储文件名

TODO

  • 自动刷新cookie
  • 支持更多自定义选项

使用教程

配置文件 (NEW)

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

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

一个典型的配置文件:

#本文件是BBDown程序的配置文件
#以#开头的都会被程序忽略
#然后剩余非空白内容程序逐行读取,对于一个选项,其参数应当在下一行出现

#例如下面将设置输出文件名格式
--file-pattern
<videoTitle>[<dfn>]

--multi-file-pattern
<videoTitle>/[P<pageNumberWithZero>]<pageTitle>[<dfn>]

#下面设置下载多个分P时,每个分P的下载间隔为2秒
--delay-per-page
2

#开启弹幕下载功能
--download-danmaku
自定义输出文件名格式 (NEW)

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

代码 含义
<videoTitle> 视频主标题
<pageNumber> 视频分P序号
<pageNumberWithZero> 视频分P序号(前缀补零)
<pageTitle> 视频分P标题
<bvid> 视频BV号
<aid> 视频aid
<cid> 视频cid
<dfn> 视频清晰度
<res> 视频分辨率
<fps> 视频帧率
<videoCodecs> 视频编码
<videoBandwidth> 视频码率
<audioCodecs> 音频编码
<audioBandwidth> 音频码率
<ownerName> 上传者名称(下载番剧时,该值为"")
<ownerMid> 上传者mid(下载番剧时,该值为"")
<publishDate> 发布时间(yyyy-MM-dd_HH-mm-ss)
<apiType> API类型(TV/APP/INTL/WEB)
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"

演示

1

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

2

致谢

More Repositories

1

N_m3u8DL-CLI

[.NET] m3u8 downloader 开源的命令行m3u8/HLS/dash下载器,支持普通AES-128-CBC解密,多线程,自定义请求头等. 支持简体中文,繁体中文和英文. English Supported.
C#
13,314
star
2

N_m3u8DL-RE

Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文.
C#
3,308
star
3

The-New-M3U8-Downloader

Rebulid of M3U8-Downloader. (Stop updating permanently)
C#
1,118
star
4

Blog

记录点东西.
JavaScript
227
star
5

Batch-Download

Creat a .bat file.
C#
179
star
6

N_m3u8DL-CLI-SimpleG

N_m3u8DL-CLI's simple GUI
C#
106
star
7

M3U8URL2File

m3u8链接批量下载器
C#
96
star
8

DoViMuxer

Tool to make Dolby Vison mp4.
C#
76
star
9

m3u8_dl-js_GUI

A simple GUI for m3u8_dl-js...
CoffeeScript
54
star
10

WidevineClient

Widevine Client
C#
40
star
11

Mp4SubtitleParser

从 mp4 中提取 wvtt/ttml 字幕. Extract embed wvtt/ttml subtitle in mp4.
C#
40
star
12

OneDriveShareLinkParser

从OneDrive分享链接获取并推送下载地址到IDM以进行批量下载. Push To IDM.
C#
38
star
13

BilibiliParser

29
star
14

TSDecrypt

[Windows] Decrypt CSA encrypted MPEG-TS file using FFdecsa.
C
28
star
15

ViuParser

viu.com解析工具
27
star
16

MP4-Tags-Editor

Based on MP4Box, FFmpeg.
C#
22
star
17

qsv_unpacker

unpack qsv container
Python
21
star
18

WVCore

Widevine Library for .NET Developer
C#
19
star
19

LinetvParser

linetv.tw剧集解析工具
17
star
20

RtspRecorder

Record MPEG-TS stream over RTSP/TCP. For China IPTV.
C#
16
star
21

WVCore.Server

Tiny Server. Example of WVCore Api.
C#
15
star
22

EPGViewer

获取各电视频道 节目单/节目表/EPG. WPF MVVM实践产品.
C#
14
star
23

N_m3u8DL-RE-SimpleG

N_m3u8DL-RE's simple Web GUI
14
star
24

VikiParser

www.viki.com 解析工具
C#
13
star
25

VTT2BDN

Convert vtt with png to BDN format (xml+png)
C#
9
star
26

TSCutter

通过文件大小估算来剪切TS文件
C#
9
star
27

PPTVParser

pptv.com解析工具
C#
8
star
28

UPnP_Test

捕获DLNA投屏的m3u8链接
7
star
29

IDMWaker

调用IDM的api添加任务
6
star
30

iQiYiDDPTools-GUI

已停止更新
4
star
31

MP4Convertor

一个可以将其他格式视频转为MP4的小工具,基于FFmpeg。
C#
4
star
32

HTML-MaoZhongTe

毛泽东思想和中国特色社会主义理论体系概论
HTML
3
star
33

StudentApartmentMS

简陋的JavaWeb学生公寓管理系统 Servlet+JSP+MySql+Layui
Java
3
star
34

GMAdmin

Java
3
star
35

nilaoda

2
star
36

emimsystem

文本数据解析入库系统
Java
2
star
37

Danmu2Ass

获取弹幕并转换为Ass字幕
1
star
38

springboot_cms

等待完善
Java
1
star
39

BiZhiGu

Spring Boot / Mybatis / FastDFS / Thymeleaf / Docker / Nginx
1
star
40

Toolbox

Visual Processing Toolbox.
C#
1
star