基于 Node.js 和 Electron 开发的 Bilibili 视频、弹幕下载器。
目前实现的功能:
- 根据视频地址查询 aid 和 cid 以及视频详细信息
- 根据视频 cid 获取视频和弹幕文件的下载地址
- 下载视频(
.flv
或.mp4
)和弹幕文件(.xml
或.ass
),支持断点续传
你需要安装 Git 和 Node.js(以及 npm)来运行本程序。
本程序的一个重要依赖是 Electron,如果你所在的网络环境受到限制,请先设置如下环境变量,再执行后面的命令,以通过镜像安装之:
export ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/" # 一般的 *NIX 命令行
set ELECTRON_MIRROR=https://cdn.npm.taobao.org/dist/electron/ # 使用 Windows CMD 命令行
$env:ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/" # Windows PowerShell
在命令行输入:
# 克隆这个仓库
git clone https://github.com/stevenjoezhang/bilibili-downloader.git
# 进入目录
cd bilibili-downloader
# 安装依赖
npm install
# 启动!
npm start
如果一切正常,会打开一个名为「Mimi Downloader」的新窗口。输入视频链接(例如 https://www.bilibili.com/video/BV1Lx411a7NQ ),按照提示即可下载视频。
对于分为多个 flv 片段的视频,下载完成后,可以使用 ffmpeg 将其合并为一个文件:
name=11090110
# 将 11090110 替换为视频文件名
ffmpeg -f concat -safe 0 -i <(for f in $(ls $name-*.flv | sort -n); do echo "file '$PWD/$f'"; done) -c copy $name.flv
见 https://trac.ffmpeg.org/wiki/Concatenate
如果你需要更为强大的命令行工具,那么以下仓库或许有帮助。它们均使用了和本项目完全相同的 API 调用方式,不需要手动设置 Cookie 或 playurl。
- you-get by soimort, MIT license
- annie by iawia002
- youtube-dl by ytdl-org
这里还有一些其它的库和浏览器插件供参考。
- XML 转 ASS 库 以及 bilibili ASS Danmaku Downloader by tiansh, Mozilla Public License 2.0
- bilitwin by Xmader
- bili-api by simon300000
GNU General Public License v3
https://www.gnu.org/licenses/gpl-3.0.html
This software is distributed under the GPL-3.0 license.
In particular, please be aware that
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
Translated to human words:
In case your use of the software forms the basis of copyright infringement, or you use the software for any other illegal purposes, the authors cannot take any responsibility for you.
We only ship the code here, and how you are going to use it is left to your own discretion.
- 允许用户开始/暂停下载
- 显示发送弹幕的用户信息