bk

Download bilibili videos;B站视频下载;支持新版BV号;支持分P及一键多P下载;支持多质量选择;

Usage no npm install needed!

<script type="module">
  import bk from 'https://cdn.skypack.dev/bk';
</script>

README

bk

下载B站(Bilibili)视频,功能如下:

  1. 视频下载,支持:url/av号/BV号;
  2. 分P检测及下载;
  3. 视频质量选择;
  4. 一次下载所有分P(如某一P没有指定质量,则按最高质量);
  5. 视频转码及合并,可选择格式(支持mp4/mp3);

安装

  1. 安装nodejs (https://nodejs.org), 选择LTS版本;
  2. 命令行(CMD)进行全局安装,执行:
npm i -g bk
  1. [可选]安装ffmpeg (http://ffmpeg.org/download.html) 以支持转码与合并, 选择对应系统版本安装(也可自行搜索"ffmpegp安装"查找方法);

运行

  1. 命令行运行以下命令,然后根据提示选择操作:
bk
  1. [可选]获取B站cookie(具体操作参考最下方)并按提示进行配置,可支持对应账号的视频质量,如不配置也可以(不保证有最高质量选择),注意老cookie会失败,需要更新;
  2. 处理好的视频可以命令执行当前目录下的video目录下找到;
  3. 样例:

样例图

如不能显示图片,点击此处查看


注意的问题

  • 建议在cookie.txt中配置好cookie,后面每次在同一目录启动会自动读取该cookie,但cookie会过期,记得时常更新;
  • ffmpeg如果未安装则转码会失败,但原视频有合适的播放器是可以播放的;

用到的接口

https://api.bilibili.com/x/player/playurl?avid=${avid}&cid=${cid}&qn={qn}&otype=json
https://api.bilibili.com/x/web-interface/view?aid=${avid}

如何获取B站cookie

  1. 使用B站账号登录,推荐使用谷歌浏览器(chrome);
  2. 访问任意一个视频详情页;
  3. 打开"开发者工具"(右上角3个点的选项>更多工具>开发者工具);
  4. 在开发者工具最上方选择"Network"标签;
  5. 刷新这个页面,则会看到很多的网络请求;
  6. 点击其中的第1个或第2个请求,右边看到"Request Headers"的部分,如果其中有"cookie:",且它的值中包含"_uuid=.....;",则这一大段值就是需要的cookie;
  7. 如果请求刷得比较多,再次刷新选择第1个即可,注意它的"Request URL"必须有 "www.bilibili.com" 或 "api.bilibili.com".
  8. cookie配置后将具备与此账号相同的权限(如大会员权限),不配置cookie则是普通权限,仅对下载视频质量的选择有影响;