自动下载B站收藏夹以及up主更新

自动下载B站收藏夹以及up主更新

hechuan
2022-08-03 / 5 评论 / 742 阅读 / 正在检测是否收录...

自动下载B站收藏夹以及up主更新

为啥需要呢?

B站收藏了好多舞蹈区的视频,但有的up过段时间就删除稿件了,也有的被B站和谐了

bilidown-img-1

如果可以定时扫描我的收藏夹或者某些up的更新,我的收藏夹或者up的投稿有新的就自动下载到本地,然后传到云盘。

找到一个脚本,原版:https://blog.left.pink/archives/2712

https://github.com/Left024/BiliFavoritesDownloader

稍微改了一下,修改版:https://github.com/hechuan4/BiliFavoritesDownloader

修改了以下

修改原版的you-get下载为lux下载

因为you-get默认下载视频格式为h265/hevc格式,导致谷歌浏览器(大多数浏览器都)在线播放不了,hevc授权费太贵了所以替换为lux可默认下h264格式

话说you-get貌似不如lux好用啊

增加一个bilidown-lux-run.sh脚本用来传递参数,每行可以对应不同的用户和收藏夹

快快把你关注的舞蹈区 up 留言给我

#!/bin/bash
/root/bilidown/bilidown-lux.sh "fav" "28921055" "1684176855" "姬2"
/root/bilidown/bilidown-lux.sh "user/video" "1458409749" "0" "汤圆的汤圆儿"


# 例1 如果是收藏夹的话:/root/bilidown/bilidown-lux.sh "fav" "你的B站id" "收藏夹id" "你的收藏夹名字"

# 例2 如果是某个up主的更新稿件的话:/root/bilidown/bilidown-lux.sh "user/video" "up主id" "0" "up主名字",每行可以对应不同的用户和收藏夹

# 详看:https://docs.rsshub.app/social-media.html#bilibili

功能

  • [x] telegram 通知
  • [x] 最高清晰度下载(需要大会员)
  • [x] 邮件通知
  • [x] 封面图下载
  • [x] xml 转 ass
  • [x] 下载完成上传 OneDrive

使用

注:我使用的ubuntu系统,理论上debian系的能用,centos系的需要自行修改.

#root用户登陆
#下载脚本到vps

#安装ffmpeg
apt install ffmpeg

#安装lux
wget https://github.com/iawia002/lux/releases/download/v0.17.2/lux_0.17.2_Linux_x86_64.tar.gz
tar -zxvf lux*.tar.gz
chmod 0777 lux
cp lux /usr/local/bin/
rm -rf lux*

#命令行输入lux -v
#有提示:lux: version xxxx, A fast and simple video downloader.
#证明安装成功

下载仓库后记得把文件夹名字BiliFavoritesDownloader改为bilidown。放进root目录

运行前记得给文件一下权限:chmod 0777 bilidown/*

原理

是定时检查 RSS,然后通过 lux 进行下载(需要额外安装 ffmpeg,否则无法合并下载完的视频且不会自动下载最高画质)

https://docs.rsshub.app/social-media.html#bilibili

建议

建议用别人的rsshub服务或者自己用docker建一个,官方设置的缓存时间太长了,导致B站已经点了收藏rsshub这里却还没刷新.

如何建自己的rsshub服务,官方已经给了教程了:https://docs.rsshub.app/install/#docker-jing-xiang

或者看下面教程

必要

脚本中注释已经写的很明白了,必须要修改的是bilidown-lux.sh文件中的RSS地址

和bilidown-lux-run.sh文件中,你要下载的 up主 的 id 和昵称

可选修改:视频存放地址 默认的视频存放地址/root/bilidown/bili-down/目录

邮件通知使用的是 mailutils ,不是所有 VPS 都能用,自行测试(我觉的还是电报机器人通知好使)

必要2

如果是你的大会员用户

记得把bilidown-lux.sh文件的61行.if [[ $quality =~ "1080P" ]]; then改成4K 注意大写!

不是大会员就不用改了

电报通知

telegram bot 的 token 和 chat_id 自行搜索获取方法 点我谷歌一下

cookies

高画质下载需要设置cookies.txt,默认存放在/root/bilidown/bili-cookies/

Chrome 可以安装 EditThisCookie 插件,将导出格式设置为Netscape HTTP Cookies File然后导出粘贴在cookies.txt中即可

弹幕转化

xml转ass使用的是DanmakuFactory,这里提供了已编译好的可执行文件,在/root/bilidown/bili-cookies/目录下,一般不需要动了。

无法转换的话可能是权限问题,给下权限:chmod 0777 DanmakuFactory

上传云盘

OneDrive 使用的是rclone,需要自行配置。137行,自行修改

百度云 使用的是BaiduPCS-Go,需要自行配置

设置定时任务

配置完成后设置crontab定时任务即可使用,默认十分钟循环一次

# 输入
crontab -e

# 然后填上一行
*/10 * * * * /bin/bash /root/bilidown/bilidown-lux-run.sh >/dev/null 2>&1

不会crontab的可以看:https://www.runoob.com/linux/linux-comm-crontab.html
在线测试工具

上传完删除本地文件

效果:

bilidown-img-2

docker自建rsshub服务

只是建议:(非必要,可以直接用rsshub官方的,或者别人的)

# 安装docker,自己查如何装吧

# 运行下面的命令下载 RSSHub 镜像
docker pull diygod/rsshub

# 然后运行 RSSHub 即可
docker run -d --name rsshub -p 1200:1200 diygod/rsshub

# 在浏览器中打开 http://你的域名/ip地址:1200/
# 能打开就够行,能用。

# 重启服务器后容器需要重启启动
# 开启容器
docker start rsshub

# 您可以使用下面的命令来关闭 RSSHub
docker stop rsshub

# 删除旧容器
docker stop rsshub
docker rm rsshub

# 高级操作
# 添加配置
# 配置运行在 docker 中的 RSSHub,最便利的方法是使用 docker 环境变量
# 以设置缓存时间为 1 小时举例,只需要在运行时增加参数:-e CACHE_EXPIRE=3600

docker run -d --name rsshub -p 1200:1200 -e CACHE_EXPIRE=3600 -e GITHUB_ACCESS_TOKEN=example diygod/rsshub

# 如果只是自己本地用的话,我设置的缓存时间为2秒
0

评论 (5)

取消
  1. 头像
    嘿嘿
    Windows 10 · Google Chrome

    centos没用么

    回复
  2. 头像
    xx
    Android · Google Chrome

    大佬你好,请问用插件获取ck后,提示文件失效,更新后重试,需要怎么做。我反复获取
    包括隐身模式,还有控制台里的ck都会报错

    回复
    1. 头像
      hechuan 作者
      Android · Google Chrome
      @ xx

      确定导出格式设置为Netscape HTTP Cookies File吗?

      回复
      1. 头像
        xx
        Android · Google Chrome
        @ hechuan

        是这个格式的

        回复
        1. 头像
          hechuan 作者
          Android · Google Chrome
          @ xx

          不好判断,tg上聊吧。@hechuan

          回复