Skip to content

shataniya/ibili

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ibili

  • 下载方式: npm i ibili
  • 这是一个获取哔哩哔哩资源的工具库,可以下载哔哩哔哩的视频资源,也可以下载视频弹幕,下载用户评论等等之类
  • 严重警告:不可以将获取的资源用于恶意用途
  • 有以下功能:
函数名 功能
loadbarrage 下载视频弹幕
downVideo 下载视频
loademojis 下载表情包
loadcomments 获取视频下的评论
loadsearch 获取搜索结果

loadbarrage:下载视频弹幕

参数 类型 属性 说明 返回值
opt string 如果opt是视频的av号,会根据av号获取相应的视频弹幕;如果是视频的播放地址(url),会根据视频的播放地址获取视频弹幕 返回promise对象
object url 视频的直播地址, 也可以是番剧的地址 返回promise对象
  • loadbarrage 的返回值是一个 promise对象,promise 的值就是视频弹幕数据

使用案例:

  • 比如说要下载 周杰伦的告白气球MV 的视频弹幕,可以知道播放地址就是 https://www.bilibili.com/video/av15227278?from=search&seid=16573406510590472928
const ibili = require('ibili')
const fs = require('fs')
// 使用 视频播放地址获取弹幕
ibili.loadbarrage('https://www.bilibili.com/video/av15227278?from=search&seid=16573406510590472928').then(function(data){
    // 将数据存进demo.json文件中,你可以打开demo.json可以清楚的看到弹幕的数据
    fs.writeFile('demo.json',JSON.stringify(data,null,5),function(){
        console.log('ok')
    })
})
  • 比如要下载 香菜的告白气球 的视频弹幕,查看简介可以知道视频的av号为 51560305
const ibili = require('ibili')
const fs = require('fs')
// 使用 视频的av号说去视频弹幕
ibili.loadbarrage('51560305').then(function(data){
    // 将数据存进demo.json文件中,你可以打开demo.json可以清楚的看到弹幕的数据
    fs.writeFile('demo.json',JSON.stringify(data,null,5),function(){
        console.log('ok')
    })
})
  • 比如要下载整部番剧的弹幕,以 刀剑神域 Alicization 为例,可以知道番剧的地址为https://www.bilibili.com/bangumi/media/md130412
const ibili = require('ibili')
const fs = require('fs')
ibili.loadbarrage({
    url:'https://www.bilibili.com/bangumi/media/md130412'
}).then(function(data){
    var merges = data.merge_barrages // 获取合并之后的弹幕
    console.log(merges.length) // 打印弹幕的总条数
    // 将数据存进demo.json文件中,你可以打开demo.json可以清楚的看到弹幕的数据
    fs.writeFile('demo.json',JSON.stringify(merges,null,5),function(){
        console.log('ok')
    })
})

// 打印结果
75301 // 可以看到整部番剧的弹幕有75301条
ok

downloadVideo:下载视频资源

参数 类型 返回值
opt object 返回promise对象
  • opt 有以下属性:
属性 类型 说明
url string,Array 视频的播放地址
av string,Array 视频的av号
num number 番剧的集数,这个属性只对 番剧 有效【不建议使用】
sessdata string 如果登陆哔哩哔哩的话,在返回的响应中的Cookie里边会有一个SESSDATA值
type string 如果值为 default,那么会下载视频,type的默认值就是 default
如果值为 silent,那么会下载无声视频
如果值为 audio,那么会下载音频
folder string 存放视频的路径,默认值是 meida,因此默认会将下载的视频存放在 media文件夹 里边
filename string 自定义下载的视频的名称,如果不设置,会调用默认值
oncomplete function 视频下载结束之后会触发 oncomplete事件
progress object 设置下载进度条的参数
  • progress 对象的属性如下:
属性 类型 说明
labelname string 设置进度条的标签,默认值是 Download progress
length number 设置进度条的长度,默认值是50
  • urlav 一般只需要一个就可以了,但是如果两个参数都有,那么优先使用 av
  • 使用案例:
  • 比如要下载 周杰伦告白气球MV,可以知道视频的播放地址就是https://www.bilibili.com/video/av15227278?from=search&seid=1147385259116260142
const ibili = require('ibili')
ibili.downloadVideo({
    url:'https://www.bilibili.com/video/av15227278?from=search&seid=1147385259116260142'
}).then(()=>{
    console.log('视频下载完成!')
})
  • 同样也可以使用av号下载视频资源
  • 还可以下载整部番剧的视频资源,比如下载 群居姐妹整部番剧,番剧地址为https://www.bilibili.com/bangumi/media/md2614/?from=search&seid=6486386251028162043
const ibili = require('ibili')
ibili.downloadVideo({
    url:'https://www.bilibili.com/bangumi/media/md2614/?from=search&seid=6486386251028162043', // 番剧地址
    folder:'media/群居姐妹', // 将视频资源存放在 media文件夹下的 群居姐妹 文件夹里
    sessdata:'b6714909%2C158***3693%2C1a29f0c1', // 使用 sessdata,这样可以下载 1080p的视频【没有sessdata会默认是320p】
}).then(()=>{
    console.log('番剧下载完成!')
})

loademojis:下载表情包

参数 类型 属性 说明 返回值
opt object folder 存放表情包资源的路径,默认值是 media/picture 返回promise对象
const ibili = require('ibili')
ibili.loademojis({}).then(()=>{
    console.log('表情包下载完成!')
})

loadcomments: 获取视频下的评论

参数 类型 说明
opt string 视频的播放地址(url)或者 视频的av号
object 如果opt是object,可以看第二个表格
page number 页数
mode string default 获取格式化之后的评论信息,默认值是default
string reply 获取无嵌套关系的评论与回复
string no_reply 只获取评论,没有回复
string init 获取评论的原始数据
  • 如果 opt是object,那么可以忽略第二个参数page,和第三个参数mode,opt的属性如图:
参数 属性 类型 说明
opt url string 视频的播放地址(url)
av string 视频的av号
page number 页数
mode string default 获取格式化之后的评论信息,默认值是default
string reply 获取无嵌套关系的评论与回复
string no_reply 只获取评论,没有回复
string init 获取评论的原始数据

使用案例:

const ibili = require('ibili')
const fs = require('fs')
ibili.loadcomments({
    url:'https://www.bilibili.com/video/av15227278?from=search&seid=11837609076354078745' // 视频的播放地址(url)
}).then(data=>{
    // 将评论数据存储在demo.json文件里边
    fs.writeFile('demo.json',JSON.stringify(data,null,5),function(){
        console.log('ok')
    })
})

loadsearch: 获取搜索结果

参数 类型 说明
opt string 搜索内容
object 如果opt是object,请看第二个表格
page number 页数
  • 如果opt是object
参数 属性 类型 说明
opt content string 搜索内容
search string 搜索内容
page number 页数
mode string default 获取格式化之后的搜索结果,默认值是 default
string init 获取原始的搜索结果

使用案例:

const ibili = require('ibili')
const fs = require('fs')
ibili.loadsearch({
    content:'告白气球' // 搜索内容
}).then(data=>{
    // 将搜索结果数据存进 demo.json文件里边
    fs.writeFile('demo.json',JSON.stringify(data,null,5),function(){
        console.log('ok')
    })
})

About

能够迅速下载哔哩哔哩的视频弹幕,视频资源,评论等等

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published