很多B站用户都有过类似经历:自己精心收藏的视频突然“消失”,点开一看不是“已被删除”,就是“因UP主设置不可见”。
而B站并不会主动通知你哪些收藏内容失效,也不会保留你曾经收藏过的标题或描述。
结果就是——你甚至不知道自己错过了什么。
为了解决这个问题,mybili 应运而生。
它是一个专为 B 站用户设计的收藏夹备份工具,可以定时自动抓取收藏夹内容并下载视频文件,保存标题、封面、描述等关键信息。更贴
心的是,它还提供了一个本地网页页面,用来展示和预览这些收藏内容,就像自己搭建了一个“私人B站”一样。
功能介绍
⏰ 定时5分钟获取你的收藏夹所有视频,缓存标题、描述、封面等重要信息。
🚀 自动通过队列,将你收藏的视频按照最高画质下载一份到本地。
📺 提供友好的 web 页面展示你的收藏夹列表信息,以及进行在线播放预览。
🍀 程序只依赖 redis 数据库来存储你的收藏夹信息。
🍎 最新版本已支持排除收藏夹、排除文件大小、排除视频标题文字匹配等过滤。
部署流程
我们以威联通NAS为例,通过Docker Compose的方式进行部署。
打开文件管理中心,创建用于映射的文件目录。后面的.env
、cookie.txt
文件,以及data
、redis
文件夹都放
在/share/Container/mybili
这个目录下。
接着在项目界面下载env.example
环境文件。
需要修改内容如下:
APP_KEY=base64:1CJOuWliDyx0ZBIZyn0gRKOOOq6+23YG/UHcUP4ffaU=
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_DB=3
REDIS_PREFIX=
其中APP_KEY
可通过openssl rand -base64 32
命令生成:
APP_KEY=base64:(你生成的那一串)
打开文本工具Text Editor,修改之后重命名为.env,并保存到上面的目录下,具体路径为/share/Container/mybili/.env
要注意的是.env
默认为隐藏文件。
接下来搞定cookie。作者提供了手动和自动两种方案。大家应当都更希望自动化多一些,不过试用作者提供的小工具后,好像会报错不能
生效,因此放弃。
手动获取cookie.txt
的方法也非常简单。点击扩展程序,进入管理界面后,点击从Chrome应用商店中发现扩展程序。
在搜索框内搜索Get cookies,如下图所示的第一个。
添加至Chrome。
打开B站主页并登入你的账户,刷新一下界面。然后点击刚刚安装的程序。
默认格式为Netscape,不要动。
然后点击 导出 cookie 文件,我们会获得一个cookie.txt文件。
然后回到NAS的UI界面将其上传至目录下。具体路径为/share/Container/mybili/cookie.txt
打开Container Station创建新的应用程序。部署代码如下:
version: '3' # 该行最新版Docker Compose建议删除
services:
mybili:
image: ellermister/mybili
ports:
- "5151:80" # 冒号左侧端口可自定义
volumes:
- "/share/Container/mybili/data:/app/storage/app/public"
- "/share/Container/mybili/.env:/app/.env"
- "/share/Container/mybili/cookie.txt:/app/storage/app/cookie.txt"
redis:
image: redis
volumes:
- "/share/Container/mybili/redis:/data"
command: redis-server --save 60 1 --loglevel warning
容器内部端口 80(http) 和 443(https) 都可以使用,选一个即可。区别就是反代时的地址填写,注意区分https还是https。
使用介绍
上文说过还有个cookie.txt
文件,但我们并没有准备,但这并不会妨碍项目跑起来。浏览器输入NAS_IP:5151即可访问服务,界面如下。
在Cookie栏目查看,如果cookie状态无效,可以点击check等一会,这个需要时间。
同样的任务处理也需要时间,等自动下载完毕即可。我的B站号收藏了160+有效视频,全部同步完毕总共用时大概半小时(不是下载)。
这个过程中也会占用一部分硬件资源,大家可以在闲时去搞。
在首页可以看到你自己的收藏夹分类。。。。我当时也没认真搞😂没封面的收藏夹就是裂开状态。
缓存后的视频位于/share/Container/mybili/data/video
下,如果系统盘空间不足可以更换目录。
最后
项目还不错,当年好多视频作品没有下载保存的意识,以至于现在甚至都找不到存档,很可惜~
如果你想要远程分享给朋友,可以将服务页反向代理来实现。
感谢观看,本文完~
评论区